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

 

Aula 1.5 — Três tipos de aprendizagem



Aula 1.5 — Três tipos de aprendizado [Redes neurais para aprendizado de máquina]

Neste vídeo, discutirei três tipos principais de aprendizado de máquina: aprendizado supervisionado, aprendizado por reforço e aprendizado não supervisionado. O curso se concentrará principalmente no aprendizado supervisionado no primeiro semestre e no aprendizado não supervisionado no segundo semestre. Infelizmente, devido a limitações de tempo, não cobriremos o aprendizado por reforço.

O aprendizado supervisionado envolve prever uma saída a partir de um vetor de entrada. O objetivo é prever com precisão um número real ou um rótulo de classe. A regressão lida com números reais, como a previsão de preços de ações, enquanto a classificação envolve a atribuição de rótulos, como distinguir entre casos positivos e negativos ou reconhecer dígitos manuscritos. O aprendizado supervisionado depende de uma classe de modelo, que é um conjunto de modelos candidatos representados por funções que mapeiam entradas para saídas usando parâmetros numéricos (W). Esses parâmetros são ajustados para minimizar a discrepância entre a saída prevista (Y) e a saída correta (t).

O aprendizado por reforço se concentra na seleção de ações ou sequências de ações para maximizar as recompensas recebidas. As ações são escolhidas com base em recompensas ocasionais, e o objetivo é maximizar a soma esperada de recompensas futuras. Um fator de desconto é normalmente empregado para priorizar recompensas imediatas sobre recompensas distantes. O aprendizado por reforço apresenta desafios devido a recompensas atrasadas e informações limitadas transmitidas por recompensas escalares.

O aprendizado não supervisionado, que será amplamente abordado na segunda metade do curso, envolve a descoberta de representações internas úteis de dados de entrada. Por muitos anos, o aprendizado não supervisionado foi negligenciado em favor do agrupamento, pois era um desafio definir os objetivos do aprendizado não supervisionado. No entanto, o aprendizado não supervisionado serve a vários propósitos, incluindo a criação de representações internas benéficas para o aprendizado subsequente supervisionado ou por reforço. Ele visa gerar representações compactas e de baixa dimensão de entradas de alta dimensão, como imagens, identificando variedades subjacentes. O aprendizado não supervisionado também pode fornecer representações econômicas usando recursos aprendidos, onde as entradas podem ser expressas em códigos binários ou esparsos. Além disso, o aprendizado não supervisionado abrange agrupamento, que pode ser visto como um caso extremo de encontrar recursos esparsos, com um recurso por cluster.

Este vídeo aborda os três principais tipos de aprendizado de máquina: aprendizado supervisionado, aprendizado por reforço e aprendizado não supervisionado. Enquanto o aprendizado supervisionado se concentra na previsão de saídas, o aprendizado por reforço se concentra em maximizar as recompensas por meio da seleção de ações. O aprendizado não supervisionado visa descobrir representações internas úteis, como representações de baixa dimensão ou recursos aprendidos, e inclui a identificação de clusters subjacentes.

