Dissipando mitos sobre aprendizado profundo - como as redes neurais aprendem?

Em antecipação ao início do curso “Deep Learning. Basic ” preparou uma tradução de um material interessante para você.








O aprendizado profundo tem contribuído imensamente para o progresso e aumento da inteligência artificial que vemos hoje em dia no mundo todo. As tarefas que a inteligência artificial está realizando agora, como classificação de texto e imagem, segmentação de instância, responder a perguntas com base em dados de texto, compreensão de leitura e muito mais, eram ficção científica no passado, mas agora estão se tornando mais úteis e cada vez mais imitadas. humanos devido ao uso de redes neurais profundas.



Como as redes neurais lidam com essas tarefas complexas? O que acontece sob as camadas infinitas de bits de operações matemáticas que preenchem essas redes?





Uma Rede Neural Simples



Vamos cavar um pouco mais fundo e entender conceitualmente os fundamentos das redes neurais profundas.



Primeiro, vamos falar sobre o algoritmo usado pela maioria (se não todas) das redes neurais para aprender a partir dos dados de treinamento. Os dados de treinamento nada mais são do que dados anotados por humanos, ou seja, imagens marcadas no caso de classificação de imagens ou sentimentos marcados na análise de sentimento.



E é chamado de algoritmo de retropropagação de erro.

Abaixo está uma breve visão geral da estrutura das redes neurais:



As redes neurais transformam os dados de entrada em saída de uma determinada maneira. Os dados de entrada podem ser imagens, fragmentos de texto, etc. Os dados de entrada são convertidos em sua representação numérica: por exemplo, em imagens, cada pixel é codificado com um valor numérico dependendo de sua posição, e no texto, cada palavra é um vetor de números, que é uma representação vetorial de uma palavra (em tal vetor, cada número é uma estimativa de uma característica específica de uma palavra) ou um vetor unidimensional (um vetor n- dimensional consistindo em n-1 zeros e um um, onde a posição de um apontará para a palavra selecionada).



Essa entrada numérica é então passada por uma rede neural (usando uma técnica conhecida como retropropagação de um erro), que por baixo do capô tem várias etapas de multiplicação por pesos na rede, adicionando deslocamentos e passando por uma função de ativação não linear. Esta etapa de propagação direta é realizada para cada entrada nos dados de treinamento rotulados, e a precisão da rede é calculada usando uma função conhecida como função de perda ou função de custo. O objetivo da rede é minimizar a função de perda, ou seja, maximizar sua precisão. Inicialmente, a rede passa a trabalhar com um valor aleatório dos parâmetros (pesos e vieses), a seguir aumenta gradativamente sua precisão e minimiza as perdas, continuando a melhorar esses parâmetros a cada iteração por propagação direta nos dados de treinamento.A atualização de pesos e tendências (magnitude e direção positiva ou negativa) é determinada pelo algoritmo de retropropagação. Vamos examinar o algoritmo de retropropagação e entender como ele ajuda as redes neurais a “aprender” e minimizar a perda de dados de treinamento.





Propagação direta em uma rede neural profunda



A essência da retropropagação de erro é descobrir como cada parâmetro deve ser alterado para se ajustar melhor aos dados de treinamento (ou seja, minimizar as perdas e maximizar a precisão da previsão). O método para determinar esses valores é bastante simples:





Na imagem acima, o eixo Y é uma função de perda e o eixo X é algum parâmetro (peso) na rede. O valor inicial do peso deve ser reduzido para atingir o mínimo local. Mas como a rede entende que o peso precisa ser reduzido para fazer isso? A rede dependerá da inclinação da função no ponto de partida.



Como você consegue a inclinação? Se você estudou matemática, sabe que a inclinação de uma função em um ponto é dada por sua derivada. Voila! Agora podemos calcular a inclinação e, portanto, a direção da mudança (positiva ou negativa) do peso. O valor do peso é atualizado iterativamente e acabamos com o mínimo.



A dificuldade surge quando os pesos não estão diretamente relacionados à função de perda, como é o caso das redes neurais profundas. É aqui que entra a conhecida regra da cadeia.





Por exemplo, na figura acima mostra que o resultado Y não dependem directamente do valor de entrada X , mas X passa através de F , e, em seguida, através de L antes para dar um valor de saída Y . Usando a regra da cadeia, você pode escrever a derivada de G em relação a X , indicando a dependência de G de F , onde F depende de X... Essa regra pode ser aplicada para redes de qualquer comprimento com a derivada resultante e, portanto, a inclinação para qualquer valor de saída em relação à entrada, obtida como o produto das derivadas de todas as etapas pelas quais passa o valor de entrada. Esta é a essência da retropropagação do erro, onde a derivada / inclinação do valor de saída com relação a cada parâmetro é obtida multiplicando as derivadas durante a passagem para trás pela rede até que a derivada direta do parâmetro seja encontrada, razão pela qual o método é chamado de retropropagação.



Isso é tudo. Para saber mais sobre o curso, convidamos você a se inscrever no dia aberto no link abaixo:






All Articles