[Música] Olá bem-vindos a terceira aula do curso de redes neurais artificiais nessa aula nós vamos descobrir o tópico aprendizagem redes neurais artificiais e suas principais paradigmas Então nós vamos abordar os seguintes tópicos definir o que que é aprendizagem em redes neurais artificiais também chamada de aprendizado Ou treinamento as principais técnicas envolvidas no processo e os principais paradigmas que utilizam essas técnicas para resolver os mais diversos problemas bom que que aprendizagem emprestando uma definição do generalizando um pouquinho uma definição do livro de Saimon hakken que é um dos livros textos dessa disciplina o aprendizado é o
processo pelo qual os parâmetros e os hiper parâmetros de uma rede neural são ajustados através de uma forma contínua de estímulo pelo ambiente no qual a rede está operando aqui eu falei que é uma adaptação porque é comum a gente encontrar a definição de aprendizagem apenas com os parâmetros da rede que a gente vai ver depois o que que são esses parâmetros basicamente são os pesos que liga os neurônios mas alguns autores também propõem que o algoritmo de aprendizado ele está envolvido não só na configuração dos parâmetros mas também no zíper parâmetros da rede ou
seja número de camadas números neurônios Seria da seguinte forma se a gente pensar numa equação do segundo grau nós temos três parâmetros a b e c a gente pensa na equação de primeiro grau a gente só tem a e b então os parâmetros seria o AB ou a b e c e o hiper parâmetro seria o grau dessa desse polinômio Vai representar pra gente a quantidade de neurônios quantidade de camadas e assim sucessivamente como eu já falei então aprendizado treinamento de uma rede neural bom o processo de aprendizagem de uma rede neural implica numa seguinte
sequência de eventos primeiro a rede é estimulada pelo ambiente ela recebe algum estímulo do ambiente o receptor captura captura aquela informação e essa rede vai responder com base nessa nesse estímulo fornecido então a Regional ela sofre modificações nos seus parâmetros Livres como resultado desse estímulo em terceiro a rede passa a responder de maneira diferente ao ambiente em função dessas modificações realizadas e o que que a gente espera ao longo desse processo que a rede consiga responder no tempo ter mais um melhor do que ela respondia no tempo dele Você já está aprendendo a resolver um
problema então nós temos aqui os dados que representa o nosso ambiente que é o que está estimulando a rede neural aqui nós temos um exemplo de neurônio que representa nessa figura uma rede neural essa esses neurônios tem os parâmetros os pesos que podem ser alterados e eles vão ser alterados pelo algoritmo de aprendizagem a partir da informação dos dados que eu tô alimentando a rede e da própria saída do modelo representada aqui por essa seta então basicamente que a gente busca ao definir uma regra de aprendizagem é definir como que nós vamos calcular a variação
do Peso aplicado sobre cada uma dessas sinapses que a gente tem no neurônio que a gente tem na rede neural Então se a gente conseguir definir uma função f que define como que a gente altera os pesos como que a gente calcula o delta w a gente tem uma regra de aprendizagem nós temos diversas regras na literatura aprendizagem por correção de erro aprendizado baseado em memória aprendizado ebiano aprendizado competitivo e aprendizado de boltman aprendizado por correção de erro é o seguinte nós temos a nossa rede neural essa rede ela vai receber um dos exemplos existentes
no nosso conjunto de dados esse dado então ele é apresentado para rede com base no conhecimento atual dessa rede ela emite uma saída a resposta da rede representada aqui por y esse mesmo exemplo que foi apresentado pela rede ele é apresentado como professor como especialista especialista ela fala ó esse exemplo aqui para esse exemplo a resposta desejada é essa representada aqui por d a gente vai então comparar a resposta fornecida pela rede com a resposta desejada fornecida pela especialista e vai gerar um sinal de erro esse sinal de erro ele vai ser utilizado para ajustar
os parâmetros da rede neural então basicamente a gente calcula esse sinal de erro por exemplo utilizando desejado valor desejado menos o valor obtido fornecido pela rede e essa a técnica baseada em correção de ela vai ter como objetivo Central tentar reduzir esse erro ao longo do processo de aprendizagem Então se a gente consegue modificar os pesos fazendo com que essa rede melhor esse erro ou reduza esse erro ao longo do processo a gente tem uma técnica de correção de erros existem diversas maneiras para a gente fazer essa redução a aplicar o erro como um critério
para fazer alteração dos pesos de uma rede neural sendo que uma das mais utilizadas é regra do Gradiente descendente também chamada de regra Delta então pouca ideia a gente vai definir uma função de custo chamado aqui de é maiúsculo ou energia do erro que é o somatório quadrático dos erros para cada neurônio Então vai ter o desejado menos obtido ao quadrado A gente vai ter o somatório desses erros gerando que a gente chama de energia do erro essa energia é uma superfície de acordo com os parâmetros da rede com aqueles pesos atuais ela pode fornecer
uma energia maior Ou uma energia menor a gente busca sempre energia menor como a gente está querendo buscar uma energia menor uma das formas que a gente tem para verificar para onde eu devo caminhar nessa superfície para aumentar ou diminuir esse sinal no caso a energia do erro é utilizando gradiente da função então a gente pode pegar o gradiente só que o gradiente ele indica a direção e a magnitude do maior crescimento a partir daquele ponto a gente quer a direção e a magnitude do maior decrescimento a partir daquele ponto então por isso a gente
tem um sinal negativo aqui na frente então a gente vai definir que o nosso Delta w ele vai ser definido como sendo menos reta onde esse eta é a taxa de aprendizagem é multiplicado pela derivada parcial da energia do erro em relação aos parâmetros da rede em relação aos pesos da rede realizando essa derivação aqui nós chegamos na seguinte equação Delta W vai ser igual a Eta vezes o erro do neurônio k multiplicado pelo valor de x que alimenta-se J desse próprio neurônio a gente na quando for discutir o adaline eu vou apresentar para vocês
passo a passo essa derivação de como que a gente sai desse termo dessa derivada parcial como que a gente chega Nessa solução aqui a aprendizagem baseada em memória é um processo bastante simples basicamente o que a gente vai fazer armazenar uma memória se eu tenho n exemplos representados aqui poderiam ser por exemplo imagens e seus respectivos rótulos então tenho n exemplos que representam n imagens e suas respectivos rótulos aqui eu tenho um gato aqui eu tenho um cachorro e assim por diante Então o que a gente vai fazer basicamente armazenar essa memória como sendo o
conhecimento da rede e uma vez que eu tiver um novo exemplo representado aqui por x teste que não está na base de conhecimento eu vou buscar nessa memória eu vou buscar nessa base Quais são os exemplos mais parecidos com exemplos de teste a fim de tentar rotular esse exemplo x teste então o que que a gente faz a gente vai tentar classificar esse exemplo x teste utilizando exemplos dos vizinhos do exemplo x teste que já estão rotulados e presentes na nossa base de conhecimento então dois passos fundamentais primeiro definir a vizinhança a gente vai definir
um raio a gente vai definir o número de vizinhos e segundo que pode ou não ser aplicado seria como corrigir a posição desses vizinhos uma vez que eles foram selecionados o caso mais simples dessa regra do aprendizado baseado de memória seria a regra do vizinho mais próximo onde eu tenho um exemplo x teste eu vou procurar na base de dados o exemplo xi mais próximo de X teste Ou seja aquele que apresenta distancia mínima uma vez que encontrar esse exemplo representado aqui por x Prime a gente vai atribuir como sendo rótulo do vetor x teste
ou seja o y test o rótulo desse padrão que era o padrão mais próximo do exemplo x teste o aprendizado Biano lembrando lá da proposta foi proposta por Donald reab em 1949 e ele falou o seguinte se dois neurônios de ambos os lados de uma sinapse um neurônio sináptica eles são ativados de maneira simultânea ou seja de forma correlacionada a gente aumenta a força daquela conexão se eles são ativados de forma síncrona a gente enfraquece o peso a força daquela conexão então o que que a gente precisa aqui para definir a regra do aprendizado Eliana
né primeiro nós temos diversos diversos propriedades esse aprendizado ele é um mecanismo dependente do tempo depende do tempo exato da ocorrência de sinais para Hippo assinaptico ele é um mecanismo do local ou seja tá atualizando uma sinapse específica e não pegando características globais da rede ele é um mecanismo interativo depende explicitamente da interação entre os neurônios ou seja com relação temporal entre atividade de ambos os lados de uma sinapse para assinar analisar um gráfico aqui de fluxo que representa o neurônio nós temos aqui um neurônio representado neurônio k esse neurônio ele tem um conjunto de
entradas e ele tem uma saída Y essa entrada aqui a gente pode assumir que ela tá proveniente de um outro neurônio que está alimentando esse neurônio Car então a gente chama isso aqui de entrada é que saiu de um neurônio para assinarptico e aqui a saída desse neurônio chamado de posse naptico então a modificação desse peso aqui WK de alguma forma ela tem que ser uma função que depende do sinal pré-assinástico x e do sinal pós-ciráptico Y Então a gente tem que definir para definir como que a gente altera os pesos definir como que essa
função pode ser implementada então aqui algumas formas primeira forma correlativa onde a gente vai definir o delta w como sendo o Eta onde é até a taxa de aprendizagem ou seja quão rápido eu vou atualizar multiplicado pela saída e entrada do próprio neurônio então aqui se eu tenho uma saída positiva e entrada positiva a gente vai ter um sinal positivo a gente está aumentando a eficiência daquela sinapse ou seja vou estar reforçando a geração de um sinal ainda mais forte quando ele receber aquela mesma entrada problema dessa sinapse que ela satura é de maneira muito
rápida dessa forma ela satura de uma maneira muito rápida e o neurônio a partir do momento que ele está saturado ele não consegue mais aprender Esse é como se o valor do Peso é disparar as tendência infinito é uma forma de contornar isso a partir da forma da covardância onde agora ao invés de utilizar multiplicação de Y por x a gente vai fazer uma diferença de y pela nível de atividade médio de disparo dos neurônios da mesma forma para entrada a gente vai subtrair da entrada o nível médio da atividade de neurônio dos neurônios para
sintáticos então a gente consegue um balanceamento entre acréscimos e decrésimos dos pesos fazendo com que a sinapse não sature e uma terceira forma chamada de forma saturação ou regularizada onde a gente insere um termo quadrático em vez de só multiplicar o Y por x a gente tem o y multiplicado por y vezes os pesos Então se esse peso começa a crescer de maneira é muito acentuada esse termo aqui vai fazer com que a variação do Peso se torna negativa ou nula fazendo com que aquele peso não se sature uma outra forma uma outra técnica de
aprendizagem é chamada de aprendizado competitivo aqui nos neurônios de uma rede neural eles vão competir para se tornar ativos então nós temos uma camada de neurônios nós apresentamos um padrão para essa rede e esses neurônios vão competir para ver quem que vai ganhar o direito de disparar e representar aquele sinal que foi fornecido a rede deixa eu falar que neurônio vencedor ele ganha o direito disparar e os demais neurônios permanecem em repouso e apenas um neurônio vencedor nesse processo competitivo ganho direito de ter seus pesos atualizados o neuro Vencedor e também de acordo com o
tipo de técnica que a gente utilizar os vizinhos desse neurônio vencedor então nós temos três elementos básicos associados ao aprendizado competitivo primeiro nós temos um conjunto de neurônios equivalentes Com pequenas modificações na distribuição dos pesos os neurônios eles representam vetor de dimensão equivalente ao nosso vetor de entrada então se o meu exemplo ele é caracterizado por cinco atributos 5 dimensões o peso de cada neurônio desse processo competitivo também vai ter cinco dimensões Ou seja a gente consegue plotar um neurônio dentro do espaço do problema então o que que eu tenho nessa primeira regra eu tenho
neurônios que vão estar próximos dos meus exemplos são neurônios compatíveis com a mesma dimensão e que estão próximos desses exemplos segundo limite de ativação imposto sobre a força de cada neurônio Tem que evitar que um neurônio sempre ganha a competição eu tenho que distribuir impor algum tipo de limite nessa força de ativação de tal forma que outros neurônios também consigam ganhar competição e o mecanismo de competição para que apenas um neuro vencedor se torna ativo é o que a gente chama de vencedor leva tudo talvez que um neurônio ele foi ativo ele foi definido como
vencedor ele inibe todos os demais neurônios da rede Qual que é a ideia então em vez da gente utilizar aquela questão a saída 1 ou 0 simplesmente pelo campo local induzido neurônio aqui a gente vai falar o seguinte um neurônio k ele vai ter uma saída um ou seja vai se tornar ativo Apenas quando o campo local induzido do neurônio car for maior que o campo local induzido de todos os outros neurônios da rede Então se aquele neurônio k ele consegue ele é mais próximo daquele padrão que ele voo ele ganhar a competição ele vai
ganhar o direito disparar vai ter saído a um e todos os demais vão ter saída zero e a regra de aprendizagem é a seguinte a gente vai calcular o nosso deltaw como sendo Eta de novo a taxa de aprendizagem multiplicado pela diferença do padrão de entrada x menos o peso então o que que a gente tá fazendo com essa regra aqui a gente basicamente está aproximando o vetor que representa o neurônio o vetor w do vetor x que levou ele a ganhar a competição então para ilustrar o processo a gente pode pensar o seguinte pessoal
que esses pontos aqui representam os exemplos do nosso conjunto de dados vários pontos e esse esse x esses 3x que nós temos aqui no espaço representam a posição original dos neurônios Então se a gente pegar por exemplo esse um exemplo aqui desse desse conjunto e apresentar para os três neurônios a gente é basicamente a fazer Qual que é o neurônio mais próximo Desse exemplo qual que neurônio mais parecido com esse exemplo Então vai ser esse neurônio vai ser arrastado para o centro desse grupo de pontos desses exemplos após diversas interações esses neurônios vão convergir para
o centro de massa de cada um desses agrupamentos e eles se especializam nesse agrupamento se podem ser utilizados como espécie de protótipos para os respectivos aprendizado de boltsman ela é um aprendizado enraizado aí na mecânica estatística na termodinâmica e a máquina de Bolt uma inspirada nesse processo de Bolt não foi proposto ela pelo de Ofner 1985 e os neurônios representam células binárias estocásticas para cada configuração da rede a gente pode calcular uma espécie de energia dessa rede essa energia ela vai depender do Estado de cada neurônio e da sua respectiva conexão então dado o conjunto
de pesos definidos e o estado x de k e o estado x de J do neurônio j o somatório de todas essas combinações vai gerar para a gente o estado da rede então ao ligar ou desligar o neurônio a gente vai alterar o nível dessa energia essa energia pode aumentar ou pode reduzir só que a gente tem uma regra definido aqui para o p de x que vai definir qual que é a probabilidade de ligação desse neurônio e a gente sabe que toda vez que a gente tem o delta e chamado GAP de energia ele
for positivo ou seja ao ligar aquele neurônio eu tô reduzindo a saída da rede a gente vai ter uma maior probabilidade de ligar esse neurônio então aplicando essa regra sucessivamente a gente vai fazer com que a rede ela saia de um estado de maior energia e vem atingir o equilíbrio térmico que é um estado de menor energia tá a máquina de Bolt mano ela tem dois tipos de neurônios Ela tem os neurônios chamados visíveis e os neurônios ocultos os neurônios visíveis eles fazem interface com o ambiente ou seja onde a gente vai apresentar o nosso
padrão extraído do conjunto de dados e os neurônios ocultos eles não são neurônios que vão tentar extrair características desses padrões apresentados na camada visual o treinamento dessa rede ela consiste de duas etapas primeiro a gente vai operar a máquina numa num cenário chamado de preso ou positivo no qual nós fixamos os estados desses neurônios a camada visível de acordo com o padrão que eu selecionei do meu conjunto de dados e eu vou deixar apenas os neurônios da camada oculta serem atualizados com aquela equação aquela probabilidade que eu defini no slide anterior já no estado livre
é todos os neurônios podem oscilar de maneirados para para evoluir de acordo com aquela função de probabilidade então o que que a gente vai fazer a gente vai é uma vez que eu comecei a rede comandada configuração configuração presa eu vou deixar rede evoluir até atingir o equilíbrio térmico ao atingir aquele britânico eu começo a analisar a correlação Entre todos os pares de neurônios existentes na rede ou seja quando o H2 está ligado como que o v4 está ligado também então toda vez que eu tenho H2 ligado Geralmente eu tenho v4 ligado Então existe uma
alta com relação positiva entre essas unidades e eu vou fazer a mesma coisa para o Estado Livre onde eu vou ter essas correlações no estado de Equilíbrio mas não para condição da camada visível presa mas para condição da camada visível solta então com base nessas duas medidas de correlação representada aqui por roupa positivo que representa a correlação entre kj no cenário preso e o Rô elevado a menos aqui que indica para a gente a correlação no estado livre a gente vai utilizar essa diferença das duas correlações multiplicadas pela taxa de aprendizagem para alterar os pesos
dessa rede então o que que a gente busca nesse processo é fazer com que a rede uma vez treinada no estado livre ela passa a exibir um comportamento semelhante aquilo que ela exibia no estado preso ou seja ela vai exibir na camada visível padrões semelhantes aqueles que eu tenho no meu conjunto de Treinamento conjunto de dados ela é uma máquina bastante difícil a gente vai abordar ela com mais calma na sexta semana do curso agora que a gente for tratar a máquina de Bolt na máquina restrita bom então dado essa esse conjunto de técnicas de
aprendizagem a gente pode utilizar eles dentro de diversos paradigmas de aprendizagem já entrei três paradigmas principais que é o supervisionado não supervisionado e o paradigma por reforço além de outras formas que alguns autores classificam como paradigma independente ou subparadigmas desse desse três paradigmas amplamente aceito vamos dizer assim que o aprendizado alto supervisionado aprendizado sempre previsionado próprio aprendizado ativo que que o aprendizado supervisionado então nós sabemos que todas as saídas são conhecidas pelo especialista então nós temos os padrões x e as respectivas saídas rotuladas então o objetivo do das tarefas é que consideram aprendizado supervisionado é
criar um mapeamento entre x e d nesse caso a partir de uma região Europa a partir de uma técnica é supervisionada e a forma mais comum de aprendizagem não é a única mas a forma bastante utilizada nessa nesse paradigma é a técnica de correção de erros que nós vimos agora a pouco algumas aplicações do aprendizado supervisionado comuns a classificação de dados a regressão tradução reconhecimento e seleção de atributos a seleção está destacada aqui porque a seleção de atributos ela pode ser tanto supervisionada quanto não supervisionada já o aprendizado não supervisionado a gente não tem a
presença do rótulo a gente não tem aquela aquela informação proveniente do Especialista ou do professor o modelo de alguma forma ele tem que buscar a partir dos próprios padrões de entrada alguma regularidade alguma algum padrão estatístico para treinar o modelo e esse tipo de aprendizagem só é possível quando existe redundância nos dados se eu tiver por exemplo dois exemplos apenas esse exemplo são tão parecidos quanto eu quero tão distantes quanto eu queira porque eu não tenho uma referência para definir se essa proximidade deles é grande ou não precisa de um grande conjunto de dados e
nesse paradigma de aprendizagem o aprendizado competitivo é bastante utilizado embora os outros aprendizados com o próprio aprendizado de bolso também podem ser considerados então algumas aplicações do aprendizado não supervisionado agrupamento de dados redução dimensionalidade seleção de atributos como eu já comentei também pode ser supervisionada Associação de padrões detecção de anomalias são todos os problemas aí que a gente pode tratar dentro do paradigma não supervisionado o aprendizado por reforço é um pouco diferente a gente tem uma gente representado que por esse robozinho agindo em um determinado ambiente ele vai executar ações esse ambiente por exemplo no
caso do jogo xadrez movimentar alguma peça e de acordo com essa ação executada ele vai alterar o estado do Tabuleiro tabuleiro tinha uma peça na posição a essa peça foi modificada para a posição bem em função da ação da gente essa modificação ela vai alterar o estado do sistema e vai penalizar ou recompensar o agente em função daquela ação realizada se a ação foi boa ela levou um cenário de positivo o cenário onde eu ganhei o jogo por exemplo eu vou reforçar a probabilidade de executar aquela função novamente ela não foi adequada eu vou tentar
penalizar evitando diminuindo a probabilidade daquela ação ser executada novamente para utilizar o aprendizado por reforço é bastante comum a gente utilizar a chamada tabela que o table onde eu tenho o conjunto de estados representados aqui na primeira coluna e as respectivas ações representadas em cada uma dessas demais colunas então seu tô no estado 1 por exemplo eu tenho 10% de chance de execução 20% de chance de executar são dois 60% são três e assim por diante então de acordo com o estado eu vou ter uma certa probabilidade para executar ação então o processo de aprendizado
por reforço ele vai basicamente alterar essa tabela Qual que é o problema aqui essa tabela pode ser muito grande se eu pensar no próprio jogo xadrez quantos estados possíveis eu tenho quantas ações possíveis eu tenho então o volume dessa do tamanho dessa tabela pode ser algo contratada e a gente sabe que redes neurais artificiais são aproximadores universais Então por que não utilizar uma rede neural ao invés da tabela que o tempo onde essa rede ela pode receber informações do estado e fornecer qual que vai ser ação executada aprender fazer esse mapeamento para resolver o problema
algumas aplicações aqui como foram comentadas né controle em jogos de computadores utilizam bastante esse tipo de aprendizado o centros previsionado já é um meio termo de supervisionado e não supervisionado ele utiliza dados tanto rotulados quanto dados não rotulados ele combina abordagens do paradigma supervisionado com paradigmas não supervisionado e objetivo Central aqui são dois primeiro construir modelos melhores que obtidos via aprendizados supervisionado ou seja tem um conjunto de dados supervisionados só que o agrega esse conjunto um volume não supervisionado Então quero que esse modelo ele se comporte melhor do que aquele que utilizou apenas os dados
supervisionados ou construir modelos com custo inferior por exemplo a construir um supervisionado eu preciso de 100 exemplos Pode ser que utilizando paradigma supervisionado eu preciso apenas de 10 exemplos do outro lado então vou reduzir o trabalho de especialista na rotulação desses dados outras formas de aprendizagem nós temos aprendizado altos previsionado bastante utilizado para extração de representações aprendizado ativo no qual o próprio processo de aprendizado vai selecionar quais exemplos que devem ir para o especialista para rotulação ou não e o transferir também que a transferência de aprendizagem onde a gente vai pegar o modelo treinado no
ambiente e generalizado para aplicação no outro ambiente de dados bom que que nós vimos nessa aula nós conhecemos o que que são que que é o processo de aprendizado em redes neurais artificiais nós conhecemos as principais técnicas de aprendizagem revisitamos os principais paradigmas que utilizam essas técnicas e vimos algumas possíveis aplicações de cada um desses paradigmas próxima aula nós vamos aprender como modelar a arquitetura de uma Regional utilizando gráfico de fluxos ou gráficos direcionados e conhecer as principais arquiteturas utilizadas adiante redes convolucionais e assim por diante bom agradeço novamente a atenção de vocês e até
a próxima aula [Música] [Música]