Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Aula 12.3 — Máquinas de Boltzmann Restritas
Aula 12.3 — Máquinas de Boltzmann restritas [Redes neurais para aprendizado de máquina]
As máquinas de Boltzmann têm uma arquitetura simplificada sem conexões entre unidades ocultas, facilitando o cálculo da distribuição de equilíbrio das unidades ocultas quando as unidades visíveis são fixadas. O algoritmo de aprendizado para máquinas de Boltzmann é lento, mas um atalho foi descoberto em 1998 que levou a um algoritmo de aprendizado eficiente para máquinas de Boltzmann restritas (RBMs). Os RBMs têm conectividade restrita, com uma camada de unidades ocultas e nenhuma conexão entre unidades ocultas ou visíveis. A arquitetura RBM é um grafo bipartido com cálculos independentes para cada unidade.
O atalho permite o cálculo rápido dos valores esperados das conexões entre as unidades visíveis e ocultas em paralelo. Um algoritmo de aprendizado para RBMs introduzido em 2008 envolve fixar um vetor de dados nas unidades visíveis, calcular os valores esperados das conexões e fazer a média deles sobre os vetores de dados no mini-lote. Na fase negativa, as partículas de fantasia (configurações globais) são usadas para atualizar cada partícula algumas vezes, e os valores esperados das conexões são calculados sobre as partículas de fantasia. Este algoritmo constrói bons modelos de densidade para vetores binários.
Outro algoritmo de aprendizado para RBMs é mais rápido, mas não tão eficaz na construção de modelos de densidade. Envolve a execução de uma cadeia alternada de atualizações entre unidades visíveis e ocultas. A regra de aprendizado atualiza os pesos com base na diferença entre os valores esperados das conexões no início e no final da cadeia. Não é necessário rodar a corrente por muito tempo para atingir o equilíbrio térmico; mesmo uma cadeia curta produz aprendizagem eficaz.
O atalho funciona porque a cadeia de Markov se afasta dos dados em direção à distribuição de equilíbrio. Ao alterar os pesos para diminuir a probabilidade de reconstruções e aumentar a probabilidade dos dados após uma etapa completa, a cadeia para de se afastar dos dados. A aprendizagem termina quando os dados e as reconstruções têm a mesma distribuição. A superfície de energia no espaço de configurações globais é modificada para criar um mínimo de energia no ponto de dados durante o aprendizado.
No entanto, o atalho falha para regiões distantes dos dados. Partículas persistentes, que lembram seus estados e passam por atualizações adicionais, podem ajudar a resolver esse problema. Um compromisso entre velocidade e correção é começar com pesos pequenos e usar divergência contrastiva (CD) com alguns passos (CD-1, CD-3, CD-5, etc.) à medida que os pesos aumentam. Essa abordagem mantém o aprendizado eficaz mesmo quando a taxa de mistura da cadeia de Markov diminui.
Usando essa abordagem, o algoritmo de aprendizado para máquinas Boltzmann restritas (RBMs) atinge um equilíbrio entre velocidade e precisão. Ele começa com pesos pequenos e utiliza divergência contrastiva (CD) com um pequeno número de etapas, como CD-1, à medida que os pesos aumentam gradualmente. Essa estratégia garante que o processo de aprendizado continue a funcionar razoavelmente bem, mesmo quando a taxa de mistura da cadeia de Markov diminui.
É importante considerar as regiões do espaço de dados que o modelo favorece, mas estão longe de quaisquer pontos de dados reais. Essas regiões, conhecidas como buracos de baixa energia, podem causar problemas com o termo de normalização. Para resolver isso, uma técnica chamada partículas persistentes pode ser empregada. Partículas persistentes retêm seus estados e passam por atualizações adicionais após cada atualização de peso. Ao fazer isso, eles podem explorar e eventualmente preencher esses buracos de baixa energia, melhorando o desempenho do modelo.
O algoritmo de aprendizado RBM usando o atalho e várias técnicas, como CD com diferentes números de etapas e o uso de partículas persistentes, permite um aprendizado eficiente e a construção de modelos de densidade efetivos para conjuntos de vetores binários. Embora o atalho se desvie do aprendizado de máxima verossimilhança e tenha limitações teóricas, ele provou funcionar bem na prática, levando a um ressurgimento do interesse no aprendizado de máquina de Boltzmann.
Aula 12.4 — Um exemplo de aprendizado de RBM
Aula 12.4 — Um exemplo de aprendizado de RBM [Redes neurais para aprendizado de máquina]
Neste vídeo, demonstraremos um exemplo simples de uma máquina de Boltzmann restrita (RBM) aprendendo um modelo de dois manuscritos. Depois que o modelo for treinado, avaliaremos sua capacidade de reconstruir dois e observaremos seu comportamento quando recebermos um dígito diferente para reconstruir. Além disso, examinaremos os pesos obtidos treinando um RBM maior em todas as classes de dígitos, que aprende uma ampla gama de recursos que são eficazes para reconstruir e modelar várias classes de dígitos.
O RBM usado neste exemplo tem imagens de 16x16 pixels de dois e 50 unidades ocultas binárias que funcionam como detectores de recursos. Quando apresentado a um caso de dados, o RBM ativa os detectores de recursos usando os pesos e conexões de pixels para detectores de recursos. Cada neurônio binário toma uma decisão estocástica de adotar um estado de 1 ou 0. O RBM então usa essas ativações para reconstruir os dados tomando decisões binárias para cada pixel. Os pesos são atualizados aumentando os pesos entre os pixels ativos e os detectores de recursos ativos durante o processamento de dados e diminuindo os pesos durante a reconstrução.
Inicialmente, os pesos são aleatórios e as reconstruções têm energia menor que os dados. Através do treinamento em centenas de exemplos de dígitos e ajustes de peso, os pesos gradualmente formam padrões. Muitos detectores de recursos começam como detectores globais, tornando-se mais localizados à medida que o treinamento avança. Os pesos finais revelam que cada neurônio se tornou um detector de característica diferente, com a maioria dos detectores sendo de natureza local. Por exemplo, um detector de recursos pode detectar o topo de um dois ativando seus pixels brancos quando o topo de um dois está presente e seus pixels pretos quando não há nada.
Depois de aprender o modelo, podemos avaliar suas habilidades de reconstrução. Quando dado um exemplo de teste de dois, a reconstrução é geralmente fiel, embora um pouco embaçada. No entanto, se fornecermos um exemplo de teste de uma classe de dígitos diferente, como três, o RBM reconstrói uma imagem que se assemelha a dois em vez de três. Esse comportamento ocorre porque o RBM aprendeu principalmente detectores de recursos específicos para dois e não possui detectores para certas características de outros dígitos.
Além disso, mostramos detectores de recursos aprendidos na primeira camada oculta de um RBM maior treinado em todas as classes de dez dígitos. Esses detectores de recursos exibem uma ampla variedade de padrões. Alguns detectam características específicas como linhas inclinadas, enquanto outros capturam regularidades espaciais ou de longo alcance introduzidas pela normalização dos dados. No geral, o RBM demonstra sua capacidade de aprender formas complexas de representar e detectar recursos nos dados de entrada.
Além disso, gostaria de salientar que o RBM usado nesta demonstração consiste em 500 unidades ocultas, permitindo modelar todas as classes de dez dígitos. Este modelo passou por um treinamento extensivo usando uma técnica chamada divergência contrastiva. Como resultado, adquiriu um conjunto diversificado de detectores de recursos.
Examinando os detectores de recursos na camada oculta, observamos padrões intrigantes. Por exemplo, existe um detector de características, indicado pela caixa azul, que parece adequado para detectar a presença de linhas diagonais. Por outro lado, o detector de recursos na caixa vermelha exibe uma característica única. Ele prefere ativar os pixels localizados muito perto da parte inferior da imagem e não gosta de pixels em uma linha específica posicionada 21 pixels acima da parte inferior. Esse comportamento decorre da normalização dos dados, onde os dígitos não podem ultrapassar a altura de 20 pixels. Consequentemente, um pixel ativado na região de peso positivo não pode ser ativado simultaneamente na região de peso negativo, resultando no aprendizado dessa regularidade de longo alcance.
Além disso, outro detector de características, destacado na caixa verde, demonstra uma propriedade interessante. Ele detecta a posição inferior de um curso vertical e pode detectá-lo em várias posições, desconsiderando as posições intermediárias. Esse comportamento se assemelha ao dígito menos significativo em um número binário, que alterna entre estar ativo e inativo conforme a magnitude do número aumenta. Ele mostra a capacidade do RBM de desenvolver representações complexas de relações e posições espaciais.
Esses exemplos ilustram a capacidade do RBM de aprender e extrair recursos significativos dos dados de entrada. Ao ajustar os pesos durante o processo de aprendizado, o RBM visa fazer com que os dados tenham baixa energia, mantendo maior energia para as reconstruções. Esse mecanismo de aprendizado permite que o RBM modele e reconstrua imagens de dígitos de forma eficaz, capturando características globais e locais dos dígitos em suas representações aprendidas.
Aula 12.5 — RBMs para filtragem colaborativa
Aula 12.5 — RBMs para filtragem colaborativa [Redes neurais para aprendizado de máquina]
Neste vídeo, discutiremos a aplicação de Restricted Boltzmann Machines (RBMs) em filtragem colaborativa, especificamente no contexto da competição Netflix. A filtragem colaborativa envolve a previsão de quanto um usuário gostaria de um produto com base em suas preferências por outros produtos e nas preferências de outros usuários. A competição da Netflix desafia os participantes a prever o quanto um usuário gostará de um filme com base em suas avaliações de outros filmes.
Os dados de treinamento para esta competição consistem em um grande conjunto de dados com cem milhões de classificações para dezoito mil filmes por meio milhão de usuários. Para enfrentar o desafio de perder classificações para a maioria dos filmes, um truque importante é empregado ao usar RBMs. Ao utilizar este truque, os modelos podem ser treinados de forma eficaz e provam ser úteis na prática, como demonstrado pela entrada vencedora na competição.
A abordagem de usar RBMs para filtragem colaborativa envolve tratar cada usuário como um caso de treinamento, onde cada usuário é representado como um vetor de avaliações de filmes. Para cada filme, uma unidade visível com cinco valores alternativos (five-way softmax) é usada em vez de unidades binárias. A arquitetura RBM consiste em unidades visíveis representando filmes e unidades ocultas binárias. Os RBMs compartilham pesos entre os usuários que classificaram o mesmo filme, permitindo o compartilhamento de peso e reduzindo o número de parâmetros. O aprendizado de CD (divergência contrastiva) é aplicado para treinar os RBMs, inicialmente com CD1 e depois com CD3, CD5 e CD9.
Os modelos RBM têm desempenho comparável aos métodos de fatoração de matriz comumente usados em filtragem colaborativa. No entanto, eles produzem erros diferentes. A combinação das previsões de RBMs com as dos modelos de fatoração de matriz resulta em melhorias significativas. O grupo vencedor na competição Netflix utilizou vários modelos RBM e modelos de fatoração de matriz em seu conjunto para obter melhores previsões.
Em resumo, a aplicação de Restricted Boltzmann Machines (RBMs) na filtragem colaborativa para a competição Netflix envolveu tratar cada usuário como um caso de treinamento, usando RBMs com unidades visíveis representando filmes e unidades ocultas binárias. Aproveitando o compartilhamento de peso entre os usuários que classificaram o mesmo filme, os RBMs podem lidar com o grande conjunto de dados de forma eficaz.
Os RBMs foram treinados usando aprendizado de CD, com iterações de CD1, CD3, CD5 e CD9, e tiveram desempenho semelhante aos modelos de fatoração de matriz comumente usados em filtragem colaborativa. No entanto, a combinação de RBMs e modelos de fatoração de matriz levou a uma melhoria significativa nas previsões. A entrada vencedora na competição Netflix empregou vários modelos RBM e modelos de fatoração de matrizes em seu conjunto, mostrando a eficácia dessa abordagem.
A utilização de RBMs na filtragem colaborativa demonstra sua capacidade de lidar com conjuntos de dados grandes e esparsos, como o conjunto de dados Netflix com milhões de classificações. Ao modelar as relações entre usuários e filmes, os RBMs fornecem uma ferramenta poderosa para fazer previsões precisas e melhorar os sistemas de recomendação.
A aplicação bem-sucedida de RBMs na filtragem colaborativa mostra sua utilidade no campo de aprendizado de máquina e sistemas de recomendação e destaca o potencial de utilização de abordagens de conjunto para aumentar ainda mais a precisão da previsão.
Aula 13.1 — Os altos e baixos da retropropagação
Aula 13.1 — Os altos e baixos da retropropagação [Redes neurais para aprendizado de máquina]
O vídeo discute a história da retropropagação, destacando suas origens nas décadas de 1970 e 1980 e por que caiu em desuso na década de 1990. Ele desafia a crença popular de que a retropropagação falhou devido à sua incapacidade de lidar com várias camadas de recursos não lineares. Em vez disso, os principais motivos para seu abandono foram o poder de computação limitado e os pequenos conjuntos de dados disponíveis na época.
A retropropagação foi inventada de forma independente várias vezes por diferentes pesquisadores, incluindo Bryson e Ho no final dos anos 1960, Paul Wallace em 1974, Rama Hart e Williams em 1981, David Parker e Youngocar em 1985. Inicialmente, não funcionou bem para certas tarefas, levando os pesquisadores a abandoná-lo. No entanto, em 1986, um artigo demonstrou seu potencial para aprender várias camadas de detectores de recursos não lineares.
No final da década de 1990, a maioria dos pesquisadores de aprendizado de máquina havia desistido da retropropagação, favorecendo máquinas de vetores de suporte (SVMs). A explicação popular era que a retropropagação lutava com várias camadas ocultas e redes recorrentes. No entanto, de uma perspectiva histórica, os verdadeiros motivos de sua falha foram o poder de computação limitado e os pequenos conjuntos de dados rotulados, que impediram que a retropropagação brilhasse em tarefas complexas como visão e fala.
Diferentes tipos de tarefas de aprendizado de máquina têm requisitos diferentes. Em estatística, dados de baixa dimensão com ruído requerem a separação da estrutura verdadeira do ruído. Redes neurais bayesianas podem lidar bem com isso, enquanto redes neurais não bayesianas, como retropropagação, não são tão eficazes. Máquinas de vetores de suporte e processos Gaussianos são mais adequados para tais tarefas. Na inteligência artificial, dados de alta dimensão com estrutura complexa exigem encontrar representações apropriadas, que a retropropagação pode aprender aproveitando várias camadas e amplo poder de computação.
As limitações das máquinas de vetores de suporte são discutidas, observando que elas são vistas como uma extensão dos perceptrons com o truque do kernel. Eles contam com recursos não adaptativos e uma camada de pesos adaptativos. Embora funcionem bem, eles não podem aprender várias camadas de representação. O vídeo também menciona brevemente um documento histórico de 1995, uma aposta entre Larry Jackel e Vladimir Vapnik sobre o entendimento teórico e uso futuro de grandes redes neurais treinadas com retropropagação. Por fim, provou-se que ambos os lados da aposta estavam errados, pois as limitações eram mais práticas do que teóricas.
A falha de retropropagação na década de 1990 pode ser atribuída às limitações de poder de computação e pequenos conjuntos de dados, em vez de suas capacidades inerentes. Ele ainda tinha potencial para tarefas complexas e acabou se tornando bem-sucedido quando conjuntos de dados maiores e computadores mais poderosos se tornaram disponíveis. O vídeo enfatiza a importância de considerar diferentes tarefas de aprendizado de máquina e seus requisitos específicos ao escolher os algoritmos apropriados.
Aula 13.2 — Redes de Crenças
Aula 13.2 — Redes de crenças [Redes neurais para aprendizado de máquina]
Abandonei a retropropagação na década de 1990 devido à sua dependência de um grande número de rótulos, que eram escassos na época. No entanto, fui inspirado pelo sucesso de aprender com poucos rótulos explícitos. Para preservar os benefícios do aprendizado de gradiente descendente sem a necessidade de rótulos extensos, explorei funções objetivas alternativas. Modelos generativos, que visam modelar dados de entrada em vez de prever rótulos, se alinham bem com essa busca. Modelos gráficos, um conceito que combina estruturas de grafos discretos com cálculos de valor real, surgiram como uma abordagem promissora em estatística e inteligência artificial. Enquanto as máquinas de Boltzmann foram os primeiros exemplos de modelos gráficos não direcionados, em 1992 Bradford Neil introduziu modelos gráficos direcionados chamados redes de crenças sigmoides, empregando unidades semelhantes às máquinas de Boltzmann. O desafio então se tornou como aprender essas redes de crenças sigmóides.
Aprender redes de crenças sigmóides encontrou vários problemas. Redes profundas com várias camadas ocultas sofriam de aprendizado lento. Descobriu-se que a inicialização de peso ruim contribuiu para esse problema. A retropropagação também tendeu a ficar presa em ótimos locais subótimos, que, embora razoavelmente bons, estavam longe de serem ótimos para redes profundas. Embora fosse possível recuar para modelos mais simples que permitiam a otimização convexa, isso não abordava a complexidade dos dados do mundo real. Para superar essas limitações, o aprendizado não supervisionado surgiu como uma solução. Ao usar o aprendizado não supervisionado, poderíamos aproveitar a eficiência e a simplicidade dos métodos de gradiente e da descida estocástica de minilotes para ajuste de peso. No entanto, o foco mudou para modelar a estrutura da entrada sensorial em vez da relação entrada-saída. Os pesos seriam ajustados para maximizar a probabilidade do modelo generativo produzir a entrada sensorial observada.
Dois problemas principais surgiram: o problema de inferência e o problema de aprendizagem. O problema de inferência consistia em inferir os estados de variáveis não observadas, visando derivar distribuições de probabilidade sobre essas variáveis dado que elas não eram independentes umas das outras. O problema de aprendizado envolvia ajustar as interações entre as variáveis para tornar a rede mais propensa a gerar os dados de treinamento. Envolvia determinar quais nós influenciavam os outros e a força de seu efeito.
A união de modelos gráficos e redes neurais teve uma dinâmica única. Os primeiros modelos gráficos dependiam de estruturas de gráficos definidos por especialistas e probabilidades condicionais, com o objetivo de resolver o problema de inferência. Por outro lado, as redes neurais priorizaram o aprendizado e evitaram o conhecimento manual. Embora as redes neurais carecessem de interpretabilidade e conectividade esparsa para facilitar a inferência, elas tinham a vantagem de aprender com os dados de treinamento. No entanto, versões de redes neurais de redes de crença foram desenvolvidas. Ao construir modelos generativos usando neurônios idealizados, surgiram dois tipos: modelos baseados em energia e modelos causais. Modelos baseados em energia utilizaram conexões simétricas entre neurônios estocásticos binários, resultando em máquinas de Boltzmann. Embora o aprendizado de máquinas Boltzmann tenha se mostrado desafiador, restringir a conectividade tornou o aprendizado mais fácil para máquinas Boltzmann restritas. No entanto, essa abordagem limitou o poder das redes neurais com múltiplas camadas ocultas. Modelos causais, que empregavam grafos acíclicos direcionados com neurônios estocásticos binários, deram origem às redes de crenças sigmoides. Em 1992, Neil demonstrou que as redes de crenças sigmoides eram um pouco mais fáceis de aprender em comparação com as máquinas de Boltzmann. Em uma rede de crença sigmoide, todas as variáveis são neurônios estocásticos binários, e a geração de dados envolve a tomada de decisões estocásticas camada por camada, produzindo, em última análise, amostras imparciais de valores visíveis.
Ao adotar modelos causais ou abordagens híbridas, poderíamos superar as limitações da retropropagação e alavancar o aprendizado não supervisionado para modelar a estrutura da entrada sensorial de forma eficaz.
Antes de mergulhar nas redes de crenças causais feitas de neurônios, é essencial fornecer algumas informações sobre a relação entre inteligência artificial (IA) e probabilidade. Nos anos 1970 e início dos anos 1980, havia uma forte resistência dentro da comunidade de IA em relação à probabilidade. A probabilidade foi considerada desfavorável e os pesquisadores de IA preferiram o processamento de símbolos discretos sem incorporar elementos probabilísticos. No entanto, uma exceção notável foi John von Neumann, que reconheceu o potencial para uma conexão entre a lógica formal e a termodinâmica, particularmente o trabalho de Boltzmann. Infelizmente, as ideias de von Neumann não ganharam força durante sua vida.
Eventualmente, as probabilidades chegaram à IA por meio do desenvolvimento de modelos gráficos, que combinam a teoria dos gráficos e a teoria da probabilidade. Na década de 1980, pesquisadores de IA trabalhavam em problemas práticos que envolviam incerteza, como diagnóstico médico ou exploração mineral. Embora houvesse aversão a probabilidades, ficou claro que usar probabilidades era mais eficaz do que métodos ad hoc. Os modelos gráficos, introduzidos por Perl Hackerman Lauritzen e outros, forneceram uma estrutura para representar a incerteza e fazer cálculos probabilísticos com base em estruturas gráficas.
Os modelos gráficos abrangem vários tipos de modelos, e um subconjunto são as Redes de Crenças. Redes de Crenças são grafos acíclicos direcionados que consistem em variáveis estocásticas. Esses gráficos geralmente têm nós esparsamente conectados e permitem algoritmos de inferência eficientes que calculam probabilidades de nós não observados. No entanto, esses algoritmos tornam-se exponencialmente complexos quando aplicados a redes densamente conectadas.
Uma rede de crenças serve como um modelo generativo, e seu problema de inferência envolve a determinação dos estados de variáveis não observadas, resultando em distribuições de probabilidade sobre essas variáveis. O problema de aprendizado se concentra em ajustar as interações entre as variáveis para aumentar a probabilidade de gerar os dados de treinamento observados.
No contexto das redes neurais, existe uma conexão entre modelos gráficos e redes neurais. Os primeiros modelos gráficos dependiam de estruturas gráficas definidas por especialistas e probabilidades condicionais, abordando principalmente o problema de inferência. Por outro lado, as redes neurais enfatizam o aprendizado a partir dos dados de treinamento e evitam o conhecimento artesanal. Embora as redes neurais carecessem de interpretabilidade e conectividade esparsa, elas ofereciam a vantagem da adaptabilidade por meio do aprendizado.
Para construir modelos generativos com neurônios idealizados, dois tipos principais podem ser considerados. Modelos baseados em energia, como as máquinas de Boltzmann, conectam neurônios estocásticos binários simetricamente. No entanto, aprender máquinas de Boltzmann é um desafio. Outra opção são os modelos causais, que utilizam grafos acíclicos direcionados compostos por neurônios estocásticos binários. Em 1992, Neil introduziu redes de crenças sigmoides, que eram mais fáceis de aprender do que as máquinas de Boltzmann. Redes de crenças sigmóides são modelos causais onde todas as variáveis são neurônios estocásticos binários.
Para gerar dados de um modelo causal como uma rede de crenças sigmóide, as decisões estocásticas são feitas camada por camada, começando na camada superior e descendo em cascata até os efeitos visíveis. Esse processo produz uma amostra imparcial de valores visíveis de acordo com as crenças da rede neural.
Ao adotar o aprendizado não supervisionado e utilizar modelos causais ou abordagens híbridas, é possível superar as limitações da retropropagação e alavancar o poder do aprendizado não supervisionado para modelar efetivamente a estrutura da entrada sensorial. Esses avanços fornecem um caminho promissor para enfrentar os desafios impostos pelas redes neurais profundas e abrem caminho para algoritmos de aprendizado mais sofisticados e eficientes.
Concluindo, a exploração de Redes de Crenças e sua conexão com redes neurais abriu novas possibilidades para IA e modelagem probabilística. A resistência inicial à probabilidade na IA foi superada e os modelos gráficos surgiram como uma estrutura poderosa para representar a incerteza e fazer cálculos probabilísticos.
Redes de crenças, especificamente Redes de crenças sigmóides, oferecem uma abordagem alternativa para modelagem generativa em comparação com modelos baseados em energia, como máquinas de Boltzmann. Ao utilizar gráficos acíclicos direcionados e neurônios estocásticos binários, as redes de crenças sigmoides fornecem um meio de gerar dados e aprender com os conjuntos de treinamento de maneira mais eficaz.
A integração do aprendizado não supervisionado com modelos causais ou abordagens híbridas tem o potencial de abordar as limitações da retropropagação em redes neurais profundas. Ao modelar a estrutura da entrada sensorial e maximizar a probabilidade dos dados observados, essas abordagens oferecem uma maneira de alavancar a eficiência e a simplicidade dos métodos de gradiente enquanto capturam a complexidade dos dados do mundo real.
A evolução da IA e a adoção da probabilidade reformularam o campo, permitindo que os pesquisadores desenvolvam modelos mais robustos e adaptáveis. À medida que a jornada continua, é provável que surjam novos avanços em modelagem probabilística, redes neurais e aprendizado não supervisionado, levando a sistemas de IA mais sofisticados e inteligentes.
Ao combinar os pontos fortes de modelos gráficos e redes neurais, os pesquisadores podem continuar a ultrapassar os limites da IA, abrindo novas possibilidades de compreensão, aprendizado e tomada de decisões em ambientes complexos e incertos.
Aula 13.3 — Aprendendo redes de crenças sigmoides
Aula 13.3 — Aprendendo redes de crenças sigmoides [Redes neurais para aprendizado de máquina]
O vídeo discute os desafios de aprender redes de crenças sigmóides e apresenta dois métodos diferentes para lidar com esses desafios. Ao contrário das máquinas de Boltzmann, as redes de crenças sigmoides não requerem duas fases diferentes para o aprendizado, tornando o processo mais simples. São modelos normalizados localmente, eliminando a necessidade de lidar com funções de partição e suas derivadas.
Aprender em redes de crenças sigmoides torna-se fácil se pudermos obter amostras imparciais da distribuição posterior sobre unidades ocultas dados dados observados. No entanto, obter amostras imparciais é difícil devido a um fenômeno chamado "explicação", que afeta a distribuição posterior. Esse fenômeno surge da anticorrelação entre causas ocultas quando ocorre um efeito observado.
Aprender em redes de crenças sigmóides profundas com múltiplas camadas de variáveis ocultas torna-se ainda mais desafiador. A distribuição posterior sobre a primeira camada de variáveis ocultas não é fatorial devido à explicação, e existem correlações entre variáveis ocultas tanto na anterior quanto na posterior. Calcular o termo anterior para a primeira camada requer a integração de todos os padrões possíveis de atividade nas camadas superiores, tornando o processo de aprendizagem complexo.
Dois métodos para aprender redes de crenças profundas são discutidos: o método de Monte Carlo e os métodos variacionais. O método de Monte Carlo envolve a execução de uma cadeia de Markov para aproximar a distribuição posterior e obter amostras. No entanto, pode ser lento para grandes redes de crenças profundas. Os métodos variacionais, por outro lado, visam obter amostras aproximadas de uma distribuição diferente que se aproxima da posterior. Embora não sejam imparciais, essas amostras ainda podem ser usadas para aprendizado de máxima verossimilhança e, aumentando o limite inferior da probabilidade logarítmica, melhorias podem ser feitas na modelagem dos dados.
A aprendizagem em redes de crenças sigmoides apresenta desafios, particularmente em redes profundas, mas o método de Monte Carlo e os métodos variacionais fornecem abordagens para lidar com essas dificuldades e tornar o aprendizado viável.
Aula 13.4 — O algoritmo de sono acordado
Aula 13.4 — O algoritmo wake sleep [Redes neurais para aprendizado de máquina]
O algoritmo vigília-sono é um método de aprendizado usado para modelos gráficos direcionados como redes de crenças sigmoides. Consiste em duas fases: a fase de vigília e a fase de sono. Ao contrário das máquinas de Boltzmann, que são usadas para modelos gráficos não direcionados, o algoritmo vigília-sono é projetado especificamente para redes de crenças sigmoides.
O algoritmo faz parte do aprendizado variacional, uma abordagem de aprendizado de máquina que aproxima a distribuição posterior para aprender modelos gráficos complicados. Em vez de calcular a distribuição a posteriori exata, que geralmente é difícil, o aprendizado variacional a aproxima com uma aproximação mais barata. Em seguida, o aprendizado de máxima verossimilhança é aplicado com base nessa aproximação.
Surpreendentemente, o processo de aprendizagem ainda funciona de forma eficaz, impulsionado por dois fatores: melhorar a capacidade do modelo de gerar dados observados e ajustar a posterior aproximada à posterior real. Esse efeito permite que o aprendizado variacional funcione bem para redes de crenças sigmoides.
O algoritmo de vigília-sono utiliza dois conjuntos de pesos: pesos generativos e pesos de reconhecimento. Na fase de ativação, os dados são alimentados na camada visível e uma passagem direta é realizada usando os pesos de reconhecimento. Decisões binárias estocásticas são feitas para cada unidade oculta independentemente, gerando estados binários estocásticos. Esses estados são tratados como amostras da distribuição posterior verdadeira, e o aprendizado de máxima verossimilhança é aplicado aos pesos generativos.
Na fase do sono, o processo é inverso. A partir de um vetor aleatório na camada oculta superior, os estados binários são gerados para cada camada usando os pesos generativos. O objetivo é recuperar os estados ocultos dos dados. Os pesos de reconhecimento são treinados para conseguir isso.
O algoritmo vigília-sono tem falhas, como os pesos de reconhecimento que não seguem o gradiente correto e média de modo incorreta devido à aproximação de independência. Apesar dessas limitações, alguns pesquisadores, como Karl Friston, acreditam que se assemelha ao funcionamento do cérebro. No entanto, outros pensam que algoritmos melhores serão descobertos no futuro.
O algoritmo vigília-sono aproxima a distribuição posterior e alterna entre as fases de vigília e sono para aprender um modelo generativo. Apesar de suas limitações, tem sido influente no campo do aprendizado de máquina.
Aula 14.1 — Aprendendo camadas de recursos empilhando RBMs
Aula 14.1 — Aprendendo camadas de recursos empilhando RBMs [Redes neurais para aprendizado de máquina]
Neste vídeo, o palestrante discute uma abordagem diferente para aprender redes de crenças sigmoides. Eles explicam que, enquanto trabalhavam em redes de crenças sigmoides, mudaram seu foco para as máquinas de Boltzmann e descobriram que as máquinas de Boltzmann restritivas poderiam ser aprendidas com eficiência. Eles perceberam que, ao tratar os recursos aprendidos por uma máquina Boltzmann restritiva como dados, eles poderiam aplicar outra máquina Boltzmann restritiva para modelar as correlações entre esses recursos. Isso levou à ideia de empilhar várias máquinas Boltzmann para aprender várias camadas de recursos não lineares, o que provocou um ressurgimento do interesse em redes neurais profundas.
O palestrante então explora o desafio de combinar máquinas Boltzmann empilhadas em um modelo. Embora se esperasse uma máquina de Boltzmann multicamadas, um estudante chamado Yitay descobriu que o resultado é mais semelhante a uma rede de crenças sigmóide. Essa descoberta inesperada resolveu o problema de aprender redes de crenças sigmoides profundas, concentrando-se no aprendizado de modelos não direcionados, como as máquinas de Boltzmann.
O palestrante descreve o processo de treinamento de uma camada de recursos que recebe entrada diretamente de pixels e usa os padrões de ativação desses recursos para aprender outra camada de recursos. Esse processo pode ser repetido para aprender várias camadas, com cada camada modelando a atividade correlacionada na camada abaixo. Está provado que adicionar outra camada de recursos melhora um limite inferior variacional na probabilidade logarítmica de gerar os dados.
Para combinar as máquinas de Boltzmann em um modelo, o palestrante explica o procedimento de aprender cada máquina individualmente e depois compô-las juntas. O modelo combinado resultante é chamado de rede de crença profunda, que consiste em camadas superiores que se assemelham a uma máquina de Boltzmann restritiva e camadas inferiores que se assemelham a uma rede de crença sigmoide. O palestrante também discute os benefícios de empilhar máquinas de Boltzmann e explica o conceito de distribuição fatorial média. Eles demonstram como a média de duas distribuições fatoriais não resulta em uma distribuição fatorial. O vídeo aprofunda ainda mais o processo de aprendizado de empilhamento de máquinas de Boltzmann e ajuste fino do modelo composto usando uma variação do algoritmo de vigília-sono. Os três estágios de aprendizado envolvem o ajuste dos pesos generativos e de reconhecimento, amostragem de unidades ocultas e visíveis e atualização dos pesos usando divergência contrastiva.
Um exemplo é apresentado onde 500 unidades ocultas binárias são usadas para aprender todas as classes de dez dígitos em imagens de 28x28 pixels. Depois de treinar o RBM, os recursos aprendidos são usados para tarefas de reconhecimento e geração.
O vídeo destaca a descoberta inesperada do uso de máquinas de Boltzmann empilhadas para aprender redes de crenças profundas e fornece informações sobre os processos de aprendizado e ajuste fino envolvidos.
Aula 14.2 — Aprendizagem discriminativa para DBNs
Aula 14.2 — Aprendizagem discriminativa para DBNs [Redes neurais para aprendizado de máquina]
Neste vídeo, exploramos o processo de aprendizagem de uma rede de crenças profundas. Começamos empilhando máquinas restritivas de Boltzmann para formar as camadas iniciais, que são então tratadas como uma rede neural profunda. Ajustamos essa rede usando métodos discriminativos em vez de métodos generativos, visando melhorar sua capacidade de discriminar entre as classes. Essa abordagem teve um impacto significativo no reconhecimento de fala, levando muitos grupos líderes a adotar redes neurais profundas para reduzir as taxas de erro nesse campo.
Para ajustar a rede profunda, seguimos uma fase de pré-treinamento onde aprendemos uma camada de recursos por vez usando máquinas de Boltzmann restritivas empilhadas. Essa fase de pré-treinamento fornece um bom conjunto inicial de pesos para a rede neural profunda. Em seguida, empregamos retropropagação, um procedimento de busca local, para refinar e otimizar ainda mais a rede para discriminação. Essa combinação de pré-treinamento e ajuste fino supera as limitações da retropropagação tradicional, facilitando o aprendizado de redes neurais profundas e melhorando suas capacidades de generalização.
O pré-treinamento oferece benefícios em termos de otimização e generalização. Ele escala bem para grandes redes, especialmente quando cada camada exibe localidade. O processo de aprendizagem torna-se mais paralelizado, pois há menos interação entre locais amplamente separados. Além disso, o pré-treinamento nos permite iniciar a retropropagação com detectores de recursos sensíveis, resultando em gradientes iniciais mais significativos em comparação com pesos aleatórios. Além disso, as redes pré-treinadas exibem menos overfitting porque a maioria das informações nos pesos finais vem da modelagem da distribuição de entrada, que normalmente contém mais informações do que os próprios rótulos.
O uso de pré-treinamento também aborda a objeção de que pode levar ao aprendizado de recursos irrelevantes para a tarefa discriminativa em questão. Embora seja verdade que podemos aprender recursos que nunca são usados, o poder computacional dos computadores modernos nos permite arcar com essa ineficiência. Entre os recursos aprendidos, sempre haverá alguns que são altamente úteis, superando as entradas brutas e compensando os recursos não utilizados. Além disso, o pré-treinamento reduz a carga de retropropagação para descobrir novos recursos, reduzindo a necessidade de grandes quantidades de dados rotulados. Os dados não rotulados permanecem valiosos para descobrir bons recursos durante a fase de pré-treinamento.
Para ilustrar a eficácia do pré-treinamento e do ajuste fino, o vídeo discute a modelagem do conjunto de dados MNIST. Três camadas ocultas de recursos são aprendidas de maneira totalmente não supervisionada, gerando dígitos de aparência realista de diferentes classes. Para avaliar a utilidade desses recursos para discriminação, uma camada final softmax de dez vias é adicionada e a retropropagação é usada para ajuste fino. Os resultados mostram um desempenho aprimorado em comparação com o treinamento puramente discriminativo, especialmente em tarefas invariantes de permutação em que a retropropagação padrão se esforça para atingir baixas taxas de erro.
Vários experimentos demonstram os benefícios do pré-treinamento. Ao usar uma pilha de máquinas de Boltzmann para pré-treinamento e ajuste fino, a taxa de erro na tarefa MNIST de permutação invariante pode ser reduzida para até 1,0%. Ao adicionar uma camada softmax de 10 vias diretamente sobre as máquinas Boltzmann pré-treinadas, a taxa de erro pode ser melhorada para 1,15% com alguns ajustes. O trabalho de Micro Yerin, juntamente com o grupo de Yan Lecun, mostra que o pré-treinamento é particularmente eficaz com mais dados e melhores prévias. Seus experimentos, envolvendo imagens de dígitos distorcidas adicionais e uma rede neural convolucional, alcançaram taxas de erro tão baixas quanto 0,39%, estabelecendo novos recordes no reconhecimento de fala.
Esse progresso no pré-treinamento e no ajuste fino de redes neurais profundas teve um impacto significativo no reconhecimento de fala, levando a melhorias no campo. Muitos pesquisadores e grupos, incluindo a Microsoft Research, adotaram redes neurais profundas para tarefas de reconhecimento de fala, citando o sucesso e os avanços possibilitados por essa abordagem.
O sucesso do pré-treinamento e do ajuste fino das redes neurais profundas despertou um interesse renovado nas redes neurais para várias aplicações além do reconhecimento de fala. Os pesquisadores começaram a explorar o potencial de redes neurais profundas em visão computacional, processamento de linguagem natural e outros domínios. A combinação de pré-treinamento e ajuste fino provou ser uma técnica poderosa para aprender representações hierárquicas e melhorar o desempenho de redes neurais.
Uma das razões pelas quais o pré-treinamento é eficaz é que ele ajuda a superar as limitações da retropropagação tradicional, especialmente ao lidar com redes profundas. Redes profundas com muitas camadas podem sofrer com o problema de gradiente de desaparecimento, onde os gradientes diminuem à medida que se propagam pelas camadas, dificultando o treinamento eficaz da rede. Ao pré-treinar a rede camada por camada e inicializar os pesos com base nos recursos aprendidos, fornecemos um bom ponto de partida para retropropagação, o que leva a uma otimização mais eficiente.
Outra vantagem do pré-treinamento é que ele ajuda a capturar representações significativas e hierárquicas dos dados de entrada. As camadas da rede aprendem características cada vez mais complexas e abstratas à medida que nos aprofundamos na rede. Essa representação hierárquica permite que a rede extraia recursos de alto nível que são úteis para a discriminação. Ao pré-treinar a rede para modelar a distribuição de vetores de entrada, garantimos que os recursos aprendidos capturem padrões e variações importantes nos dados, o que ajuda a melhorar o desempenho de generalização da rede.
A combinação de pré-treinamento generativo e ajuste fino discriminativo tornou-se um paradigma popular em aprendizado profundo. Ele aproveita os benefícios do aprendizado não supervisionado para aprender recursos iniciais úteis e, em seguida, ajusta esses recursos usando dados rotulados para a tarefa discriminativa específica. Essa abordagem provou ser bem-sucedida em várias aplicações e levou a avanços no desempenho.
À medida que o campo de aprendizado profundo continua a evoluir, os pesquisadores estão constantemente explorando novas técnicas e arquiteturas para melhorar o treinamento e o desempenho de redes neurais profundas. O sucesso do pré-treinamento e do ajuste fino abriu caminho para avanços em outras áreas, como o aprendizado por transferência, em que modelos pré-treinados são usados como ponto de partida para novas tarefas, e o aprendizado autossupervisionado, em que os modelos aprendem com dados não rotulados, prevendo certos aspectos dos dados.
Em conclusão, a combinação de pré-treinamento e ajuste fino revolucionou o campo da aprendizagem profunda. Ao aproveitar o aprendizado não supervisionado para aprender os recursos iniciais e, em seguida, refinar esses recursos usando o aprendizado supervisionado, as redes neurais profundas podem obter melhores recursos de desempenho e generalização. Essa abordagem teve um impacto significativo em vários aplicativos, incluindo reconhecimento de fala, visão computacional e processamento de linguagem natural, e continua a impulsionar avanços no campo do aprendizado profundo.
Aula 14.3 — Ajuste fino discriminativo
Aula 14.3 — Ajuste fino discriminativo [Redes neurais para aprendizado de máquina]
Neste vídeo, vamos nos aprofundar no processo de ajuste fino discriminatório após o pré-treinamento de uma rede neural usando uma pilha de máquinas de Boltzmann. Observamos que durante o ajuste fino, os pesos nas camadas inferiores sofrem alterações mínimas, mas esses pequenos ajustes têm um impacto significativo no desempenho da classificação da rede, colocando com precisão os limites de decisão.
O pré-treinamento também aumenta a eficácia das redes mais profundas em comparação com as mais rasas. Sem pré-treinamento, as redes mais rasas tendem a superar as mais profundas. No entanto, o pré-treinamento reverte essa tendência, onde as redes profundas têm melhor desempenho, enquanto as redes rasas sem pré-treinamento têm pior desempenho.
Além disso, fornecemos um argumento convincente para começar com o treinamento generativo antes de considerar o treinamento discriminativo. Ao comparar as saídas das redes em um conjunto de casos de teste e visualizá-las usando t-SNE, observamos duas classes distintas: redes sem pré-treinamento na parte superior e redes com pré-treinamento na parte inferior. As redes dentro de cada classe exibem semelhanças, mas não há sobreposição entre as duas classes.
O pré-treinamento permite que as redes descubram soluções qualitativamente diferentes em comparação com o início com pequenos pesos aleatórios. As soluções encontradas por meio do pré-treinamento generativo levam a regiões distintas no espaço de funções, enquanto as redes sem pré-treinamento apresentam maior variabilidade.
Por fim, discutimos por que o pré-treinamento é justificado. Ao gerar pares imagem-rótulo, é mais plausível que o rótulo dependa dos objetos do mundo real, e não apenas dos pixels da imagem. A informação veiculada pela imagem supera a do rótulo, pois o rótulo contém informações limitadas. Nesses casos, faz sentido primeiro inverter o caminho de alta largura de banda do mundo para a imagem para recuperar as causas subjacentes e, em seguida, determinar o rótulo correspondente. Isso justifica a fase de pré-treinamento, onde o mapeamento imagem-causas é aprendido, seguido da fase discriminativa para mapear as causas para o rótulo, com possível ajuste fino do mapeamento imagem-causas.
Para ilustrar os benefícios do pré-treinamento, examinamos um experimento específico realizado no laboratório de Yoshi Banjo. O experimento se concentra no ajuste fino após o pré-treinamento generativo. Antes do ajuste fino, os campos receptivos na primeira camada oculta dos detectores de recursos exibem alterações mínimas. No entanto, essas mudanças sutis contribuem significativamente para melhorar a discriminação.
O experimento envolve a discriminação entre dígitos em um grande conjunto de dígitos distorcidos. Os resultados mostram que as redes com pré-treinamento consistentemente atingem erros de teste mais baixos em comparação com redes sem pré-treinamento, mesmo usando redes com uma única camada oculta. A vantagem do pré-treinamento torna-se mais pronunciada ao usar redes mais profundas. Redes profundas com pré-treinamento exibem pouca ou nenhuma sobreposição com redes rasas, enfatizando ainda mais a eficácia do pré-treinamento para melhorar o desempenho da rede.
Além disso, exploramos o efeito do número de camadas no erro de classificação. Sem pré-treinamento, duas camadas parecem ser a escolha ideal, pois aumentar ainda mais o número de camadas leva a um desempenho significativamente pior. Por outro lado, o pré-treinamento atenua esse problema, pois as redes com quatro camadas superam as de duas camadas. A variação no erro é reduzida e o desempenho geral é aprimorado.
Para representar visualmente as mudanças de peso da rede durante o treinamento, as visualizações t-SNE são usadas. Os pesos das redes pré-treinadas e não pré-treinadas são plotados no mesmo espaço. Os gráficos resultantes revelam duas classes distintas: redes sem pré-treinamento no topo e redes com pré-treinamento na parte inferior. Cada ponto representa um modelo no espaço funcional, e as trajetórias mostram a progressão da similaridade durante o treinamento. Redes sem pré-treinamento acabam em diferentes regiões do espaço funcional, indicando uma maior dispersão de soluções. As redes com pré-treinamento, por outro lado, convergem para uma região específica, indicando maior similaridade entre elas.
A comparação isolada de vetores de peso é insuficiente porque redes com diferentes configurações de peso podem exibir o mesmo comportamento. Em vez disso, as saídas das redes nos casos de teste são concatenadas em vetores e o t-SNE é aplicado para visualizar sua similaridade. As cores nos gráficos t-SNE representam diferentes estágios de treinamento, ilustrando ainda mais a progressão da similaridade.
O pré-treinamento de redes neurais usando treinamento generativo antes do treinamento discriminativo oferece várias vantagens. Ele melhora o desempenho da classificação colocando limites de decisão com precisão, aumenta a eficácia de redes mais profundas e fornece soluções distintas no espaço funcional. Ao considerar o caminho de alta largura de banda do mundo para a imagem e o caminho de baixa largura de banda do mundo para o rótulo, o pré-treinamento permite a recuperação das causas subjacentes antes de determinar o rótulo. Essa abordagem de duas fases justifica o uso de pré-treinamento no treinamento de redes neurais.