Aprendizado de máquina e redes neurais - página 56

 

Aula 8.1 — Uma breve visão geral da otimização sem Hessian



Aula 8.1 — Uma breve visão geral da otimização sem Hessian [Redes neurais para aprendizado de máquina]

O otimizador sem Hessian é um algoritmo complexo usado para treinar redes neurais recorrentes de forma eficaz. Embora não me aprofunde em todos os detalhes, fornecerei uma compreensão geral de como funciona.

Ao treinar redes neurais, o objetivo é minimizar o erro. O otimizador determina a direção e a distância a serem movidas para obter a maior redução no erro. A redução depende da razão gradiente-curvatura, assumindo uma superfície de erro quadrática que é côncava para cima. O método de Newton aborda a limitação da descida mais íngreme, transformando superfícies de erro elípticas em circulares. Ele faz isso multiplicando o gradiente pelo inverso da matriz de curvatura, também conhecido como Hessian. No entanto, inverter a matriz Hessiana é inviável para grandes redes neurais devido ao seu tamanho. Para superar isso, métodos aproximados como Hessian-free e L-BFGS usam matrizes de nível inferior para aproximar a curvatura. Hessian-free aproxima a matriz de curvatura e usa gradiente conjugado, um método que minimiza o erro em uma direção por vez. Evita interromper a minimização anterior escolhendo direções conjugadas que não alteram os gradientes das direções anteriores.

O gradiente conjugado encontra eficientemente o mínimo global de uma superfície quadrática n-dimensional em n etapas ou menos. Ele consegue isso reduzindo o erro próximo ao valor mínimo em muito menos etapas do que n. Ele pode ser aplicado diretamente a superfícies de erro não quadráticas, como aquelas em redes neurais multicamadas, e funciona bem com grandes mini-lotes. O otimizador livre de Hessian combina aproximação quadrática e gradiente conjugado para melhorar iterativamente a aproximação da superfície de erro real e aproximar-se do mínimo.

O otimizador Hessian-free primeiro faz uma aproximação quadrática inicial para a verdadeira superfície de erro. Em seguida, aplica gradiente conjugado para minimizar o erro nessa aproximação quadrática. Ao fazer isso, ele se aproxima de um ponto mínimo nessa aproximação. Em seguida, o otimizador faz uma nova aproximação para a matriz de curvatura e repete o processo. Ele continua iterativamente, refinando a aproximação e minimizando o erro usando o gradiente conjugado. Esse processo iterativo ajuda o otimizador a se aproximar gradualmente do verdadeiro mínimo da superfície de erro.

Em redes neurais recorrentes, é importante adicionar uma penalidade para grandes mudanças em atividades ocultas. Isso evita efeitos excessivos causados por mudanças de peso no início que se propagam pela sequência. Ao penalizar mudanças em atividades ocultas, o otimizador garante estabilidade e evita resultados indesejáveis.

O otimizador livre de Hessian combina aproximação quadrática, minimização de gradiente conjugado e penalidade para alterações de atividade oculta para treinar redes neurais recorrentes de forma eficaz. Ele alcança uma otimização eficiente e precisa melhorando iterativamente a aproximação e minimizando o erro.

