[Música] Olá bem-vindos a sexta semana do curso de redes neurais Eu sou professor Marcos killes e nessa semana nós vamos ver os modelos baseados em energia nessa aula específica nós vamos começar com a fazer uma primeira uma definição da área de sistemas dinâmicos e depois apresentar para vocês a rede de Rockfield Deixa eu fazer introdução geral sobre o conceito da utilização do sistema dinâmicos para com configuração para criação de redes neurais artificiais fazer uma breve introdução de maneira bastante superficial e sucinta é do que que são sistemas dinâmicos é uma área de pesquisa inteira dentro da física falar sobre a rede de robinfield entender como que ela funciona suas possíveis aplicações ilustrar o modelo e por fim entender algumas limitações que esse modelo teórico com poucas aplicações práticas ainda demonstram para a gente apresentam para a gente bom primeiro é um trabalho seminal e proposto pelo John hopfield até por rede de hopfield leva o nome do autor proposto lá em 1982 e como nós vimos na aula sobre histórico das redes neurais foi um dos trabalhos que desencadeou o reem interesse pela área de redes neurais após aquele inverno que nós tivemos na década de 70 e basicamente essa rede ela representada por um sistema dinâmico e Ela utiliza conceito da física estatística da dinâmica nuclear para a criação de memórias associativas basicamente a gente vai começar com uma condição Inicial e sistema dinâmico vai evoluir até convergir para um ponto fixo que vai armazenar aquela memória que nós queremos recuperar esse processo de armazenamento das memórias ele é realizado pelo processo de treinamento da rede de hopfield bom mas o que que são sistemas dinâmicos né é de maneira geral a gente pode falar sistemas dinâmico são sistemas que evoluem no tempo assim como esse pêndulo que a gente está vendo aí na tela ou seja dado uma foto inicial do sistema se eu soltar ele existe uma lei de evolução definida pela gravidade que vai fazer com que esse pêndulo comece a Gerar ou sei lá seguindo a sua própria dinâmica então toda teoria de sistemas dinâmica ela tem por objetivo avaliar compreender tanto de maneira qualitativa quanto quantitativa como que esses sistemas dinâmicos evoluem no tempo como que um sistema real um sistema artificial evoluir no tempo seja ele baseado em equações diferenciais ou equações de diferença então o que que nós desejamos com esse sistema dado uma condição Inicial nós queremos saber o que que acontece com esse sistema ao longo do tempo ele vai convergir para algum lugar ele vai divergir ele conversa com uma solução estável é possível prever seu comportamento futuro existe Mudança de comportamento de acordo com algum parâmetro do modelo ajustar um parâmetro do modelo a gente altera o comportamento desse sistema então basicamente a gente vai ter o estado do sistema pensar nesse estado como sendo uma foto ou a condição inicial do sistema se eu pego um objeto e solta uma altura h do solo a hora que eu soltar esse objeto a gravidade vai agir sobre ele ele vai cair vai começar a acelerar até atingir o solo e além disso além do Estado Inicial nós temos ali de evolução no nosso caso Desse exemplo que eu citei seria a força a força peso mais a Força menos a força de atrito e de acordo com a complexidade do modelo físico que nós quisermos adotar os sistemas dinâmicos podem ser utilizados diversas abordagens para fazer a sua concepção sua desenvolvimento matemática partindo de um lado totalmente contínuo utilizando equações diferenciais parciais onde nós conseguimos desenvolver sistema dinâmicos com o estado espaço e tempo contínuos e por outro lado automata celular onde nós vamos ter tempo estado e espaço discretos então basicamente a gente pensar no tempo especificamente nós podemos pensar no tempo contínuo sendo representado pela equação diferencial assim como essa que tá aqui na tela onde a variação de X no tempo Depende de uma função de x e do Estado x de ter no instante instantaneamente anterior já no caso de tempo discreto nós podemos definir um mapa como esse daqui ou seja o estado de X do tempo tem mais um depende dessa função que a nossa lei de evolução e o estado X no tempo anterior aqui para ilustrar o processo da devolução do sistema dinâmico eu vou considerar o modelo bastante simples no qual nós vamos variar um parâmetro e Verificar como que esse sistema se comporta ao longo do tempo então o que que a gente quer fazer aqui eu quero sair de uma condição Inicial representada aqui por x de 0 eu vou aplicar a lei de evolução sobre esse x0 gerando X1 aí sobre o X1 eu vou aplicar a lei de evolução de novo gerando X2 vou fazer isso n vezes eu quero observar o que que acontece com esse sistema ao longo do tempo então essa essa sequência de X1 X2 X3 assim por diante ela vai definir para a gente a órbita do sistema se a função essa lei de evolução ela forma função linear nós temos um sistema relativamente simples bastante fácil o que esse sistema pode fazer é convergir para um valor fixo é uma constante qualquer ou divergir para mais ou menos infinito por outro lado quando f de x é uma função Não linear aí a gente pode complicar um pouquinho como a gente vai ver no exemplo na sequência para ilustrar Então essa essa variedade de comportamento dinâmicos que a gente tem no modelo eu peguei o modelo aqui bastante simples que é o mapa Logístico onde nós temos que o estado de X o estado representa x o estado representado por x no tempo tem mais um Ele é igual a a onde esse a é um parâmetro de bifurcação vezes o estado X no tempo anterior vezes 1 menos o X no tempo anterior ou seja um mapa quadrático um mapa não linear tem o x vezes x aqui então esse valor de a ele vai definir pra gente Esse parâmetro de flucação de acordo com o valor já escolhido o sistema pode exibir comportamentos distintos por exemplo se nós começarmos com a = 2. 8 e aqui eu tô utilizando duas condições iniciais o chamado X1 e o X2 o X1 no tempo zero ele vai ser 0. 1 X2 no tempo zero ele vai ser 0.
8 que que a gente observa na evolução do sistema Eles começam em valores relativamente distintos um e 0. 10. 8 e ambos vão oscilando convergindo até chegar nesse valor que aproximadamente 0,65 então independente do valor que eu começar como estado Inicial entre 0 e 1 Ele sempre vai convergir para esse valor exceto se eu começar exatamente em zero dele permanece em zero Mas qualquer valor superior a 0 até 1 ele vai convergir independente do valor vai convergir para esse ponto fixo estável que é aproximadamente 0.
65 por outro lado quando eu aumento o valor de a o parâmetro de furação para 3. 4 a gente observa um comportamento distinto Tô começando com as mesmas duas condições iniciais aqui em 0. 8 0.
1 e a gente observa que agora o sistema ele não convergem no ponto fixo ele entra no os dois convergem para uma mesma trajetória mas uma trajetória que fica oscilando entre o valor zero ponto 40 alguma coisa 0. 80 alguma coisa ou seja a gente entra numa dinâmica de ciclo limite onde você vai ficar oscilando entre dois estados possíveis isso aqui essa dinâmica Ela poderia ser dois estados possíveis é quatro Estados possíveis oito estados possíveis e assim por diante porém só para ilustrar complexidade de um sistema dinâmico quando a gente muda esse parâmetro a para quatro e agora não vou começar com duas condições iniciais muito distintas vou começar com condições iniciais praticamente idênticas 0. 1 sendo que a segunda ela tem um erro de 10 a menos 4 aqui ela é 0.
1001 e a gente começa a aplicar aquela lei de evolução que que a gente observa Elas começam mais basicamente o mesmo Ponto elas vão caminhando de maneira Idêntica só que em algum momento aqui Elas começam divergir e gera um trajetórias totalmente distintas isso aqui é um mostrando para gente uma dinâmica caótica Ou seja eu vou começar com trajetórias muito simples condições iniciais muito simples mas dado a sensibilidade que eu tenho do Caos a condição Inicial essas órbitas divergem ao longo do tempo tá bom era uma órbita não periódica porque ela não se repete e tem qualquer pequena alteração na condição inicial a gente vai gerar órbitas distintas então mudando o parâmetro a a gente pega de uma mensagem no mesmo modelo e pode gerar dinâmicas com com bastante complexos aí então quando a gente pensa em redes neurais modeladas por sistema dinâmicos a gente sabe que a priori a resposta da rede ela não vai ser fruto ela não vai ser gerada apenas pelo padrão apresentado mas ela vai ser gerada pelo padrão apresentado e também pelo Estado no qual a rede se encontra no instante anterior então a gente vai instanciar na rede um exemplo um padrão esse a partir desse padrão que a nossa condição Inicial o nosso estado inicial do sistema e a lei de evolução essa rede vai evoluir até convergir para algum estado fixo um ponto fixo e quando a gente tem essas redes baseadas em Sistemas dinâmicos Então a gente tem as chamadas realimentações ou seja nós temos redes recorrentes ou redes realimentadas especificamente nesse caso dessa semana nós temos as redes recorrentes autônomas na semana 7 nós vamos ver sobre as redes recorrentes não autônomas tá e o armazenamento é a recuperação de informação nessas redes pensando na rede de hop houve já ela vai ser basicamente a Constituição de pontos fixos na rede então se eu quero recuperar um dado padrão como memória eu preciso modificar os pesos de tal forma que aquele padrão se torne um ponto fixo do sistema Ou seja a partir de uma condição próxima o sistema vai evoluir E vai convergir naquele padrão que eu defino como a memória fundamental do sistema Qual que é o problema que nós temos aqui primeiro redes e correntes unidades não lineares elas podem exibir comportamentos dinâmicos bastante complexos ele mostrou lá em 82 que a quando nós utilizamos conexões simétricas ou seja o peso que liga um neurônio J é o mesmo que liga J um neurônio e eu não crio laços de realimentação nos seguintes sentido o estado do neurônio e não depende do próprio Estado do neurônio do tempo anterior não tem esse loop a gente consegue associar uma função de energia Global a rede então dado um estado atual da rede a gente consegue calcular uma energia global e o importante que essa energia conforme a gente vai aplicando a lei de evolução ela sempre decai de maneira determinística ou seja vou sair de um estado com energia maior eu vou aplicando a lei até chegar numa energia menor ou chegar naquele ponto fixo que vai representar pra gente memória fundamental do sistema Então os pontos fixos são criados pelo processo de Treinamento ou seja pela ajuste de peso e cada ponto fixo Vai representar uma trator na rede ou seja uma memória fundamental que o armazenei ao longo do processo de Aqui nós temos a arquitetura da rede offield ela é uma rede com um conjunto de neurônios representados aqui em verde e a saída desse neurônio alimenta todos os outros neurônios da rede exceto ele próprio como eu falei não existe Auto alimentação então cada neurônio que ele recebe três entradas proveniente dos outros três neurônios exceto ele tanto como tem quatro neurônios na rede cada neurônio alimenta os outros três e não faz uma própria relementação esses neurônios são binários Ou seja a sua listados um simulador não tiver ligado ativo menos um ou zero de acordo com a formulação tiver desligado o inativo e ela de alguma forma faz uma analogia aos átomos de materiais ferromagnético o espinafredo desligado Tá bom embora é importante destacar que existem modelos de hopfield extensões da rede de rolfield para tratar dados contínuos a gente não vai abordar isso nessa aula então a gente pode definir energia da rede com essas fórmula que bastante simples no qual eu tô falando que é energia da rede vai ser menos o somatório de todos os estados os neurônios isjiotas multiplicados pelo seu respectivo peso de ligação então se eu tenho o estado de todos os neurônios da rede eu pego esse estado vezes o estado do neurônio conectado a ele vezes o peso fácil e somatório eu vou ter energia da rede é com a energia da rede a gente pode calcular o chamado GAP de energia Isso aqui vai ser bastante importante tanto nessa aula quanto nas próximas Qual que é a ideia esse GAP de energia quanto que energia varia ao ligar um neurônio Então vamos supor que eu tenho energia com o neurônio específico desligado e depois eu tenho energia específica com esse mesmo neurônio ligado se essa energia com ele desligado era maior do que a energia com ele desligado eu tenho que esse valor é menor que esse maior que esse logo esse valor é que essa subtração vai ser positiva então pensar que eu tinha energia 10 aqui a energia caiu para 9 o delta aí do neurônio vai ser um indicando que eu tive um ganho de energia um ganho na redução da energia logo esse neurônio vai ser ligado de acordo com a regra de evolução da rede e esse GAP de energia a hora que a gente pega essa mesma equação aqui considera ela com x igual a zero menos ela com x = 1 fazendo a respectiva um pouquinho de álgebra a gente chega nesse somatório aqui ou seja o GAP de energia do neurônio é o somatório de todos os neurônios da rede porque não tem auto alimentação vezes os pesos que ligam neuronoir a cada neurônio J se a gente lembrar um pouquinho isso aqui é exatamente o campo local induzido que a gente utiliza lá no neurônio CP Ou seja a gente está calculando um produto entre um vetor de Estados e um vetor de pesos um vetor de entrada vetor de peso tá então sempre que esse GAP de energia for positivo a gente vai ligar o neurônio sempre que o GAP de energia é negativo a gente vai desligar o neurônio Assim como nós fazemos a rede na rede percebe se aquele somatório é maior que zero é um senão é zero com exceção que aqui quando o GAP de energia for exatamente igual a zero a gente não altera o estado atual da do neurônio se ele era um permanece um se ele é zero ele permanece em zero estou a partir de uma condição Inicial vou lá instansivo tá ligado está desligado está ligado eu coloco uma condição Inicial na rede como se fosse aquela altura da da pedra que eu tô soltando ela no espaço estou definindo essa altura aqui onde eu tô em que estado que eu tô no meu sistema a gente pode representar esse estado como sendo esse eixo X que eu tenho aqui então de acordo com o estado que eu defini eu vou ter um valor de energia associado e o que que eu já falei que a gente vai reduzir essa energia ao longo das atrações então se a gente começar por exemplo aqui e eu for atualizando os estados de cada unidade seguindo aquele GAP de energia Ou seja é positivo ligo negativo desliga essa rede ela tende a convergir para um outro estado de menor energia e se a condição Inicial tiver dentro dessa região aqui ó definida por esse vale a gente chama isso aqui de uma bacia de atração isso daqui é o trator da bacia de atração ou seja se eu começar em qualquer estado daqui até aqui ele vai convergir para essa memória fundamental associada a esse trator Tá bom então um conjunto de todos os estados que convergem para uma dada memória para uma dada trator a gente chama de bacia de atração da rede importante observar que a gente pode ter diversas bacias ao longo dos Estados da rede bom que uma ilustração Então a nossa regra de transição é um se o GAP de energia for maior que zero é menos um GAP de energia for menor que zero e mantém-se caso GAP de energia se torna igual a zero então tem uma rede aqui que o estado Inicial dela cada bolinha aqui representa um neurônio o estado 1 representa ligado o estado menos um representante desligado Vamos pensar nesse caso aqui do lado esquerdo primeiro onde eu tenho todos os neurônios ligados aí eu vou analisar o que que acontece com o GAP de energia do neurônio que está em amarelo esse neurônio do Canto inferior esquerdo como que a gente calcula o GAP eu vou pegar o estado de cada neurônio conectado a ele multiplicar pelos respectivos pesos e vou somar então vou ter 1 x - 0. 5 + 1 x 0. 2 ou seja o resultado é - 0.
3 como GAP de energia é negativo eu vou desligar esse neurônio quer dizer que no próximo instante do tempo essa rede vai estar com esse estado aqui como se eu tivesse voltado aquela pedra ela caiu um pouquinho então agora esse neurônio tá custando um esse neurônio tá custando um e esse neurônio está custando menos um O que acontece se eu pegar algum outro neurônio aqui por exemplo esse neurônio aqui de cima e eu verificar o GAP de energia dele eu vou ter 0. 2 - 1 - 0. 2 e aqui eu vou ter 0.
3 ou seja 0. 1 significa que o estado desse ano permanece ligado se eu avaliar se esse outro neurônio aqui eu teria menos 05 x 1 - 1 então tem 0,5 positivo 1 x 0. 3 a gente tem 0.