[Música] Olá a todos bem-vindos a mais uma aula do curso de redes neurais nessa aula terceira aula da semana 6 última aula da semana 6 nós vamos aprender um pouco sobre a máquina restrita de Bolt mano especificamente nessa aula nosso Descobriremos algumas limitações que nós observamos já na aula passada sobre a máquina de boltman tradicional nós vamos apresentar a máquina restrita como que é feito o seu treinamento e por fim o algoritmo da divergência constrativa que é algoritmo bastante eficiente para treinamento da máquina restrita de Bolt completo significa que todo neurônio ou todo vértice desse
gráfico ele está ligado a todos os outros vértices então quando Nós pensamos em como calcular o GAP de energia desse neurônio para verificar se ele tem o maior probabilidade de ser ligado ou desligado nós precisamos considerar o estado de todos os demais neurônios das redes e suas respectivos pesos automaticamente a hora que alteram um neurônio da rede o estado de neurônio eu preciso novamente verificar o estado de todos os outros neurônios para verificar se o essa pequena alteração que eu fiz um neurônio acarretou em uma alteração mais significativa nos outros neurônios então a gente pode
dizer que todo neurônio Depende de todos os outros e como consequência para atingiu o equilíbrio térmico nessas redes tanto na fase positiva onde eu tenho a camada visível presa quanto na fase negativa não coloca a camada visível está solta o custo como está funcionando bastante alto então ela acaba limitando muito a aplicação desse modelo em cenários reais onde eu tenho um grande volume de dados e redes com grande volume de neurônios Qual que é a ideia da máquina de Bolt mano tradicional nós temos uma função de energia definida aqui por essa equação onde nós temos
três termos um termo que depende dos sinais intraneurônios da camada visível e o seu respectivo peso um termo que depende dos sinais intraneurônios da camada oculta e seus respectivos pesos e um termo que depende dos sinais interno neurônios ou seja as ligações entre neurônios da camada visível e da camada oculta Qual que é o nosso objetivo aqui então nós queremos reduzir energia como consequência aumentando aumentar a probabilidade daqueles estados que nós desejamos que a redesiba na sua camada visível e Em contrapartida nós queremos aumentar energia ou seja reduzir a probabilidade daqueles estados que a máquina
exibe naturalmente porém é nós não queremos que ela exiba na sua camada visível E para isso nós treinamos modelo utilizando duas fases como nós já vimos na aula passada nós calculamos as correlações entre os pares de neurônios na fase positiva ou seja aquela que a rede atinge o equilíbrio térmico mantendo a camada visível fixa e a fase negativa no qual nós temos também a correlação entre par de neurônios só que agora todos os neurônios podem oscilar livremente até atingir o equilíbrio térmico uma vez que atingir um equilíbrio Entre esses dois termos a rede estabiliza e
o processo de treinamento é interrompido porém o custo disso é muito alto então qualquer ideia Será que nós não conseguimos restringir a algum tipo de conexão a conectividade dessa rede é visando melhorar esse curso computacional Então será que a gente não consegue eliminar algum tipo de conexão para fazer com que essa rede consiga atingir o seu equilíbrio térmico mais rápido e exatamente o que a gente vai fazer com a máquina restrita de Bolt mano ou também máquina de bolts uma restrita conforme mencionado por alguns autores A ideia é o seguinte nós vamos preservar as duas
camadas que nós já temos na rede tradicional a camada oculta e a camada visível só que nós vamos restringir as conexões basicamente excluindo as conexões intracamadas ou seja nós vamos eliminar aquelas conexões entre neurônios de uma mesma camada seja visível visível seja oculto oculto Então nós não teremos mais ligações entre neurônios ocultos Não teremos mais ligações entre nós visíveis e a nossa máquina restrita ficará representada como sendo um gráfico bipartido Qual que é a consequência principal disso a hora que eu quero calcular o GAP de energia de um neurônio da camada oculta ele não depende
diretamente dos outros neurônios da camada oculta ele depende simplesmente dos neurônios da camada visível e a mesma coisa na camada visível para calcular o GAP de energia desse neurônio aqui eu não preciso saber do GAP a o estado desses outros neurônios da camada visível basta consultar os estados dos neurônios da camada oculta que são ligados e calcular o seu GAP então o processo ele acaba ficando bem mais simples Qual que é o ponto interessante disso como o cálculo do GAP de energia de um neurônio oculto ele depende diretamente neurônios visíveis e na fase presa na
fase positiva os neurônios da camada visível estão fixos com apenas um passo computacional nós conseguimos calcular a probabilidade de ligação ou desligamento de cada neurônio da camada oculta então qualquer ideia na fase positiva a gente fixa um padrão da camada visível na camada visíveis extrai um padrão lá do nosso conjunto de dados lembrando da do exemplo da aula passada aqueles onde cada neurônio da camada oculta camada visível representava um filme nós podemos pegar um exemplo um usuário e colocar ele gosta desse filme não gosta desse gosta desse gosta daquele outro feito isso a gente com
apenas um passo a gente ajusta Qual que é o estado provável dos neurônios da camada oculta E com isso a gente já consegue calcular aquela com relação entre os Estados dos neurônios da camada oculta e da visível que é utilizada na atualização na forma de atualização do da rede de Bolt na fase negativa por outro lado nós vamos partir de um conjunto inicial de Estados representativos e deixar a máquina evoluir até atingir o equilíbrio térmico Assim como nós fazemos a máquina de Bolt né com a restrição agora que a gente não precisa fazer este maneira
assim Corona fazendo neurônio por neurônio como nós fazemos a mata anterior aqui como existe uma dependência direta o culto depende do visível visível depende do culto que a gente pode fazer isso em partes eu estabilizo os neurônios da camada visível com isso eu defino os neurônios da camada oculta com os números da camada do culto define novamente os neurônios da camada visível e vou fazendo isso passo a passo até atingir o equilíbrio térmico do sistema tá bom então uma ilustração aqui nós começamos fixando um conjunto de estados no tempo zero na camada visível com esses
estados fixos na fase presa nós definimos os estados prováveis à camada oculta Aí nós já conseguimos calcular aquela correlação no tempo zero que esse primeiro termo aqui que a gente tinha com sinal de mais naquela fórmula da máquina tradicional da máquina de boa última tradicional na sequência a gente solta a camada visível e permite que ela auxile permite que ela seja ajustada de acordo com a probabilidade defenda pelo GAP de energia esses gaps de energia são calculados utilizando esses estados ocultos calculados a gente novamente calcula os resultados ocultos com esse novo estado visível calculado e
a gente vai fazendo isso n vezes ou infinitas vezes até atingir o equilíbrio térmico na rede então nós temos que esse passo ele é bastante simples depende apenas de um passo computacional por outro lado a fase negativa ainda tem um custo computacional bastante elevado então a evolução é mais simples é visível implica no oculto oculto implica no visível a gente não precisa ficar fazendo aquela atualização assim o custo da fase positiva é um porém o custo faz negativo ele é bastante Custoso isso acaba limitando a aplicação desse modelo em cenários reais assim como a gente
tem na máquina de Bolt contradicional mesmo sendo um pouco mais eficiente ainda assim ele tem suas limitações já algoritmo da divergência construtiva que é algoritmo que tenta otimizar esse processo de treinamento da máquina restrita de boltman ele é composto de Quatro Passos principais primeiro a gente fixa essa camada visível com os exemplos do nosso conjunto de dados igual nós fizemos um passo anterior com essa camada visível fixa nós atualizamos os estados dos neurônios ocultos utilizando aquele aqueles estados é fixados na camada visível aí com isso a gente consegue calcular aquelas correlações do Passo zero ou
seja com relação positiva aquela que vai ser utilizada para aumentar a probabilidade e reduzir a energia da rede na sequência a gente libera a camada visível e faz um passo que a gente chama de reconstrução Ou seja você gerar um novo padrão na camada visível com base naqueles estados ocultos gerados pela rede aí novamente a gente parte desse estado visível e calcula os dados prováveis do Estado oculto de novo dos neurônios oculto de novo e calcula com isso as correlações dos neurônios agora não no infinito no equilíbrio térmico mas com um passo a mais do
processo de do processo de evolução da rede então a forma de atualização agora Ela depende da fase positiva definida no Passo zero e da fase negativa definida no Passo 1 ou seja com apenas dois passos computacionais eu consigo calcular tanta correlação positiva quanto a correlação negativa da rede permitindo o ajuste dos pesos Então qual que a ideia a gente começa com a camada visível igual eu já mostrei para vocês define os neurônios da camada oculta os estados menores acamada oculta com esse neurônio fixo uma vez que eu fiz isso eu solto a camada visível e
redefino os estados da camada visível utilizando os estados da camada oculta e novamente a gente calcula os neurônios acamado oculta utilizando os novos estados da camada visível então aqui a gente né Com relação positiva e aqui a gente tem as correlações negativas bom Por que que isso funciona qual que é o que que tá por trás desse algoritmo Por que que eu não preciso atingir o equilíbrio térmico Assim como nós precisamos a máquina de bolts uma tradicional ou mesmo no algoritmo anterior que eu apresentei para a própria máquina restrita de boltsma qual que é a
ideia a partir de um dado Inicial fixei um padrão na camada visível da rede aquilo tá fixo a hora que eu solto esse padrão deixo os neurônios da camada visível a camada visível é oscilarem essa rede vai começar um processo de convergência para o equilíbrio térmico então ela vai sair de um estado e caminhar na direção de um outro estado de menor energia até atingir aquele mínimo local daquela nossa bacia de atração uma vez que eu conheço para onde a rede está indo eu não preciso esperar ela chegar lá no mínimo eu falo o seguinte
se ela tá saindo desse estado e caminhando por esse estado seguinte que é um estado que eu não quero que que eu preciso fazer eu preciso subir energia desse estado evitando que a rede saia daquele estado fixo da fase zero da fase positiva e caminha na direção desse novo estado para qual a rede naturalmente caminharia se eu deixasse ela caminhar em direção ao equilíbrio térmico então observar essa direção para onde a rede está caminhando nosso objetivo aqui é evitá-la então isso pode ser feito com pouco espaço no caso aqui a divergência constrativa de Passo 1
a gente também pode utilizar outros divergência construtiva com outros Passos com três com cinco com 10 Como eu vou mostrar para vocês daqui a pouco então qual que é a ideia aqui é o estado que eu quero que a rede de armazém que eu quero um padrão que eu quero que a rede Armazém como sendo uma das memórias dela Aqui tá o Estado então e aqui tem energia uma energia alta o que que acontece a hora que a gente solta a camada visível a rede tende a caminhar na direção da menor energia chegar nesse mínimo
local é porém se ela sai daqui e ela vem direto para cá que já é uma região de menor energia que que eu posso fazer para evitar que ela caminha nessa direção basicamente a gente pode subir energia desse ponto e reduzir a energia daquele ponto que eu quero que ela armazene como sendo um padrão de comportamento na camada visível Qual que é o problema aqui né a gente ainda preserva alguns pontos de mínimo que não necessariamente são pontos desejáveis do processo de Treinamento então com a divergência constrativa de um passo a gente consegue simplesmente criar
barreira de potencial ao entorno daquele ponto que nós queremos armazenar daquele estado que nós queremos armazenar então para evitar isso para melhorar esse processo que a gente pode fazer o seguinte ao invés de utilizar apenas a divergência quantitativa com passo 1 nós podemos seguir as seguintes estratégia nós começamos o treinamento da rede com divergência quantitativa de Passo 1 E deixamos a rede estabilizar quando que ela estabiliza quando aquela diferença da correlação positiva para correlação negativa fica muito próxima de zero Então a partir daquele momento ela já não treina mais chegou nesse ponto de estabilidade a
gente amplia para três passos a gente começa a divergência construtiva agora com três passos o que que isso significa visível oculto aí eu faço o culto visível culto visível culto visível tem esse terceiro passo aqui eu vou calcular com relação lá na frente então não aquela calculada logo depois da rede ter a camada visível e liberada novamente atingir a estabilização atingir estabilidade do treinamento com divergência constativa de Passo 3 eu passo para um passo 10 ou seja eu consigo atingir agora Passos é distâncias maiores na nossa superfície de energia do erro que depende dos Estados
então com isso nós conseguimos um bom balanceamento entre uma máquina que pode ser treinada com custo computacional inferior e possui um bom comportamento mesmo se ela consegue aprender mesmo não necessariamente atingindo aquele equilíbrio térmico que é o método tradicional da máquina de boltman aqui uma ilustração que eu peguei de uma aula do professor de Alfre hinton eu não sei se vocês se recordam quem é o de Alfre Hitler é um dos Pais do algoritmo de propagação ele é o pai da Mata de boats o pai do algoritmo de emergência constrativa e um dos pesquisadores mais
citados do mundo na computação ele deve ser o primeiro ou segundo mais citado ele tem 600 mil citações é um dos maiores nomes que nós temos dentro da área de redes neurais até hoje então nesse exemplo que ele faz o seguinte ele vai treinar uma máquina de boltman restrita para receber como entrada um conjunto de 256 neurônios onde cada neurônio Vai representar um desses pixels dessa imagem 16 por 16 então cada um desses neurônios aqui alimenta todos os 50 neurônios da camada oculta então nós temos 256 neurônios na camada visível 50 neurônios cada neurônio da
camada oculta como ele tá ligado aos 256 neurônios da camada visível eles têm 256 pesos então a gente pode plotar esses pesos dos neurônios da camada oculta também no formato de uma imagem assim como a gente tá vendo esse dois aqui então qual que é a ideia eu vou apresentar para a rede no processo de treinamento para treinar esse modelo Eu apresento para rede o número 2 aqui ou um dos exemplos dos dois mano escritos que eu tenho no meu conjunto de dados fixo ele deixo a rede ajustar camada oculta calcula aquela correlação solta a
camada visível faço a reconstrução do padrão visível e com essa reconstrução eu ajusto novamente os neurônios da camada oculta tem a correlação de Passo 1 ou isso eu já consigo calcular o algoritmo da divergência quantitativa de passou e treinar o modelo então o que que acontece agora uma vez que eu treinei a modelo suposto vamos supor que eu já fiz o passo 1 já fiz o passo 3 já fiz o passo 10 a gente tá treinada uma vez que eu apresento um novo exemplo aqui ou um pedaço de um dois ou um pedaço de um
padrão visual essa rede ela vai convergir ela vai buscar um padrão mais próximo daquele que eu apresentei como entrada da rede é preenchendo Possivelmente alguns pixels que estão faltando eliminando ruídos dessa imagem então ela vai conseguir exibir aqui na camada visível padrões semelhantes aqueles que foram utilizados durante o treinamento da rede é o que que os neurônios da camada oculta representam Como já mostramos na aula passada já comentamos na aula passada os neurônios ocultos buscam encontrar descritores representações estatísticas dos padrões apresentados na camada visível especificamente no caso desse desse problema aqui com os dois mano
escritos se a gente analisar cada um dos 50 neurônios ocultos que nós temos aqui por exemplo pegar esse neurônio aqui nós observamos que esse homem tem um padrão ele aprende um filtro que é um extrator de características desse comportamento do dois que nós temos observado aqui ou seja aquela aquela Costa do número 2 então cada neurônio específico aqui ele vai tentar aprender a extrair características específicas associadas ao padrão 2 generalizando esse mesmo exemplo do professor jofrey para agora para 10 dígitos não apenas o dígito 2 ou seja de zero a nove utilizando 500 neurônios ocultos
aqui eu mostro para vocês é um subconjunto né de 100 neurônios ocultos e os respectivos filtros que foram apreendidos por esse neurônio basicamente aqueles pontos em branco que na imagem são aqueles pontos no qual tem um alto peso ligando dois neurônios específicos então toda vez que um neurônio daquela região ou um pixel daquela região tiver ligado ele vai forçar um outro Pixel daquela mesma região Branca ligado também se ele tiver desligado ele vai forçar aquele Pixel a desligar é os pontos escuros oposto se eu tenho um pixel ligado ou forçar desligamento daquele outro se eu
tenho um pixel desligado vou forçar a ligação daquele outro e os pontos em cinzas são aquelas regiões que aquele neurônio específico não tá levando tanto em consideração para gerar sua saída para calcular o seu estado algumas extensões desse desse mudar da máquina restrita de boltman ela pode ser utilizada também com dados contínuos não apenas dados binários como nós vimos nessa aula e nós também podemos treinar diversas camadas de máquinas restritas de boltsman da seguinte forma usa uma camada visível para treinar a camada oculta treinos dessa rede agora utilizo os padrões gerados na camada oculta como
sendo a camada visível de uma outra de uma outra máquina restrita de Bolt e vou fazendo isso constantemente e vou empilhando essas redes criando que nós chamamos debility bastante Poderosas e utilizadas para tratar problemas mais complexos que aqueles tratados pela máquina restrita de Bolt bom que que nós vimos nessa aula primeiro Nós aprendemos revisitamos né Quais são as limitações da máquina de boltman tradicional é entendemos Qual que é a ideia da máquina restrita de boltman ou máquina de boltz uma restrita como eu já comentei é entendemos o funcionamento do algoritmo de Treinamento padrão e do
algoritmo de Treinamento denominado de emergência construtiva na nossa próxima semana nós vamos continuar no tema redes recorrentes porém utilizando aprendendo sobre redes recorrentes na autônomas especificamente nós vamos aprender as rn's e as redes que tem memória de longo prazo denominadas Geru e lsdm bom Agradeço a todos pela atenção e até a próxima semana [Música] [Música]