Lecture 8.1 — A brief overview of Hessian-free optimization [Neural Networks for Machine Learning]
Lecture 8.1 — A brief overview of Hessian-free optimization [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Aula 8.2 — Modelando strings de caracteres


Aula 8.2 — Modelando strings de caracteres [Redes neurais para aprendizado de máquina]

Agora aplicaremos a otimização livre de Hessian à tarefa de modelar cadeias de caracteres da Wikipédia. Normalmente, ao modelar a linguagem, deve-se trabalhar com strings de palavras. No entanto, como a web é composta de cadeias de caracteres, a modelagem de informações em nível de caractere pode fornecer uma abordagem mais direta.

A modelagem de cadeias de caracteres apresenta desafios únicos, como lidar com morfemas, dividir palavras em unidades significativas e lidar com idiomas com propriedades aglutinantes. Ao focar na modelagem de nível de caractere, evitamos as complexidades associadas ao pré-processamento de texto em palavras e podemos capturar diretamente padrões e informações no nível de caractere. Para conseguir isso, usamos uma rede neural recorrente (RNN) com conexões multiplicativas. A RNN consiste em estados ocultos, com 1500 unidades ocultas neste caso. A dinâmica do estado oculto envolve considerar o caractere atual e o estado oculto anterior para calcular o novo estado oculto. Posteriormente, a RNN tenta prever o próximo caractere usando uma camada softmax, atribuindo probabilidades a cada caractere possível.

Em vez de usar uma estrutura RNN tradicional, empregamos uma abordagem diferente que produz melhores resultados. Organizamos todas as sequências de caracteres possíveis em uma estrutura semelhante a uma árvore, com cada caractere influenciando a transição do estado oculto. Para representar essa árvore, usamos vetores de estado ocultos para capturar as informações de cada nó. Isso nos permite compartilhar informações de forma eficiente entre nós semelhantes, melhorando o desempenho geral do modelo. Para implementar as transições específicas de caracteres de forma eficiente, introduzimos conexões multiplicativas usando fatores. Cada fator calcula uma soma ponderada com base em dois grupos de entrada e usa o resultado para dimensionar os pesos de saída. Ao incorporar fatores específicos do personagem, podemos determinar a matriz de transição que impulsiona a evolução do estado oculto com base no personagem atual.

Essa abordagem nos permite capturar a complexidade da modelagem de linguagem em nível de caractere enquanto utiliza parâmetros de forma eficiente. Em vez de manter matrizes de peso separadas para cada caractere, aproveitamos as semelhanças entre os caracteres para compartilhar parâmetros. Esse compartilhamento de parâmetros ajuda a evitar o overfitting e reduz a carga computacional.

Empregamos otimização sem Hessian para modelar cadeias de caracteres da Wikipédia. Ao utilizar conexões multiplicativas e fatores específicos do personagem, podemos capturar com eficiência as transições entre os estados ocultos com base no personagem atual, melhorando assim o desempenho da modelagem.

Lecture 8.2 — Modeling character strings [Neural Networks for Machine Learning]
Lecture 8.2 — Modeling character strings [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Aula 8.4 — Echo State Networks



Aula 8.4 — Redes de estado de eco [Redes neurais para aprendizado de máquina]

As redes de estado de eco são uma abordagem inteligente para simplificar o processo de aprendizado em redes neurais recorrentes (RNNs). Eles inicializam as conexões na RNN com um reservatório de osciladores acoplados, convertendo a entrada em estados do oscilador. A saída pode então ser prevista com base nesses estados, e o único aprendizado necessário é como acoplar a saída aos osciladores. Isso elimina a necessidade de aprender conexões ocultas para ocultas ou conexões de entrada para ocultas.

Para melhorar o desempenho das redes de estado de eco em tarefas complexas, é necessário um grande estado oculto. Combinar a inicialização cuidadosamente projetada de redes de estado de eco com retropropagação ao longo do tempo com impulso pode aprimorar ainda mais suas capacidades. Outra ideia recente no treinamento de redes neurais recorrentes é corrigir as conexões ocultas aleatoriamente e focar no treinamento das conexões de saída. Essa abordagem é semelhante ao conceito de detectores de características aleatórias em redes neurais feed-forward, onde apenas a última camada é aprendida, simplificando o processo de aprendizado.

O sucesso das redes de estado de eco depende da configuração adequada das conexões aleatórias para evitar problemas como extinção ou explosão. O raio espectral, que corresponde ao maior autovalor da matriz de pesos ocultos a ocultos, precisa ser definido para aproximadamente um para garantir que o comprimento do vetor de atividade permaneça estável. Conectividade esparsa também é importante, onde a maioria dos pesos é zero, permitindo que as informações sejam retidas em partes específicas da rede. A escala das conexões de entrada para ocultas deve ser escolhida com cuidado para conduzir os estados dos osciladores sem apagar informações importantes. O processo de aprendizagem nas redes de estado Echo é rápido, permitindo a experimentação com as escalas e esparsidade das conexões para otimizar o desempenho. Um exemplo de uma rede de estado de eco é mostrado, onde a sequência de entrada especifica a frequência de uma onda senoidal para a saída. A rede aprende a gerar ondas senoidais ajustando um modelo linear usando os estados das unidades ocultas para prever a saída correta. O reservatório dinâmico no meio captura a dinâmica complexa conduzida pelo sinal de entrada.

As redes de estado de eco têm várias vantagens, incluindo treinamento rápido devido à simplicidade de ajuste de um modelo linear, a importância da inicialização sensata de pesos ocultos a ocultos e sua capacidade de modelar séries temporais unidimensionais de maneira eficaz. No entanto, eles podem ter dificuldade em modelar dados de alta dimensão e exigir um número maior de unidades ocultas em comparação com as RNNs tradicionais.

Ilya Sutskever explorou a inicialização de uma rede neural recorrente com técnicas de rede de estado de eco e, em seguida, treinando-a usando retropropagação ao longo do tempo. Essa combinação provou ser um método eficaz para o treinamento de redes neurais recorrentes, obtendo melhor desempenho. A abordagem de Ilya Sutskever de combinar as técnicas de inicialização de redes de estado de eco com backpropagation through time (BPTT) produziu resultados promissores no treinamento de redes neurais recorrentes (RNNs). Ao usar a inicialização da rede de estado Echo e, em seguida, aplicar o BPTT com técnicas como RMSprop e momentum, Sutskever descobriu que essa abordagem é altamente eficaz no treinamento de RNNs.

O uso da inicialização de rede de estado de eco fornece um bom ponto de partida para o RNN, permitindo que ele aprenda bem mesmo treinando apenas as conexões ocultas para a saída. No entanto, a experimentação de Sutskever mostrou que melhorar ainda mais o desempenho do RNN poderia ser alcançado também aprendendo os pesos ocultos. Ao combinar os pontos fortes das redes de estado de eco e RNNs tradicionais, essa abordagem híbrida aproveita os benefícios de ambos os métodos. A inicialização da rede de estado de eco fornece uma base sólida, enquanto o BPTT permite o ajuste fino e a otimização do desempenho da RNN. O sucesso dessa abordagem demonstra a importância da inicialização adequada no treinamento de RNNs.

Começando com uma inicialização que captura a dinâmica do domínio do problema, o treinamento subsequente pode ser mais eficiente e eficaz. Além disso, o uso de técnicas de otimização como o RMSprop com momentum aprimora ainda mais o processo de aprendizado e ajuda a alcançar melhores resultados.

A combinação de inicialização de rede de estado de eco e BPTT com técnicas de otimização apresenta uma abordagem poderosa para treinar RNNs. Ele aproveita os pontos fortes de ambos os métodos para melhorar a eficiência do aprendizado, o desempenho do modelo e a precisão da previsão.

Lecture 8.4 — Echo State Networks [Neural Networks for Machine Learning]
Lecture 8.4 — Echo State Networks [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Aula 9.1 — Visão geral das formas de melhorar a generalização



Aula 9.1 — Visão geral das formas de melhorar a generalização [Redes neurais para aprendizado de máquina]

Neste vídeo, o tópico discutido é melhorar a generalização reduzindo o overfitting em redes neurais. O overfitting ocorre quando uma rede tem muita capacidade em relação à quantidade de dados de treinamento. O vídeo explica vários métodos para controlar a capacidade de uma rede e determinar os metaparâmetros apropriados para o controle de capacidade.

O overfitting surge porque os dados de treinamento não apenas contêm informações sobre os padrões verdadeiros no mapeamento de entrada-saída, mas também incluem erros de amostragem e regularidades acidentais específicas do conjunto de treinamento. Ao ajustar um modelo, ele não consegue distinguir entre esses tipos de regularidades, levando a uma generalização ruim se o modelo for muito flexível e se ajustar ao erro amostral.

Um método direto para evitar o overfitting é obter mais dados. Aumentar a quantidade de dados atenua o overfitting, fornecendo uma melhor representação das verdadeiras regularidades. Outra abordagem é limitar criteriosamente a capacidade do modelo, permitindo que ele capture as verdadeiras regularidades, evitando ajustar as regularidades espúrias causadas por erros de amostragem. Isso pode ser desafiador, mas o vídeo discute várias técnicas para regular a capacidade de forma eficaz.

O vídeo também menciona o uso de métodos de conjunto, como a média de diferentes modelos. Ao treinar modelos em diferentes subconjuntos de dados ou encontrar diferentes conjuntos de pesos com bom desempenho, calcular a média de suas previsões pode melhorar o desempenho geral em comparação com modelos individuais. Além disso, a abordagem Bayesiana envolve o uso de uma única arquitetura de rede neural, mas encontrando vários conjuntos de pesos que predizem bem a saída e, em seguida, calculando a média de suas previsões nos dados de teste.

A capacidade de um modelo pode ser controlada por diferentes meios, como ajustar a arquitetura (por exemplo, limitar o número de camadas ocultas e unidades por camada), penalizar pesos, adicionar ruído a pesos ou atividades ou usar uma combinação desses métodos.

Ao definir os metaparâmetros para controle de capacidade, é necessário evitar o viés dos resultados para um conjunto de teste específico. O vídeo propõe uma abordagem melhor: dividir os dados em subconjuntos de treinamento, validação e teste. Os dados de validação são usados para determinar os metaparâmetros apropriados com base no desempenho do modelo, enquanto os dados de teste fornecem uma estimativa imparcial da eficácia da rede. É crucial usar os dados de teste apenas uma vez para evitar o overfitting.

O vídeo também menciona a validação cruzada n-fold, uma técnica em que os dados são divididos em n subconjuntos e os modelos são treinados e validados em diferentes combinações desses subconjuntos para obter várias estimativas dos melhores metaparâmetros.

Por fim, o vídeo descreve um método fácil de usar chamado parada antecipada. Envolve começar com pesos pequenos e interromper o processo de treinamento quando o desempenho do modelo no conjunto de validação começa a se deteriorar. Essa abordagem controla a capacidade porque modelos com pesos pequenos têm capacidade limitada, comportando-se de maneira semelhante a redes lineares. Parar o treinamento no ponto certo otimiza o trade-off entre o ajuste de regularidades verdadeiras e o ajuste de regularidades espúrias causadas pelo conjunto de treinamento.

No geral, o vídeo destaca várias abordagens para controlar a capacidade e prevenir o overfitting em redes neurais. Esses métodos envolvem a obtenção de mais dados, regulando criteriosamente a capacidade, usando métodos de conjunto, configurando metaparâmetros apropriados por meio de validação e empregando técnicas como parada antecipada.

Lecture 9.1 — Overview of ways to improve generalization [Neural Networks for Machine Learning]
Lecture 9.1 — Overview of ways to improve generalization [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Aula 9.2 — Limitando o tamanho dos pesos



Aula 9.2 — Limitando o tamanho dos pesos [Redes neurais para aprendizado de máquina]

Neste vídeo, discutirei como podemos controlar a capacidade de uma rede limitando o tamanho de seus pesos. A abordagem comum é aplicar uma penalidade que impeça que os pesos se tornem muito grandes. Supõe-se que uma rede com pesos menores é mais simples comparada a uma com pesos maiores.

Existem vários termos de penalidade que podem ser usados e também é possível impor restrições aos pesos, garantindo que o vetor de peso recebido para cada unidade oculta não exceda um determinado comprimento. O método padrão para limitar o tamanho do peso é utilizando uma penalidade de peso L2. Essa penalidade penaliza o valor ao quadrado dos pesos e às vezes é chamada de decaimento de peso. A derivada dessa penalidade atua como uma força puxando os pesos para zero. Consequentemente, a penalidade de peso mantém os pesos pequenos, a menos que eles tenham derivadas de erro significativas para neutralizá-lo.

O termo de penalidade é representado como a soma dos quadrados dos pesos multiplicado por um coeficiente (lambda), dividido por dois. Ao diferenciar a função de custo, descobrimos que a derivada é a soma da derivada do erro e um termo relacionado à magnitude do peso e ao valor de lambda. A derivada torna-se zero quando a magnitude do peso é igual a 1 sobre lambda vezes a magnitude da derivada. Assim, pesos grandes só podem existir quando também tiverem derivadas de erro substanciais. Essa propriedade facilita a interpretação dos pesos, pois há menos pesos grandes com impacto mínimo.

A penalidade de peso L2 evita que a rede utilize pesos desnecessários, resultando em generalização aprimorada. Além disso, leva a modelos mais suaves onde a saída muda mais gradualmente com variações na entrada. Para entradas semelhantes, a penalidade de peso distribui o peso uniformemente, enquanto que sem a penalidade, todo o peso pode ser atribuído a uma entrada.

Além da penalidade de L2, outras penalidades de peso podem ser utilizadas, como a penalidade de L1, que penaliza os valores absolutos dos pesos. Esse tipo de penalidade faz com que muitos pesos sejam exatamente zero, auxiliando na interpretação. Penalidades de peso mais extremas podem ser aplicadas onde o gradiente da função de custo diminui à medida que o peso aumenta. Isso permite que a rede mantenha grandes pesos sem que eles sejam puxados para zero, concentrando a penalidade em pesos pequenos.

Em vez de penalidades, restrições de peso podem ser empregadas. Com restrições de peso, um comprimento quadrado máximo é imposto no vetor de peso de entrada para cada unidade oculta ou unidade de saída. Se o comprimento exceder a restrição, os pesos serão reduzidos dividindo todos os pesos pelo mesmo fator até que o comprimento caiba dentro do limite permitido. As restrições de peso oferecem vantagens sobre as penalidades de peso, pois é mais fácil selecionar um valor razoável para o comprimento ao quadrado. Além disso, as restrições de peso impedem que as unidades ocultas fiquem presas com pesos minúsculos e ineficazes. Eles também evitam a explosão de peso.

Além disso, as restrições de peso têm um efeito sutil nas penalidades. Quando uma unidade atinge sua restrição, a penalidade efetiva em todos os pesos é determinada pelos grandes gradientes. Os grandes gradientes empurram o comprimento do vetor de peso de entrada para cima, exercendo pressão para baixo nos outros pesos. Essa penalidade autodimensionada é mais eficaz do que uma penalidade fixa que empurra pesos irrelevantes para zero. Em termos de multiplicadores de Lagrange, as penalidades podem ser vistas como os multiplicadores necessários para satisfazer as restrições.

O uso de restrições de peso oferece várias vantagens sobre as penalidades de peso. É mais fácil selecionar um valor apropriado para o comprimento ao quadrado do vetor de peso de entrada em comparação com a determinação da penalidade de peso ideal. As unidades logísticas têm uma escala natural, facilitando a compreensão do significado de um valor de peso de um.

As restrições de peso também evitam que as unidades ocultas fiquem presas com todos os seus pesos sendo extremamente pequenos e ineficazes. Quando todos os pesos são minúsculos, não há restrição em seu crescimento, potencialmente tornando-os inúteis. As restrições de peso garantem que os pesos não se tornem desprezíveis.

Outro benefício das restrições de peso é que elas impedem que os pesos explodam, o que pode ocorrer em alguns casos com penalidades de peso. Isso é crucial para manter a estabilidade e evitar instabilidades numéricas na rede.

Um efeito sutil adicional das restrições de peso é seu impacto nas penalidades. Quando uma unidade atinge sua restrição e o comprimento de seu vetor de peso é restrito, a penalidade efetiva em todos os pesos é influenciada pelos grandes gradientes. Os grandes gradientes empurram o comprimento do vetor de peso de entrada para cima, o que, por sua vez, aplica pressão para baixo nos outros pesos. Em essência, a penalidade se dimensiona para ser apropriada para os pesos significativos e suprimir os pesos pequenos. Esse mecanismo de penalidade adaptativa é mais eficaz do que uma penalidade fixa que empurra pesos irrelevantes para zero.

Para aqueles familiarizados com os multiplicadores de Lagrange, as penalidades podem ser vistas como os multiplicadores correspondentes necessários para satisfazer as restrições. As restrições de peso atuam como uma forma de impor as propriedades desejadas dos pesos da rede.

Controlar a capacidade de uma rede limitando o tamanho dos pesos pode ser alcançado por meio de penalidades ou restrições. Ambos os métodos têm suas vantagens, mas as restrições de peso oferecem maior facilidade na seleção de valores apropriados, evitam que os pesos se tornem insignificantes ou explodam e fornecem um mecanismo de penalidade de autoescalonamento. Essas técnicas contribuem para a interpretabilidade, estabilidade e eficácia das redes neurais.

Lecture 9.2 — Limiting the size of the weights [Neural Networks for Machine Learning]
Lecture 9.2 — Limiting the size of the weights [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Aula 9.3 — Usando ruído como regularizador



Aula 9.3 — Usando o ruído como um regularizador [Redes neurais para aprendizado de máquina]

Vamos explorar outro método de restringir a capacidade de uma rede neural, que envolve a adição de ruído aos pesos ou às atividades. Adicionar ruído às entradas de uma rede linear simples, que visa minimizar o erro quadrático, equivale a impor uma penalidade L2 aos pesos da rede. Este conceito pode ser estendido para redes mais complexas, onde são utilizados pesos ruidosos, principalmente em redes recorrentes, que tem apresentado melhora de desempenho.

Além disso, o ruído também pode ser introduzido nas atividades como um regularizador. Considere treinar uma rede neural multicamada com unidades ocultas logísticas usando retropropagação. Ao tornar as unidades binárias e estocásticas durante a passagem para frente e, em seguida, tratá-las como se fossem determinísticas durante a passagem para trás usando os valores reais, criamos um neurônio binário estocástico. Embora não seja totalmente precisa, essa abordagem produz melhor desempenho no conjunto de teste em comparação com o conjunto de treinamento, embora com treinamento mais lento.

Esses métodos de incorporação de ruído, seja nos pesos ou nas atividades, apresentam técnicas alternativas para controlar a capacidade das redes neurais e melhorar sua capacidade de generalização.

Em resumo, adicionar ruído às redes neurais pode ser uma estratégia útil para controlar a capacidade e melhorar a generalização. Ao introduzir ruído gaussiano nas entradas, podemos obter um efeito semelhante a uma penalidade de peso L2. Isso amplifica a variação de ruído com base nos pesos quadrados e contribui para o erro quadrado geral. O ruído nos pesos pode ser particularmente eficaz em redes mais complexas, como redes recorrentes, levando a um melhor desempenho.

Além disso, o ruído pode ser aplicado às atividades da rede como uma técnica de regularização. Ao tratar as unidades como neurônios binários estocásticos durante a passagem direta e usar os valores reais durante a retropropagação, introduzimos aleatoriedade no sistema. Essa abordagem pode resultar em um treinamento mais lento, mas geralmente resulta em melhor desempenho no conjunto de teste, indicando melhor generalização.

A adição de ruído, seja na forma de pesos ou atividades, fornece uma abordagem alternativa para limitar a capacidade e aumentar a robustez e as habilidades de generalização das redes neurais.

Lecture 9.3 — Using noise as a regularizer [Neural Networks for Machine Learning]
Lecture 9.3 — Using noise as a regularizer [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Aula 9.4 — Introdução à abordagem bayesiana completa



Aula 9.4 — Introdução à abordagem bayesiana completa [Redes neurais para aprendizado de máquina]

A abordagem bayesiana para ajustar modelos envolve considerar todas as configurações possíveis dos parâmetros, em vez de procurar a mais provável. Ele assume uma distribuição a priori para os parâmetros e a combina com a verossimilhança dos dados observados para obter uma distribuição a posteriori.

Em um exemplo de cara ou coroa, a abordagem frequentista (máxima verossimilhança) sugeriria escolher o valor do parâmetro que maximiza a verossimilhança dos dados observados. No entanto, essa abordagem tem limitações, pois pode não levar em conta crenças ou incertezas anteriores.

Na estrutura bayesiana, uma distribuição a priori é atribuída aos valores dos parâmetros. Depois de observar os dados, o anterior é multiplicado pela probabilidade de cada valor de parâmetro, resultando em uma distribuição posterior não normalizada. Para obter uma distribuição de probabilidade adequada, o posterior é renormalizado, dimensionando-o para ter uma área de um.

Por meio de etapas iterativas, a distribuição posterior é atualizada à medida que mais dados são observados. A distribuição posterior final representa a crença atualizada sobre os valores dos parâmetros, incorporando conhecimento prévio e dados observados. Ele fornece uma gama de valores de parâmetros plausíveis junto com suas probabilidades.

O teorema de Bayes é usado para calcular a probabilidade posterior de um valor de parâmetro dados os dados. Envolve multiplicar a probabilidade anterior pela probabilidade dos dados dado esse valor de parâmetro e normalizá-lo dividindo pela probabilidade dos dados.

Ao considerar a distribuição posterior completa, a abordagem bayesiana permite uma análise mais abrangente dos valores dos parâmetros, incorporando crenças anteriores e atualizando-as com base nos dados observados.

Lecture 9.4 — Introduction to the full Bayesian approach [Neural Networks for Machine Learning]
Lecture 9.4 — Introduction to the full Bayesian approach [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
 

Aula 9.5 — A interpretação bayesiana do decaimento do peso



Aula 9.5 — A interpretação bayesiana do decaimento de peso [Redes neurais para aprendizado de máquina]

Este vídeo discute a interpretação bayesiana das penalidades de peso na abordagem bayesiana completa. Na abordagem bayesiana, o objetivo é calcular a probabilidade posterior de cada configuração possível dos parâmetros do modelo. No entanto, uma versão simplificada chamada aprendizado máximo a posteriori se concentra em encontrar o conjunto único de parâmetros que é o melhor compromisso entre ajustar crenças anteriores e ajustar os dados observados. Essa abordagem fornece uma explicação para o uso do decaimento de peso para controlar a capacidade do modelo. Ao minimizar o erro quadrado durante o aprendizado supervisionado de máxima verossimilhança, estamos essencialmente encontrando um vetor de peso que maximiza a densidade logarítmica da resposta correta. Essa interpretação assume que a resposta correta é produzida pela adição de ruído gaussiano à saída da rede neural.

Nesta interpretação probabilística, a saída do modelo é considerada o centro de uma Gaussiana, e estamos interessados em ter o valor alvo com alta probabilidade sob aquela Gaussiana. A densidade de probabilidade de log negativo do valor alvo, dada a saída da rede, é equivalente ao quadrado da diferença entre o alvo e a saída dividida pelo dobro da variância do gaussiano. Tomando logs e colocando um sinal de menos, a densidade de probabilidade de log negativo do valor alvo dada a saída da rede torna-se uma função de custo. Minimizar esta função de custo é equivalente a minimizar a distância ao quadrado. Isso mostra que ao minimizar um erro quadrático, há uma interpretação probabilística em que estamos maximizando a probabilidade de log sob um gaussiano.

A abordagem bayesiana adequada é encontrar a distribuição posterior completa sobre todos os vetores de peso possíveis, o que pode ser um desafio para redes não lineares. Como alternativa mais simples, podemos tentar encontrar o vetor de peso mais provável, aquele que é mais provável dado o nosso conhecimento prévio e os dados.

No aprendizado máximo a posteriori, buscamos encontrar o conjunto de pesos que otimiza o trade-off entre ajustar o anterior e ajustar os dados. Usar probabilidades de log negativo como custos é mais conveniente do que trabalhar no domínio da probabilidade. Maximizamos a probabilidade logarítmica dos dados dados os pesos, o que equivale a maximizar a soma das probabilidades logarítmicas das saídas para todos os casos de treinamento dados os pesos. Para otimizar os pesos, consideramos a probabilidade logarítmica negativa dos pesos dados os dados. Esse custo consiste em dois termos: um que depende dos dados e dos pesos, que mede o quão bem ajustamos os alvos, e outro termo que depende apenas dos pesos, que é derivado da probabilidade logarítmica dos dados dados os pesos.

Se assumirmos que o ruído gaussiano é adicionado à saída do modelo para fazer previsões e Gaussian prior para os pesos, então a probabilidade logarítmica dos dados dados os pesos é a distância ao quadrado entre a saída e o alvo escalado pelo dobro da variância do ruído gaussiano. Da mesma forma, a probabilidade logarítmica de um peso sob o prior é o valor ao quadrado do peso escalado pelo dobro da variância do prior gaussiano.

Multiplicando pelo produto de duas vezes as variâncias do ruído Gaussiano e a priori, obtemos uma nova função de custo. O primeiro termo corresponde ao erro quadrático normalmente minimizado em uma rede neural. O segundo termo torna-se a razão de duas variâncias multiplicada pela soma dos pesos ao quadrado, que é a penalidade de peso. Assim, a penalidade de peso é determinada pela razão das variâncias nessa interpretação gaussiana e não é um valor arbitrário dentro dessa estrutura. Portanto, a penalidade de peso nessa interpretação bayesiana não é apenas um valor arbitrário escolhido para melhorar o desempenho. Tem uma interpretação significativa baseada nas variações do ruído gaussiano e anterior.

Para elaborar melhor, quando multiplicamos a equação pelo dobro das variâncias e somamos todos os casos de treinamento, o primeiro termo corresponde à diferença quadrada entre a saída da rede neural e o alvo. Este termo representa o erro quadrado que normalmente é minimizado em uma rede neural. O segundo termo, que depende apenas dos pesos, torna-se a razão das duas variâncias multiplicada pela soma dos pesos ao quadrado. Este termo é a penalidade de peso. Ele penaliza grandes valores de peso e incentiva pesos menores. A proporção das variações determina a força dessa penalidade.

Essencialmente, ao introduzir uma penalidade de peso, estamos negociando entre ajustar bem os dados e manter os pesos pequenos. Este trade-off é controlado pela razão das variâncias. Uma penalidade de peso maior (ou seja, menor proporção de variâncias) resultará em pesos menores, enquanto uma penalidade de peso menor (ou seja, maior proporção de variâncias) permite pesos maiores. É importante notar que a interpretação do decaimento do peso ou penalidades de peso como uma abordagem bayesiana depende da suposição de ruído gaussiano e distribuições anteriores gaussianas. Essas suposições simplificam os cálculos e fornecem uma estrutura probabilística para entender o impacto das penalidades de peso no processo de otimização.

Na prática, encontrar a distribuição posterior completa sobre todos os vetores de peso possíveis pode ser um desafio computacional, especialmente para redes não lineares complexas. Portanto, o aprendizado máximo a posteriori, que visa encontrar o vetor peso mais provável, oferece uma alternativa mais prática. Essa abordagem equilibra o ajuste de crenças anteriores e os dados observados, fornecendo uma solução de compromisso.

A interpretação bayesiana das penalidades de peso fornece uma compreensão mais profunda de seu papel na otimização da rede neural. Ao considerar a perspectiva probabilística e o compromisso entre ajustar os dados e o peso anterior, podemos aproveitar as penalidades de peso como uma técnica de regularização para controlar a capacidade do modelo e melhorar o desempenho da generalização.

Lecture 9.5 — The Bayesian interpretation of weight decay [Neural Networks for Machine Learning]
Lecture 9.5 — The Bayesian interpretation of weight decay [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Aula 9.6 — O método rápido e sujo de MacKay



Aula 9.6 — Método rápido e sujo de MacKay [Redes neurais para aprendizado de máquina]

Neste vídeo, discutirei um método desenvolvido por David MacKay na década de 1990 para determinar penalidades de peso em uma rede neural sem depender de um conjunto de validação. A abordagem de MacKay é baseada na interpretação das penalidades de peso como uma estimativa máxima a posteriori (MAP), onde a magnitude da penalidade de peso se relaciona com o rigor da distribuição anterior sobre os pesos.

MacKay demonstrou que podemos ajustar empiricamente as penalidades de peso e o ruído presumido na saída da rede neural. Isso nos permite obter um método de ajuste de penalidades de peso que não requer um conjunto de validação, permitindo diferentes penalidades de peso para subconjuntos de conexões dentro de uma rede. Essa flexibilidade seria computacionalmente cara de se obter usando conjuntos de validação.

Agora, descreverei um método simples e prático desenvolvido por David MacKay para alavancar a interpretação das penalidades de peso como a razão de duas variações. Depois de aprender um modelo para minimizar o erro quadrado, podemos determinar o melhor valor para a variação de saída. Este valor é obtido usando a variância dos erros residuais.

Também podemos estimar a variância no Gaussian prior para os pesos. Inicialmente, fazemos um palpite sobre essa variação e prosseguimos com o processo de aprendizado. Aí vem o "truque sujo" chamado Bayes empírico. Definimos a variância anterior como a variância dos pesos que o modelo aprendeu porque torna esses pesos mais prováveis. Embora isso viole algumas suposições da abordagem Bayesiana, permite-nos determinar a priori com base nos dados.

Depois de aprender os pesos, ajustamos uma distribuição gaussiana de média zero à distribuição unidimensional dos pesos aprendidos. Em seguida, tomamos a variância desse gaussiano como nossa variância anterior ao peso. Notavelmente, se houver diferentes subconjuntos de pesos, como em diferentes camadas, podemos aprender diferentes variações para cada camada.

A vantagem do método de MacKay é que ele não requer um conjunto de validação, permitindo o uso de todos os dados que não são de teste para treinamento. Além disso, permite a incorporação de várias penalidades de peso, o que seria difícil de alcançar usando conjuntos de validação.

Para resumir o método, começamos adivinhando a razão entre a variância do ruído e a variância do peso anterior. Em seguida, realizamos o aprendizado de gradiente descendente para melhorar os pesos. Em seguida, atualizamos a variância do ruído para ser a variância dos erros residuais e a variância anterior do peso para ser a variância da distribuição dos pesos aprendidos. Este loop é repetido iterativamente.

Na prática, o método de MacKay demonstrou funcionar com eficácia e ele obteve sucesso em várias competições usando essa abordagem.

Lecture 9.6 — MacKay 's quick and dirty method [Neural Networks for Machine Learning]
Lecture 9.6 — MacKay 's quick and dirty method [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

10.1 — Por que ajuda combinar modelos



10.1 — Por que ajuda combinar modelos [Redes neurais para aprendizado de máquina]

Neste vídeo, discutirei a importância de combinar vários modelos para fazer previsões. Ao usar um único modelo, enfrentamos o desafio de escolher a capacidade certa para ele. Se a capacidade for muito baixa, o modelo não capturará as regularidades nos dados de treinamento. Por outro lado, se a capacidade for muito alta, o modelo irá sobreajustar o erro de amostragem no conjunto de treinamento específico. Ao combinar vários modelos, podemos encontrar um melhor equilíbrio entre ajustar as verdadeiras regularidades e evitar o overfitting. A média dos modelos juntos geralmente leva a melhores resultados em comparação com o uso de qualquer modelo único. Este efeito é particularmente significativo quando os modelos fazem diversas previsões. Encorajar os modelos a fazer previsões diferentes pode ser alcançado por meio de várias técnicas.

Ao lidar com dados de treinamento limitados, o overfitting é um problema comum. No entanto, considerando as previsões de vários modelos, podemos mitigar o overfitting. Isso é especialmente verdadeiro quando os modelos fazem previsões diferentes. Na regressão, podemos decompor o erro quadrado em um termo de viés e um termo de variância. O termo de viés indica quão bem o modelo se aproxima da função verdadeira, enquanto o termo de variância mede a capacidade do modelo de capturar o erro de amostragem no conjunto de treinamento. Ao calcular a média dos modelos, podemos reduzir a variância enquanto mantemos o viés baixo, já que os modelos de alta capacidade geralmente exibem viés baixo. Isso nos permite aproveitar os benefícios da média para reduzir o erro.

Ao comparar um modelo individual com a média dos modelos em um caso de teste específico, é possível que alguns preditores individuais superem o preditor combinado. No entanto, diferentes preditores individuais se destacam em casos diferentes. Além disso, quando os preditores individuais discordam significativamente uns dos outros, o preditor combinado geralmente supera todos os preditores individuais em média. Assim, o objetivo é ter preditores individuais que cometam erros distintos uns dos outros, mantendo-se precisos.

Matematicamente, ao combinar redes, comparamos dois erros quadrados esperados. O primeiro erro corresponde a selecionar aleatoriamente um preditor e calcular a média das predições sobre todos os preditores. O segundo erro é obtido pela média das previsões dos modelos. O erro quadrado esperado da seleção aleatória de um modelo é maior do que o erro quadrado obtido por meio da média, indicando a vantagem da média na redução do erro. O termo adicional na equação representa a variância das saídas dos modelos, que é efetivamente reduzida pela média.

Para obter diversas previsões entre os modelos, várias abordagens podem ser empregadas. Isso inclui usar diferentes tipos de modelos, alterar arquiteturas de modelos, empregar diferentes algoritmos de aprendizado e treinar modelos em diferentes subconjuntos de dados. Técnicas como bagging e boosting também são eficazes na criação de diversos modelos. Bagging envolve o treinamento de diferentes modelos em diferentes subconjuntos de dados, enquanto o boosting pondera os casos de treinamento de maneira diferente para cada modelo. Esses métodos contribuem para melhorar o desempenho ao combinar modelos.

A combinação de vários modelos é benéfica para tarefas de previsão. Ao calcular a média dos modelos, podemos encontrar um equilíbrio entre a captura de regularidades e evitar o overfitting. Diversas previsões entre os modelos melhoram o desempenho do preditor combinado. Várias técnicas podem ser aplicadas para encorajar diversas previsões, levando a melhores resultados gerais.

10.1 — Why it helps to combine models [Neural Networks for Machine Learning]
10.1 — Why it helps to combine models [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...