toco O que é Retropropagação? - Unite.AI
Entre em contato
Masterclass de IA:

AI 101

O que é Retropropagação?

mm
Atualização do on

O que é Retropropagação?

Os sistemas de aprendizado profundo são capazes de aprender padrões extremamente complexos e conseguem isso ajustando seus pesos. Como os pesos de uma rede neural profunda são ajustados exatamente? Eles são ajustados através um processo chamado retropropagação. Sem retropropagação, as redes neurais profundas não seriam capazes de realizar tarefas como reconhecer imagens e interpretar linguagem natural. Compreender como funciona a retropropagação é fundamental para a compreensão das redes neurais profundas em geral, então vamos discutir a retropropagação e ver como o processo é usado para ajustar os pesos de uma rede.

A retropropagação pode ser difícil de entender e os cálculos usados ​​para realizá-la podem ser bastante complexos. Este artigo se esforçará para fornecer uma compreensão intuitiva da retropropagação, usando pouco em termos de matemática complexa. No entanto, é necessária alguma discussão sobre a matemática por trás da retropropagação.

O objetivo da retropropagação

Vamos começar definindo o objetivo da retropropagação. Os pesos de uma rede neural profunda são a força das conexões entre as unidades de uma rede neural. Quando a rede neural é estabelecida, são feitas suposições sobre como as unidades em uma camada estão conectadas às camadas unidas a ela. À medida que os dados se movem pela rede neural, os pesos são calculados e as suposições são feitas. Quando os dados atingem a camada final da rede, é feita uma previsão sobre como os recursos estão relacionados às classes no conjunto de dados. A diferença entre os valores previstos e os valores reais é a perda/erro e o objetivo da retropropagação é reduzir a perda. Isso é feito ajustando os pesos da rede, tornando as suposições mais parecidas com os verdadeiros relacionamentos entre os recursos de entrada.

Treinando uma Rede Neural Profunda

Antes que a retropropagação possa ser feita em um rede neural, o passe de treinamento regular/avançado de uma rede neural deve ser realizado. Quando uma rede neural é criada, um conjunto de pesos é inicializado. O valor dos pesos será alterado à medida que a rede for treinada. O passo de treinamento direto de uma rede neural pode ser concebido como três etapas distintas: ativação do neurônio, transferência do neurônio e propagação direta.

Ao treinar uma rede neural profunda, precisamos fazer uso de várias funções matemáticas. Os neurônios em uma rede neural profunda são compostos pelos dados recebidos e uma função de ativação, que determina o valor necessário para ativar o nó. O valor de ativação de um neurônio é calculado com vários componentes, sendo uma soma ponderada das entradas. Os pesos e valores de entrada dependem do índice dos nós que estão sendo usados ​​para calcular a ativação. Outro número deve ser levado em consideração ao calcular o valor de ativação, um valor de viés. Os valores de viés não flutuam, então eles não são multiplicados junto com o peso e as entradas, eles são apenas adicionados. Tudo isso significa que a seguinte equação pode ser usada para calcular o valor de ativação:

Ativação = soma (peso * entrada) + viés

Depois que o neurônio é ativado, uma função de ativação é usada para determinar qual será a saída da saída real do neurônio. Diferentes funções de ativação são ideais para diferentes tarefas de aprendizado, mas as funções de ativação comumente usadas incluem a função sigmoide, a função Tanh e a função ReLU.

Uma vez que as saídas do neurônio são calculadas executando o valor de ativação através da função de ativação desejada, a propagação direta é feita. A propagação direta é apenas pegar as saídas de uma camada e transformá-las nas entradas da próxima camada. As novas entradas são então usadas para calcular as novas funções de ativação, e a saída desta operação é passada para a camada seguinte. Esse processo continua até o final da rede neural.

Retropropagação na rede

O processo de retropropagação considera as decisões finais do passo de treinamento de um modelo e, em seguida, determina os erros nessas decisões. Os erros são calculados comparando as saídas/decisões da rede e as saídas esperadas/desejadas da rede.

Uma vez calculados os erros nas decisões da rede, essa informação é retropropagada pela rede e os parâmetros da rede são alterados ao longo do caminho. O método que é usado para atualizar os pesos da rede é baseado em cálculo, especificamente, é baseado na regra da cadeia. No entanto, uma compreensão do cálculo não é necessária para entender a ideia de backpropagation. Apenas saiba que quando um valor de saída é fornecido por um neurônio, a inclinação do valor de saída é calculada com uma função de transferência, produzindo uma saída derivada. Ao fazer retropropagação, o erro para um neurônio específico é calculado de acordo com o seguinte Fórmula:

error = (expected_output – actual_output) * inclinação do valor de saída do neurônio

Ao operar nos neurônios na camada de saída, o valor da classe é usado como o valor esperado. Após o erro ter sido calculado, o erro é usado como entrada para os neurônios na camada oculta, o que significa que o erro para esta camada oculta é o erro ponderado dos neurônios encontrados na camada de saída. Os cálculos de erro viajam para trás através da rede ao longo da rede de pesos.

Após o cálculo dos erros da rede, os pesos da rede devem ser atualizados. Conforme mencionado, o cálculo do erro envolve a determinação da inclinação do valor de saída. Após o cálculo da inclinação, um processo conhecido como gradiente descendente pode ser usado para ajustar os pesos na rede. Um gradiente é uma inclinação cujo ângulo/inclinação pode ser medido. A inclinação é calculada traçando “y over” ou a “subida” sobre o “curso”. No caso da rede neural e da taxa de erro, “y” é o erro calculado, enquanto “x” são os parâmetros da rede. Os parâmetros da rede têm uma relação com os valores de erro calculados e, à medida que os pesos da rede são ajustados, o erro aumenta ou diminui.

“Descida de gradiente” é o processo de atualização dos pesos para que a taxa de erro diminua. A retropropagação é usada para prever a relação entre os parâmetros da rede neural e a taxa de erro, que configura a rede para gradiente descendente. O treinamento de uma rede com gradiente descendente envolveu o cálculo dos pesos por meio da propagação direta, a retropropagação do erro e a atualização dos pesos da rede.

Blogueiro e programador com especialidades em Machine Learning e Aprendizagem profunda tópicos. Daniel espera ajudar outras pessoas a usar o poder da IA ​​para o bem social.