Lecture 1.5 — Three types of learning [Neural Networks for Machine Learning]
Lecture 1.5 — Three types of learning [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 2.1 — Tipos de arquiteturas de redes neurais



Aula 2.1 — Tipos de arquiteturas de redes neurais [Redes neurais para aprendizado de máquina]

As redes neurais podem ter diferentes tipos de arquiteturas, que se referem a como os neurônios estão conectados. A arquitetura mais comum em aplicações práticas é uma rede neural feed-forward, onde a informação flui de unidades de entrada através de camadas ocultas para unidades de saída. Por outro lado, as redes neurais recorrentes são mais interessantes, pois permitem que as informações fluam em ciclos, possibilitando memória de longo prazo e dinâmicas complexas. O treinamento de redes recorrentes é desafiador devido à sua complexidade, mas o progresso recente as tornou mais treináveis e capazes de tarefas impressionantes.

Outro tipo de arquitetura são as redes conectadas simetricamente, onde os pesos entre as unidades são os mesmos em ambas as direções. Essas redes seguem uma função de energia e são mais fáceis de analisar em comparação com as redes recorrentes. No entanto, eles são mais restritos em suas capacidades e não podem modelar ciclos.

Nas redes neurais feed-forward, cada camada calcula as transformações entre a entrada e a saída, resultando em novas representações em cada camada. Funções não lineares são aplicadas às atividades dos neurônios em cada camada para capturar similaridade e dissimilaridade entre as entradas. Em contraste, as redes neurais recorrentes utilizam ciclos direcionados em seu grafo de conexão, permitindo dinâmicas complexas e modelagem de dados sequenciais. Os mesmos pesos são usados em cada intervalo de tempo e os estados das unidades ocultas determinam os estados do próximo intervalo de tempo.

As redes neurais recorrentes têm a capacidade de lembrar informações por um longo tempo em seus estados ocultos, mas treiná-las para utilizar essa capacidade é um desafio. No entanto, algoritmos recentes fizeram progressos significativos no treinamento de redes recorrentes. Essas redes podem ser usadas para tarefas como prever o próximo caractere em uma sequência, gerar texto ou modelar dados sequenciais.

No geral, as arquiteturas de redes neurais podem variar em suas conexões e capacidades, variando de redes feed-forward para cálculos diretos a redes recorrentes para memória e dinâmica complexa.

Lecture 2.1 — Types of neural network architectures [Neural Networks for Machine Learning]
Lecture 2.1 — Types of neural network architectures [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 2.2 — Perceptrons: redes neurais de primeira geração



Aula 2.2 — Perceptrons: redes neurais de primeira geração [Neural Networks for Machine Learning]

Perceptrons, uma classe de algoritmos para aprendizado de máquina, foram investigados pela primeira vez no início dos anos 1960. Inicialmente, eles se mostraram muito promissores como dispositivos de aprendizado, mas suas limitações foram posteriormente reveladas por Minsky e Papert, levando a um declínio em sua popularidade. Minsky e Papert demonstraram que os perceptrons eram bastante restritos em sua capacidade de aprender padrões complexos em tarefas estatísticas de reconhecimento de padrões.

No campo do reconhecimento de padrões estatísticos, uma abordagem padrão é seguida para reconhecer padrões. Primeiro, os dados brutos de entrada são processados e convertidos em um conjunto ou vetor de ativações de recursos. Essa conversão é feita usando programas predefinidos com base no senso comum, onde a experiência humana determina quais recursos são relevantes para a tarefa em questão. É importante notar que esta fase de pré-processamento não envolve aprendizagem. A seleção de recursos apropriados é uma etapa crucial e geralmente envolve tentativa e erro. Diferentes recursos são testados e sua eficácia é avaliada. Por meio desse processo iterativo, um conjunto de recursos é eventualmente identificado que permite que o estágio de aprendizado subsequente resolva efetivamente o problema.

O estágio de aprendizado no reconhecimento de padrões estatísticos envolve a determinação dos pesos associados a cada ativação de recurso. Esses pesos representam a força da evidência que cada recurso fornece a favor ou contra a hipótese de que a entrada atual pertence a um determinado padrão ou classe. Ao somar as ativações de recursos ponderadas, uma pontuação total de evidência é obtida, que é comparada a um limite. Se a evidência ultrapassar o limite, o vetor de entrada é classificado como um exemplo positivo do padrão que está sendo reconhecido.

Perceptrons são um tipo específico de sistema estatístico de reconhecimento de padrões. Embora existam vários tipos de perceptrons, a forma padrão, conhecida como perceptron alfa por Rosenblatt, consiste em unidades de entrada que são transformadas em ativações de recursos. Essa transformação pode se assemelhar ao comportamento dos neurônios, mas é importante observar que essa etapa do sistema não envolve aprendizado. Uma vez que as ativações de recursos são obtidas, os pesos são aprendidos usando um algoritmo de aprendizado.

Os perceptrons ganharam destaque na década de 1960 por meio do trabalho de Frank Rosenblatt, que os estudou extensivamente e os descreveu em seu livro "Principles of Neurodynamics". O livro apresentava diferentes tipos de perceptrons e estava repleto de ideias inovadoras. Uma das contribuições mais notáveis foi um poderoso algoritmo de aprendizado associado a perceptrons, que gerou grandes expectativas para suas capacidades.

No entanto, o entusiasmo inicial em torno dos perceptrons foi recebido com ceticismo quando se descobriu que seu algoritmo de aprendizado tinha limitações. Por exemplo, alegações exageradas foram feitas sobre sua capacidade de diferenciar entre imagens parcialmente obscurecidas de tanques e caminhões. Essas alegações foram desmentidas quando foi revelado que os perceptrons estavam simplesmente medindo a intensidade total dos pixels, uma tarefa que os humanos executam com maior sensibilidade. Esse tipo de mal-entendido manchou a reputação do perceptron e levou a dúvidas sobre a eficácia dos modelos de redes neurais como um todo.

Em 1969, Minsky e Papert publicaram um livro seminal intitulado "Perceptrons" que analisava criticamente as capacidades dos perceptrons e destacava suas limitações. No entanto, o campo mais amplo da inteligência artificial erroneamente extrapolou essas limitações para todos os modelos de redes neurais. A crença predominante tornou-se que Minsky e Papert haviam provado que os modelos de rede neural eram impraticáveis e incapazes de aprender tarefas complexas. Na realidade, as descobertas de Minsky e Papert foram específicas para os perceptrons que estudaram e não invalidaram o potencial das redes neurais como um todo.

Vale a pena notar que o procedimento de convergência do perceptron, que exploraremos em breve, continua a ser amplamente utilizado hoje para tarefas que envolvem grandes vetores de características. Na verdade, grandes empresas como o Google empregam algoritmos baseados em perceptron para prever resultados com base em vastos conjuntos de recursos.

A unidade de decisão em um perceptron é um neurônio limiar binário, um tipo de neurônio que já foi encontrado em modelos de redes neurais. Para atualizar nosso entendimento, esses neurônios calculam uma soma ponderada de entradas recebidas de outros neurônios, adicionam um termo de viés e geram uma saída de um se a soma exceder zero, caso contrário, produzindo uma saída de zero.

Para simplificar o processo de aprendizado, os bias podem ser tratados como pesos, aumentando cada vetor de entrada com uma entrada adicional de valor constante um. Ao fazer isso, o viés é incorporado como um peso nessa linha de entrada extra, eliminando a necessidade de uma regra de aprendizado separada para vieses. Em essência, o viés torna-se equivalente a um peso, sendo seu valor o negativo do limiar.

Agora, vamos explorar o procedimento de aprendizado do perceptron, que é surpreendentemente poderoso e garante a convergência para uma solução. No entanto, é importante considerar algumas ressalvas quanto à sua garantia, que serão discutidas posteriormente.

Para começar, incluímos um componente extra com um valor de um em cada vetor de entrada. Podemos então nos concentrar nos pesos e desconsiderar os vieses, pois agora eles são tratados como pesos na linha de entrada adicional. Os casos de treinamento são selecionados de acordo com qualquer política que garanta que cada caso seja escolhido dentro de um prazo razoável, embora a definição precisa de "tempo razoável" possa variar dependendo do contexto.

Depois de selecionar um caso de treinamento, avaliamos a saída gerada pelo perceptron e a comparamos com a saída esperada. Se a saída estiver correta, indicando que a decisão do perceptron se alinha com a classificação desejada, deixamos os pesos inalterados. No entanto, se a saída estiver incorreta, ajustamos os pesos com base nas seguintes regras:

  1. Se a saída for zero quando deveria ser um (ou seja, o perceptron rejeita falsamente uma entrada), adicionamos o vetor de entrada ao vetor de peso do perceptron.
  2. Se a saída for um quando deveria ser zero (ou seja, o perceptron aceita falsamente uma entrada), subtraímos o vetor de entrada do vetor de peso do perceptron.

Notavelmente, esse procedimento de aprendizado simples garante encontrar um conjunto de pesos que produza a saída correta para cada caso de treinamento. No entanto, uma condição importante deve ser satisfeita: deve existir um conjunto viável de pesos que possa classificar corretamente todos os casos de treinamento. Infelizmente, para muitos problemas interessantes, tal conjunto viável de pesos pode não existir.

A existência de um conjunto factível de pesos depende fortemente da escolha das características utilizadas. Para muitos problemas, o desafio crítico está em determinar as características mais apropriadas para capturar os padrões relevantes. Se os recursos certos forem selecionados, o processo de aprendizagem torna-se viável e eficaz. Por outro lado, se recursos inadequados forem escolhidos, o aprendizado torna-se impossível e o foco principal muda para a seleção de recursos.

Em conclusão, os perceptrons desempenharam um papel significativo no desenvolvimento inicial de modelos de redes neurais. Embora suas limitações tenham sido reveladas por Minsky e Papert, é importante observar que suas descobertas foram específicas para os perceptrons que eles examinaram e não invalidaram o potencial mais amplo das redes neurais. O procedimento de convergência do perceptron continua sendo uma ferramenta valiosa, especialmente para tarefas que envolvem grandes vetores de características. No entanto, a chave para o reconhecimento de padrões bem-sucedido está na seleção de recursos apropriados, pois usar os recursos certos facilita muito o processo de aprendizado, enquanto o uso de recursos inadequados pode tornar o aprendizado impossível.

Lecture 2.2 — Perceptrons: first-generation neural networks [Neural Networks for Machine Learning]
Lecture 2.2 — Perceptrons: first-generation neural networks [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 2.3 — Uma visão geométrica dos perceptrons



Aula 2.3 — Uma visão geométrica dos perceptrons [Redes neurais para aprendizado de máquina]

Neste vídeo, vamos nos aprofundar no entendimento geométrico de como os perceptrons aprendem. Para isso, precisamos pensar em termos de espaço de pesos, um espaço de alta dimensão onde cada ponto corresponde a uma configuração específica de todos os pesos. Nesse espaço, podemos representar casos de treinamento como planos, e o processo de aprendizado envolve posicionar o vetor peso no lado correto de todos os planos de treinamento.

Para aqueles que não são versados em matemática, isso pode ser mais desafiador do que o material anterior. Pode ser necessário dedicar muito tempo para compreender o próximo conteúdo, principalmente se você não estiver familiarizado com o pensamento sobre hiperplanos em espaços de alta dimensão. Você precisará se sentir confortável visualizando um espaço de 14 dimensões, primeiro visualizando um espaço tridimensional e depois lembrando-se audivelmente da dimensionalidade. Pode parecer estranho, mas é uma prática comum para ajudar na compreensão.

Ao lidar com hiperplanos em um espaço de 14 dimensões, a complexidade aumenta significativamente, semelhante à transição de um espaço 2D para um espaço 3D. É crucial entender que um espaço de 14 dimensões é vasto e intrincado. Com isso em mente, vamos começar focando no espaço de peso.

Espaço de peso é um espaço que tem uma dimensão para cada peso no perceptron. Um ponto no espaço de pesos representa uma configuração específica de todos os pesos, assumindo que eliminamos o limite. Cada caso de treinamento pode ser representado como um hiperplano passando pela origem no espaço de pesos. Consequentemente, os pontos neste espaço correspondem a vetores de peso, enquanto os casos de treinamento correspondem a planos.

Para um caso de treinamento específico, os pesos devem estar em um lado do hiperplano para produzir a saída correta. Vamos visualizar este conceito através de um exemplo. Considere um caso de treinamento em que a resposta correta é um. O vetor de peso precisa estar do mesmo lado do hiperplano que a direção indicada pelo vetor de treinamento. Qualquer vetor de peso desse lado terá um ângulo com o vetor de entrada menor que 90 graus, resultando em um produto escalar positivo. Como eliminamos o limite, o perceptron emitirá um, fornecendo a resposta correta.

Por outro lado, se um vetor de peso estiver no lado errado do plano, seu ângulo com o vetor de entrada excederá 90 graus, resultando em um produto escalar negativo. Consequentemente, o perceptron produzirá zero, levando a uma resposta incorreta.

Para resumir, os vetores de peso de um lado do plano fornecem a resposta correta, enquanto os do outro lado produzem a resposta errada. Agora, vamos examinar um caso de treinamento diferente em que a resposta correta é zero.

Nesse caso, qualquer vetor de peso que faça um ângulo menor que 90 graus com o vetor de entrada resultará em um produto escalar positivo, fazendo com que o perceptron gere um, levando a uma resposta incorreta. Por outro lado, os vetores de peso do outro lado do plano, com um ângulo superior a 90 graus, produzirão um produto escalar menor que zero, e o perceptron produzirá zero, fornecendo a resposta corretamente.

Vamos combinar esses dois casos de treinamento em uma única imagem do espaço de peso. O espaço de pesos fica lotado e surge um cone de possíveis vetores de pesos. Qualquer vetor de peso dentro deste cone produzirá a resposta correta para ambos os casos de treinamento. Vale a pena notar que a existência de tal cone não é garantida. Pode haver cenários em que nenhum vetor de peso fornece as respostas corretas para todos os casos de treinamento. No entanto, se tais vetores de peso existirem, eles formarão um cone.

O algoritmo de aprendizado considera os casos de treinamento um a um, ajustando o vetor de peso para eventualmente ficar dentro desse cone. É importante observar que se tivermos dois bons vetores de peso que funcionem para todos os casos de treinamento, a média deles também ficará dentro do cone. Isso implica que o problema é convexo e a média de duas soluções é ela própria uma solução. Problemas de aprendizado convexo simplificam o processo de aprendizado de máquina.

Compreender o espaço de peso e a relação entre vetores de peso e casos de treinamento fornece uma visão geométrica de como os perceptrons aprendem. O objetivo é encontrar um vetor de peso que esteja dentro do cone de soluções possíveis, o que garante a classificação correta para todos os casos de treinamento.

Lecture 2.3 — A geometrical view of perceptrons [Neural Networks for Machine Learning]
Lecture 2.3 — A geometrical view of perceptrons [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 2.4 — Por que o aprendizado funciona



Aula 2.4 — Por que o aprendizado funciona [Redes neurais para aprendizado de máquina]

Neste vídeo, pretendemos apresentar uma prova de que o procedimento de aprendizado do perceptron levará os pesos a convergirem dentro do cone de soluções viáveis. No entanto, quero enfatizar que este curso se concentra principalmente em aspectos de engenharia, em vez de provas rigorosas. Haverá poucas provas ao longo do curso. No entanto, entender como os perceptrons eventualmente encontram a resposta correta fornece informações valiosas.

Para construir nossa prova, alavancaremos nossa compreensão geométrica do espaço de pesos e do processo de aprendizado do perceptron. Assumimos a existência de um vetor de peso viável que produz a resposta correta para todos os casos de treinamento. No diagrama, isso é representado pelo ponto verde.

A ideia-chave em nossa prova é que toda vez que o perceptron classifica incorretamente um caso de treinamento, o vetor de peso atual será atualizado de uma maneira que o aproxime de todos os vetores de peso viáveis. Podemos medir a distância ao quadrado entre o vetor de peso atual e um vetor de peso viável como a soma de uma distância ao quadrado ao longo da linha do vetor de entrada (a definição do caso de treinamento) e outra distância ao quadrado ortogonal a essa linha. A distância quadrada ortogonal permanece constante, enquanto a distância ao longo da linha do vetor de entrada diminui.

Embora essa afirmação pareça promissora, encontramos um problema ilustrado pelo vetor ouro de peso viável no diagrama. Ele fica exatamente no lado direito do plano definido por um dos casos de treinamento, enquanto o vetor de peso atual está no lado errado. Além disso, o vetor de entrada é relativamente grande, fazendo com que a adição do vetor de entrada mova o vetor de peso atual para mais longe do vetor de peso viável de ouro. Como resultado, nossa reivindicação inicial falha.

No entanto, podemos corrigir isso introduzindo o conceito de um vetor de peso generosamente viável. Esses vetores de peso não apenas classificam todos os casos de treinamento corretamente, mas também o fazem com uma margem igual ou maior que o comprimento do vetor de entrada para cada caso. Dentro do cone de soluções viáveis, temos outro cone de soluções generosamente viáveis.

Com este ajuste, nossa prova torna-se válida. Agora podemos afirmar que toda vez que o perceptron classifica incorretamente um caso, a distância ao quadrado para todos os vetores de peso generosamente viáveis diminui em pelo menos o comprimento ao quadrado do vetor de entrada. Essa atualização garante que o vetor de peso se aproxime das soluções generosamente viáveis.

Embora não forneçamos uma prova formal aqui, este esboço informal demonstra o processo de convergência. Se os vetores de entrada não forem infinitamente pequenos, a distância ao quadrado para todos os vetores de peso generosamente viáveis diminui em pelo menos o comprimento ao quadrado do vetor de entrada após um número finito de erros. Conseqüentemente, o vetor de peso deve eventualmente residir dentro da região factível, supondo que ela exista. Ele não precisa necessariamente estar na região generosamente viável, mas pelo menos dentro da região viável para evitar mais erros.

Para resumir, esta é uma visão geral informal da prova que demonstra que o procedimento de convergência do perceptron funciona. No entanto, é essencial observar que toda a prova se baseia na suposição de que existe um vetor de pesos generosamente viável. Se tal vetor não existir, a prova entra em colapso.

Lecture 2.4 — Why the learning works [Neural Networks for Machine Learning]
Lecture 2.4 — Why the learning works [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 2.5 — O que os perceptrons não podem fazer



Aula 2.5 — O que os perceptrons não podem fazer [Redes neurais para aprendizado de máquina]

Neste vídeo, exploraremos as limitações dos perceptrons, decorrentes dos tipos de recursos utilizados. A eficácia dos perceptrons depende muito da escolha dos recursos. Com os recursos certos, os perceptrons podem ser incrivelmente versáteis, mas com os recursos errados, suas capacidades de aprendizado são severamente restritas. Essa limitação fez com que os perceptrons caíssem em desuso no passado. Ele destaca o desafio de aprender os recursos apropriados, que é o aspecto crucial do processo de aprendizagem.

No entanto, mesmo sem recursos de aprendizado, os perceptrons ainda podem realizar muito. Por exemplo, em tarefas como determinar a plausibilidade de uma frase em inglês, pode-se definir manualmente vários recursos e aprender seus pesos para decidir a probabilidade de uma frase ser gramaticalmente correta. No entanto, a longo prazo, os recursos de aprendizagem tornam-se necessários.

A pesquisa do perceptron enfrentou contratempos no final dos anos 1960 e início dos anos 1970, quando se descobriu que os perceptrons tinham limitações significativas. Ao escolher recursos manualmente e incorporar recursos suficientes, os perceptrons podem realizar praticamente qualquer tarefa. Por exemplo, se considerarmos vetores de entrada binários e criarmos unidades de recursos separadas que ativam com base em vetores de entrada binários específicos, podemos obter qualquer discriminação em vetores de entrada binários. No entanto, essa abordagem é impraticável para a solução de problemas do mundo real, pois requer um número excessivo de unidades de recursos, dificultando a generalização. Tentar generalizar a partir de um subconjunto de casos ignorando outros é inútil porque novas unidades de recursos seriam necessárias para os casos restantes, e determinar os pesos para essas novas unidades de recursos é um desafio quando a seleção manual é concluída.

Existem restrições rigorosas sobre o que os perceptrons podem aprender uma vez que as unidades de recursos e seus pesos tenham sido estabelecidos. Vamos examinar um exemplo clássico para entender essas limitações. Queremos determinar se uma unidade de decisão de limite binário pode aprender a identificar se dois recursos têm o mesmo valor. Temos dois casos positivos e dois casos negativos, cada um definido por recursos de bit único com valores de 1 ou 0. Os casos positivos ocorrem quando ambos os recursos estão ativados (1) ou quando ambos os recursos estão desativados (0), enquanto os negativos casos ocorrem quando um recurso está ativado (1) e o outro está desativado (0). A tarefa parece simples, mas algebricamente pode ser provado impossível satisfazer todas as quatro desigualdades formadas por esses pares de entrada-saída. Consequentemente, não é possível encontrar pesos que permitam ao perceptron fornecer a saída correta para todos os quatro casos.

Essa limitação também pode ser compreendida geometricamente. Imaginamos um espaço de dados onde cada ponto representa um ponto de dados e vetores de peso definem planos perpendiculares aos pontos de dados. Para discriminar corretamente, o plano de peso deve separar os casos positivos dos casos negativos. No entanto, existem conjuntos de casos de treinamento que não são linearmente separáveis, o que significa que nenhum hiperplano pode separar corretamente os casos em que a saída deve ser 1 daqueles em que a saída deve ser 0. Essa incapacidade de separar os casos corretamente é conhecida como "conjunto de casos de treinamento que não são linearmente separáveis."

Outro exemplo devastador para perceptrons envolve o reconhecimento de padrões que retêm sua identidade mesmo quando traduzidos com wraparound. Os perceptrons falham em discriminar entre padrões com o mesmo número de pixels se a discriminação precisar funcionar com padrões traduzidos e encapsulados. Essa limitação se torna aparente ao considerar os padrões A e B. O padrão A tem quatro pixels "ligados" dispostos em um formato semelhante ao de um código de barras, e o padrão B também tem quatro pixels "ligados" dispostos de maneira diferente. Quando traduzidos com wraparound, os perceptrons não podem aprender a discriminar entre esses padrões. O teorema de invariância de grupo de Minsky e Papert afirma que perceptrons não podem reconhecer padrões em tradução se o wraparound for permitido. Este teorema foi particularmente significativo na história dos perceptrons porque o reconhecimento de padrões visa identificar padrões apesar de transformações como a tradução.

O teorema revelou que os perceptrons, como foram originalmente formulados, são incapazes de lidar com tarefas de reconhecimento de padrões que requerem invariância de tradução com wraparound. Essa limitação restringiu muito suas aplicações práticas e levou a um declínio no interesse e na pesquisa sobre perceptrons durante o final dos anos 1960 e início dos anos 1970. No entanto, é importante observar que essas limitações se aplicam apenas a perceptrons de camada única com unidades de limite binário. O campo das redes neurais artificiais continuou a evoluir e superar essas limitações com o desenvolvimento de modelos mais avançados, como perceptrons multicamadas (MLPs) e redes neurais convolucionais (CNNs). Os MLPs introduzem camadas ocultas entre as camadas de entrada e saída, permitindo representações de recursos mais complexas e flexíveis. Ao incorporar funções de ativação não lineares e usar técnicas como retropropagação para ajuste de peso, os MLPs podem superar a limitação de separabilidade linear dos perceptrons de camada única.

As CNNs, por outro lado, foram projetadas especificamente para resolver o problema de reconhecimento de padrões e classificação de imagens. Eles empregam uma estrutura hierárquica com camadas convolucionais que extraem recursos locais e camadas de agrupamento que capturam a invariância espacial. As CNNs demonstraram um sucesso notável em tarefas como reconhecimento de imagem, detecção de objetos e processamento de linguagem natural.

As limitações dos perceptrons destacaram a importância do aprendizado de recursos, não linearidade e representações hierárquicas em redes neurais. Avanços subsequentes no campo levaram ao desenvolvimento de modelos mais sofisticados com capacidades de aprendizado aprimoradas e aplicações mais amplas.

Embora os perceptrons tenham limitações em sua capacidade de aprender recursos complexos e lidar com certas tarefas de reconhecimento de padrões, essas limitações foram abordadas por meio do desenvolvimento de arquiteturas de redes neurais mais avançadas. MLPs e CNNs, entre outros modelos, superaram as restrições dos perceptrons de camada única e se tornaram ferramentas poderosas em vários domínios da inteligência artificial.

Lecture 2.5 — What perceptrons can't do [Neural Networks for Machine Learning]
Lecture 2.5 — What perceptrons can't do [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 3.1 — Aprendendo os pesos de um neurônio linear



Aula 3.1 — Aprendendo os pesos de um neurônio linear [Redes neurais para aprendizado de máquina]

este vídeo apresenta o algoritmo de aprendizado para um neurônio linear, que atinge algo diferente do algoritmo de aprendizado para um perceptron. Em um perceptron, os pesos sempre se aproximam de um bom conjunto de pesos, enquanto em um neurônio linear, as saídas estão sempre se aproximando das saídas alvo.

O procedimento de convergência do perceptron garante que a alteração dos pesos nos aproxima de um bom conjunto de pesos. No entanto, essa garantia não pode ser estendida a redes mais complexas porque a média de dois conjuntos de pesos bons pode resultar em um conjunto de pesos ruim. Portanto, para redes neurais multicamadas, não usamos o procedimento de aprendizado perceptron, e a prova de melhoria durante o aprendizado também é diferente.

As redes neurais multicamadas, geralmente chamadas de perceptrons multicamadas (MLPs), exigem uma abordagem diferente para mostrar o progresso. Em vez de mostrar que os pesos se aproximam de um bom conjunto de pesos, demonstramos que os valores de saída reais se aproximam dos valores de saída de destino. Isso vale mesmo para problemas não convexos, onde a média dos pesos de duas boas soluções não produz uma boa solução.

O algoritmo de aprendizagem para um neurônio linear é ilustrado através de um exemplo de brinquedo. Envolve começar com estimativas aleatórias para os preços das porções e, em seguida, ajustar essas estimativas iterativamente para ajustar os preços observados. A abordagem iterativa usa a regra delta para atualizar os pesos com base na taxa de aprendizado, no número de porções e no erro residual.

A regra delta é derivada diferenciando a medida de erro em relação a um dos pesos. A regra de aprendizado afirma que a mudança em um peso é igual à taxa de aprendizado multiplicada pelo valor de entrada e a diferença entre as saídas de destino e reais. Aplicando iterativamente a regra delta, os pesos podem ser ajustados para minimizar o erro.

O procedimento de aprendizado usando a regra delta não garante que os pesos individuais sempre melhorem. No entanto, a diferença entre a meta e os resultados estimados tende a melhorar. A taxa de aprendizado determina a velocidade de aprendizado e, com uma taxa de aprendizado pequena o suficiente, os pesos podem se aproximar da melhor aproximação para os casos de treinamento fornecidos.

É importante observar que mesmo para sistemas lineares, o processo de aprendizado pode ser lento, especialmente quando as dimensões de entrada são altamente correlacionadas. Determinar quanto peso deve ser atribuído a cada dimensão de entrada torna-se um desafio nesses casos. Além disso, existe uma semelhança entre a versão online da regra delta e a regra de aprendizado do perceptron, onde o vetor de peso é ajustado com base no vetor de entrada e no erro. No entanto, a regra delta incorpora a taxa de aprendizado e o erro residual. Escolher uma taxa de aprendizado apropriada é crucial para um aprendizado estável e eficiente.

O processo de aprendizado iterativo descrito para o neurônio linear pode convergir para uma solução que minimize a medida de erro. No entanto, é importante observar que pode não haver uma solução perfeita que corresponda exatamente aos resultados desejados para todos os casos de treinamento. Em vez disso, o objetivo é encontrar um conjunto de pesos que forneça a melhor aproximação e minimize a medida de erro em todos os casos de treinamento. Ao tornar a taxa de aprendizado suficientemente pequena e permitir que o processo de aprendizado continue por um tempo suficientemente longo, podemos nos aproximar dessa melhor aproximação.

A velocidade de aprendizagem pode variar, mesmo para sistemas lineares. Quando duas dimensões de entrada são altamente correlacionadas, torna-se difícil determinar quanto peso deve ser atribuído a cada dimensão de entrada. Por exemplo, se o número de porções de ketchup e salgadinhos for sempre o mesmo, pode levar muito tempo para que o aprendizado atribua corretamente o preço a cada componente.

Curiosamente, existe uma relação entre a regra delta e a regra de aprendizado para perceptrons. A versão online da regra delta, onde os pesos são atualizados após cada caso de treinamento, tem semelhanças com a regra de aprendizado do perceptron. No aprendizado de perceptron, o vetor de peso é incrementado ou decrementado pelo vetor de entrada, mas somente quando ocorre um erro. Na versão online da regra delta, o vetor de peso também é ajustado pelo vetor de entrada, mas escalado pelo erro residual e pela taxa de aprendizado.

Um desafio ao usar a regra delta é selecionar uma taxa de aprendizado apropriada. Se a taxa de aprendizado for muito grande, o sistema pode se tornar instável, dificultando a convergência para uma solução. Por outro lado, se a taxa de aprendizado for muito pequena, o processo de aprendizado pode levar um tempo desnecessariamente longo para atingir um conjunto razoável de pesos.

O algoritmo de aprendizado para um neurônio linear visa minimizar o erro entre as saídas alvo e as saídas reais. Ele ajusta iterativamente os pesos usando a regra delta, que incorpora a taxa de aprendizado, os valores de entrada e a diferença entre as saídas de destino e reais. Embora o processo de aprendizado possa ser lento e os pesos possam não melhorar individualmente, o objetivo geral é abordar a melhor aproximação para os casos de treinamento fornecidos.

Lecture 3.1 — Learning the weights of a linear neuron [Neural Networks for Machine Learning]
Lecture 3.1 — Learning the weights of a linear neuron [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 3.2 — A superfície de erro para um neurônio linear



Aula 3.2 — A superfície de erro para um neurônio linear [Neural Networks for Machine Learning]

Neste vídeo, exploraremos a superfície de erro de um neurônio linear, que fornece informações sobre o processo de aprendizado. Ao visualizar essa superfície, podemos obter uma compreensão geométrica de como os pesos são aprendidos em um neurônio linear. O espaço que consideramos é semelhante ao espaço de peso usado em perceptrons, mas com uma dimensão adicional.

Imagine um espaço onde as dimensões horizontais representam os pesos e a dimensão vertical representa o erro. Nesse espaço, diferentes configurações de peso são representadas como pontos no plano horizontal, e a altura de cada ponto corresponde ao erro associado a essa configuração de peso, somado a todos os casos de treinamento. Para um neurônio linear, os erros para cada configuração de peso definem uma superfície de erro, que assume a forma de uma tigela quadrática. Uma seção transversal vertical da superfície de erro sempre produz uma parábola, enquanto uma seção transversal horizontal forma uma elipse. É importante observar que esse comportamento é válido apenas para sistemas lineares com erro quadrático. À medida que avançamos para redes neurais não lineares de várias camadas, a superfície de erro se torna mais complexa.

Enquanto os pesos permanecem dentro de uma faixa razoável, a superfície de erro permanece suave, mas pode ter vários mínimos locais. Para facilitar o aprendizado, empregamos a regra delta, que envolve o cálculo da derivada do erro em relação aos pesos. Ajustar os pesos proporcionalmente a esta derivada é equivalente a realizar a descida mais íngreme na superfície de erro. A visualização da superfície de erro de cima revela linhas de contorno elípticas. A regra delta nos guia perpendicularmente a essas linhas de contorno. No aprendizado em lote, onde o gradiente é calculado em todos os casos de treinamento, a regra delta nos leva na direção certa. No entanto, também podemos empregar o aprendizado online, onde os pesos são atualizados após cada caso de treinamento, semelhante aos perceptrons. Neste caso, a mudança de peso nos move em direção aos planos de restrição formados pelos casos de treinamento.

Alternando entre os casos de treinamento, podemos ziguezaguear em direção ao ponto de solução onde as linhas de restrição se cruzam, indicando os pesos que satisfazem ambos os casos. Além disso, examinar a superfície de erro nos permite entender as condições que resultam em aprendizado lento. Se a elipse que representa as linhas de contorno for altamente alongada, o que ocorre quando as linhas correspondentes a dois casos de treinamento são quase paralelas, o gradiente exibe uma propriedade desfavorável. O gradiente torna-se grande na direção em que não queremos ir longe e pequeno na direção em que queremos fazer um progresso significativo. Essa incompatibilidade impede o aprendizado eficiente e torna desafiador atravessar a estrutura semelhante a uma ravina da superfície de erro ao longo de seu eixo alongado.

A visualização da superfície de erro de um neurônio linear fornece informações valiosas sobre o processo de aprendizado. Compreender a geometria da superfície nos ajuda a entender o comportamento da regra delta e suas implicações para a velocidade de aprendizado.

Lecture 3.2 — The error surface for a linear neuron [Neural Networks for Machine Learning]
Lecture 3.2 — The error surface for a linear neuron [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 3.3 — Pesos de aprendizagem do neurônio de saída logística


Aula 3.3 — Pesos de aprendizado do neurônio de saída logística [Redes neurais para aprendizado de máquina]

Para estender a regra de aprendizado de um neurônio linear para redes multicamadas de neurônios não lineares, precisamos seguir duas etapas. Primeiro, precisamos generalizar a regra de aprendizado para um único neurônio não linear, especificamente um neurônio logístico. Embora os neurônios logísticos sejam usados como exemplo, outros tipos de neurônios não lineares também podem ser empregados.

Um neurônio logístico calcula seu logit, denotado como z, que é a soma de seu viés e a soma ponderada de suas linhas de entrada. A saída, denotada como y, é uma função não linear suave do logit. No gráfico, pode-se observar que a função se aproxima de zero quando z é grande e negativo, se aproxima de um quando z é grande e positivo e exibe mudanças suaves e não lineares entre eles. A continuidade da função logística fornece derivadas convenientes para o aprendizado. Para obter as derivadas de um neurônio logístico em relação aos pesos (o que é crucial para o aprendizado), primeiro calculamos a derivada do próprio logit em relação a um peso. Essa derivada é simplificada para o valor na linha de entrada, denotada como xi. Da mesma forma, a derivada do logit em relação a xi é o peso wi.

A derivada da saída em relação ao logit pode ser expressa em termos da própria saída. Especificamente, se a saída for representada como y, então dy/dz é dado por y * (1 - y). A derivação matemática desse resultado é fornecida no próximo slide e envolve cálculos tediosos, porém diretos. Tendo obtido a derivada da saída em relação ao logit e a derivada do logit em relação ao peso, podemos agora determinar a derivada da saída em relação ao peso. Aplicando a regra da cadeia, temos dz/dw como xi e dy/dz como y * (1 - y). Conseqüentemente, chegamos a uma regra de aprendizado para um neurônio logístico que se assemelha muito à regra delta.

A mudança no erro, denotado como de/dwi, conforme modificamos um peso, é obtida somando todos os casos de treinamento (n) o produto do valor em uma linha de entrada (xin) e o resíduo, que é a diferença entre a saída de destino e a saída real do neurônio. No entanto, existe um termo adicional decorrente da inclinação da função logística, a saber, yn * (1 - yn). Com esta ligeira modificação da regra delta, chegamos à regra de aprendizado de gradiente descendente para treinar um neurônio logístico.

Aplicando a regra de aprendizagem de gradiente descendente a um neurônio logístico, podemos efetivamente treinar redes multicamadas de neurônios não lineares. Isso estende a regra de aprendizado além dos sistemas lineares e nos permite lidar com tarefas mais complexas. Para entender como essa regra de aprendizado funciona no contexto de redes multicamadas, vamos considerar uma rede simples de duas camadas como exemplo. Temos uma camada de entrada com vários neurônios e uma camada de saída com um único neurônio logístico. Os pesos entre as camadas são denotados como W e os bias como b.

O processo de aprendizagem envolve duas etapas. Primeiro, calculamos a saída da rede para uma determinada entrada. Isso é feito propagando as entradas pela rede, aplicando a função logística à entrada total de cada neurônio (logit) e obtendo a saída final. Em seguida, calculamos os gradientes do erro em relação aos pesos usando a regra da cadeia. A partir da camada de saída, calculamos a derivada do erro em relação à saída, que é simplesmente a diferença entre a saída alvo e a saída real da rede. Em seguida, propagamos esse gradiente de erro para trás pela rede, multiplicando-o pela derivada da função logística em cada neurônio para obter os gradientes na camada oculta. Por fim, atualizamos os pesos usando os gradientes calculados e uma taxa de aprendizado. A taxa de aprendizagem determina o tamanho do passo na atualização do peso e pode ser ajustada para controlar a velocidade de aprendizagem. A atualização do peso segue a equação: ΔW = learning_rate * error_gradient * input, onde ΔW representa a mudança nos pesos.

Esse processo de propagação direta, retropropagação de erro e atualização de peso é repetido iterativamente por um determinado número de épocas ou até que a rede atinja um nível de desempenho desejado. Ao ajustar os pesos de forma iterativa, a rede aprende gradualmente a fazer melhores previsões ou classificar as entradas com mais precisão. É importante observar que a regra de aprendizado que discutimos para neurônios logísticos também pode ser generalizada para outros tipos de funções de ativação não lineares. A chave é calcular as derivadas das funções de ativação com precisão para propagar os gradientes de erro de forma eficaz pela rede.

Ao estender a regra de aprendizado de neurônios lineares para neurônios logísticos e aplicá-la a redes multicamadas, podemos treinar modelos não lineares complexos. Isso nos permite resolver uma ampla gama de tarefas, incluindo reconhecimento de padrões, classificação e regressão, ajustando iterativamente os pesos com base nos gradientes de erro.

Lecture 3.3 — Learning weights of logistic output neuron [Neural Networks for Machine Learning]
Lecture 3.3 — Learning weights of logistic output neuron [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 3.4 — O algoritmo de retropropagação



Aula 3.4 — O algoritmo de retropropagação [Redes neurais para aprendizado de máquina]

Agora que abordamos as preliminares, vamos nos aprofundar na questão central de aprender várias camadas de recursos. Neste vídeo, descreveremos finalmente o algoritmo de retropropagação, que surgiu na década de 1980 e despertou um aumento no interesse por redes neurais.

Antes de mergulharmos na retropropagação, vamos primeiro discutir outro algoritmo que não é tão eficaz, mas vale a pena mencionar. Uma vez que saibamos como aprender os pesos de uma unidade logística, o próximo desafio é aprender os pesos de unidades ocultas. As redes neurais sem unidades ocultas são limitadas nos mapeamentos de entrada-saída que podem modelar. Enquanto uma camada de recursos codificados manualmente, como em um perceptron, aumenta o poder da rede, projetar esses recursos para uma nova tarefa continua sendo um processo difícil e manual.

Idealmente, gostaríamos de automatizar o loop de design de recursos, permitindo que o computador encontre bons recursos sem exigir insights humanos ou repetidas tentativas e erros. É aqui que o conceito de aprender perturbando os pesos vem à mente. A perturbação aleatória de um peso é semelhante a uma mutação e podemos observar se isso melhora o desempenho da rede. Se o desempenho melhorar, economizamos essa mudança de peso, assemelhando-se a uma forma de aprendizado por reforço.

No entanto, este método é altamente ineficiente. Para avaliar se a alteração de um peso melhora a rede, são necessários vários passes diretos em um conjunto representativo de casos de treinamento. Avaliar o impacto de uma mudança de peso com base em um único caso de treinamento é inadequado. Além disso, à medida que o aprendizado avança, grandes mudanças nos pesos tendem a piorar as coisas, pois os valores relativos adequados entre os pesos são cruciais. No final do aprendizado, não apenas é demorado avaliar cada mudança de peso, mas as próprias mudanças devem ser pequenas.

Existem maneiras um pouco melhores de usar perturbações para aprendizado. Uma abordagem é perturbar todos os pesos em paralelo e então correlacionar o ganho de desempenho com as mudanças de peso. No entanto, este método não fornece uma melhoria significativa. O desafio está na necessidade de inúmeras tentativas com diferentes perturbações aleatórias de todos os pesos para isolar o efeito da mudança de um peso em meio ao ruído causado pela mudança dos outros.

Uma abordagem alternativa que mostra alguma melhoria é perturbar aleatoriamente as atividades das unidades ocultas em vez dos pesos. Uma vez determinado que perturbar a atividade de uma unidade oculta em um caso de treinamento específico melhora o desempenho, as alterações de peso podem ser calculadas. Como há menos atividades do que pesos, o algoritmo se torna mais eficiente. No entanto, o backpropagation ainda supera esses métodos em eficiência, com um fator igual ao número de neurônios na rede.

A ideia central por trás da retropropagação é que, embora não saibamos o que as unidades ocultas deveriam estar fazendo (daí o termo "oculto"), podemos calcular a rapidez com que o erro muda quando modificamos a atividade de uma unidade oculta em um caso de treinamento específico. Em vez de usar as atividades das unidades ocultas como estados desejados, utilizamos as derivadas de erro com relação às atividades. Como cada unidade oculta pode influenciar várias unidades de saída, seus efeitos precisam ser combinados, o que pode ser feito com eficiência.

Para resumir o algoritmo de retropropagação para um único caso de treinamento, começamos definindo o erro como a diferença quadrada entre os valores alvo das unidades de saída e os valores reais produzidos pela rede. Ao diferenciar esse erro, obtemos a expressão de como o erro muda em relação à saída de uma unidade de saída. Podemos então calcular as derivadas de erro para as unidades ocultas somando os efeitos de todas as conexões de saída da unidade oculta usando as derivadas de erro calculadas anteriormente da camada acima.

O algoritmo de retropropagação nos permite propagar as derivadas de erro de uma camada para a camada anterior de forma eficiente. Uma vez que tenhamos as derivadas de erro para as unidades ocultas, podemos calcular facilmente as derivadas de erro para os pesos que entram em uma unidade oculta. Isso é feito multiplicando a derivada do erro em relação à entrada total recebida pela unidade pela atividade da unidade na camada abaixo. As derivadas de erro calculadas para os pesos representam como o erro muda à medida que modificamos um determinado peso.

Agora, vamos descrever as etapas envolvidas no algoritmo de retropropagação para um único caso de treinamento:

  1. Defina o erro como a diferença quadrada entre os valores de destino e os valores de saída reais da rede.

  2. Calcule a derivada de erro em relação à saída de cada unidade de saída aplicando a regra da cadeia, que envolve a multiplicação da derivada da saída em relação à entrada total pela derivada de erro em relação à saída.

  3. Calcule a derivada do erro em relação à saída de cada unidade oculta somando os efeitos de todas as conexões de saída da unidade oculta. Isso envolve multiplicar o peso em cada conexão pela derivada de erro calculada na camada acima.

  4. Repita a etapa 3 para todas as camadas ocultas, propagando as derivadas de erro para trás pela rede.

  5. Calcule as derivadas de erro para os pesos que entram em cada unidade. Isso é feito multiplicando a derivada do erro em relação à entrada total recebida pela unidade pela atividade da unidade na camada abaixo.

Seguindo essas etapas, podemos calcular com eficiência as derivadas de erro para todos os pesos da rede com base em um único caso de treinamento. O algoritmo de retropropagação nos permite entender como a modificação de cada peso afeta o erro geral e facilita o processo de aprendizado. Compreender e implementar o algoritmo de retropropagação é crucial para treinar redes neurais profundas com várias camadas de recursos. Embora essa explicação possa exigir um estudo cuidadoso, a compreensão dos conceitos e cálculos subjacentes será essencial para a utilização eficaz da retropropagação no treinamento de redes neurais.

Depois de calcular as derivadas de erro para todos os pesos da rede usando o algoritmo de retropropagação, podemos usar essas informações para atualizar os pesos e melhorar o desempenho da rede. Este processo é conhecido como ajuste de peso ou atualização de peso. A atualização de ponderação geralmente envolve o uso de um algoritmo de otimização, como descida de gradiente, para ajustar iterativamente os pesos na direção que minimiza o erro. A ideia básica é atualizar cada peso subtraindo uma pequena fração de sua derivada de erro correspondente, multiplicada por um parâmetro de taxa de aprendizado.

A taxa de aprendizado determina o tamanho do passo no espaço de peso e afeta a velocidade de convergência do processo de treinamento. Escolher uma taxa de aprendizado apropriada é importante para garantir um aprendizado estável e eficiente. Uma taxa de aprendizado muito grande pode fazer com que os pesos diverjam, enquanto uma taxa de aprendizado muito pequena pode resultar em convergência lenta. Durante o processo de atualização de peso, é comum atualizar os pesos em pequenos lotes ou até mesmo em um único exemplo de treinamento por vez. Essa abordagem é conhecida como descida de gradiente estocástico ou descida de gradiente de mini-lote e ajuda a acelerar o processo de aprendizado e evitar ficar preso em ótimos locais.

O processo de atualização de peso é normalmente repetido para várias épocas, onde cada época consiste em passar por todo o conjunto de dados de treinamento. Isso permite que a rede ajuste gradualmente os pesos com base nos erros acumulados de vários exemplos de treinamento, melhorando seu desempenho de generalização. É importante observar que a retropropagação e a atualização de peso são realizadas durante a fase de treinamento de uma rede neural. Depois que a rede é treinada, ela pode ser usada para fazer previsões sobre dados novos e não vistos simplesmente alimentando a entrada pela rede e obtendo a saída.

A retropropagação e a capacidade de aprender várias camadas de recursos têm sido cruciais para o sucesso do aprendizado profundo. Com o algoritmo de retropropagação, as redes neurais podem aprender automaticamente representações complexas de dados, permitindo que resolvam uma ampla gama de tarefas, incluindo reconhecimento de imagem e fala, processamento de linguagem natural e muito mais.

O algoritmo de retropropagação é uma técnica poderosa para computar com eficiência derivadas de erro em redes neurais com múltiplas camadas. Ao propagar as informações de erro para trás através da rede, podemos determinar como as mudanças nos pesos afetam o erro geral. Esta informação é então usada para atualizar os pesos iterativamente, permitindo que a rede aprenda e melhore seu desempenho ao longo do tempo.

Lecture 3.4 — The backpropagation algorithm [Neural Networks for Machine Learning]
Lecture 3.4 — The backpropagation algorithm [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...