Propagação para Trás
Propagação para trás, ou backpropagation, é o processo de determinar como a função de perda varia em relação a cada parâmetro da rede neural. O objetivo é ajustar esses parâmetros de forma a reduzir a perda total.
Esse processo depende do algoritmo de gradiente descendente, que utiliza as derivadas da perda em relação aos valores de pré-ativação de cada camada (os resultados brutos antes da aplicação da função de ativação) e as propaga para trás pela rede.
Como cada camada contribui para a previsão final, os gradientes são calculados passo a passo:
- Realizar a propagação para frente para obter as saídas;
- Calcular a derivada da perda em relação à pré-ativação da saída;
- Propagar essa derivada para trás pelas camadas usando a regra da cadeia;
- Calcular e utilizar os gradientes para pesos e vieses para atualizá-los durante o treinamento.
Gradientes representam a taxa de variação de uma função em relação às suas entradas, ou seja, são suas derivadas. Eles indicam quanto uma pequena alteração nos pesos, vieses ou ativações afeta a função de perda, orientando o processo de aprendizado do modelo por meio do gradiente descendente.
Notação
Para tornar a explicação mais clara, vamos usar a seguinte notação:
- Wl é a matriz de pesos da camada l;
- bl é o vetor de vieses da camada l;
- zl é o vetor de pré-ativações da camada l;
- al é o vetor de ativações da camada l;
Portanto, definindo a0 como x (as entradas), a propagação para frente em um perceptron com n camadas pode ser descrita pela seguinte sequência de operações:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Para descrever a retropropagação matematicamente, introduzindo as seguintes notações:
- dal: derivada da perda em relação às ativações na camada l;
- dzl: derivada da perda em relação às pré-ativações na camada l (antes de aplicar a função de ativação);
- dWl: derivada da perda em relação aos pesos na camada l;
- dbl: derivada da perda em relação aos biases na camada l.
Cálculo dos Gradientes para a Camada de Saída
Na camada final n, o primeiro passo é calcular o gradiente da perda em relação às ativações da camada de saída, denotado como dan.
Em seguida, utilizando a regra da cadeia, o gradiente da perda em relação às pré-ativações da camada de saída é calculado como:
dzn=dan⊙f′n(zn)Aqui, f′n(zn) representa a derivada da função de ativação na camada n, e o símbolo ⊙ denota multiplicação elemento a elemento.
O símbolo ⊙ denota multiplicação elemento a elemento, o que significa que cada elemento de um vetor é multiplicado pelo elemento correspondente de outro vetor. Em contraste, o símbolo ⋅ representa o produto escalar, utilizado para multiplicação padrão de matrizes ou vetores. O termo f′n refere-se à derivada da função de ativação na camada de saída.
Este valor indica o quão sensível a função de perda é em relação às mudanças nos valores de pré-ativação da camada de saída.
Após calcular dzn, o próximo passo é determinar os gradientes para os pesos e vieses:
dWndbn=dzn⋅(an−1)T,=dznEsses gradientes descrevem quanto cada peso e viés na camada de saída deve ser ajustado para reduzir a perda.
Aqui, (an−1)T é o vetor de ativação transposto da camada anterior. Se o vetor original possui a forma nneurons×1, sua transposta possui a forma 1×nneurons.
Para continuar a propagação para trás, a derivada da perda em relação às ativações da camada anterior é calculada como:
dan−1=(Wn)T⋅dznEsta expressão permite que o sinal de erro seja propagado para trás na rede, possibilitando o ajuste das camadas anteriores durante o treinamento.
Propagação dos Gradientes para as Camadas Ocultas
Para cada camada oculta l o procedimento é o mesmo. Dado dal:
- Calcular a derivada da perda em relação às pré-ativações;
- Calcular os gradientes para os pesos e vieses;
- Calcular dal−1 para propagar a derivada para trás.
Esse processo é repetido para cada camada anterior, passo a passo, até que a camada de entrada seja alcançada.
Atualização de Pesos e Vieses
Após o cálculo dos gradientes para todas as camadas, os pesos e vieses são atualizados utilizando o algoritmo de gradiente descendente:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Aqui, α representa a taxa de aprendizado, que controla o quanto os parâmetros são ajustados a cada etapa de treinamento.
Aqui, α é a taxa de aprendizado, um hiperparâmetro que determina o tamanho do ajuste aplicado aos pesos e vieses durante cada etapa de atualização.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain how the chain rule is applied in backpropagation?
What is the difference between pre-activations and activations in a neural network?
Can you provide an example of calculating gradients for a simple neural network?
Awesome!
Completion rate improved to 4
Propagação para Trás
Deslize para mostrar o menu
Propagação para trás, ou backpropagation, é o processo de determinar como a função de perda varia em relação a cada parâmetro da rede neural. O objetivo é ajustar esses parâmetros de forma a reduzir a perda total.
Esse processo depende do algoritmo de gradiente descendente, que utiliza as derivadas da perda em relação aos valores de pré-ativação de cada camada (os resultados brutos antes da aplicação da função de ativação) e as propaga para trás pela rede.
Como cada camada contribui para a previsão final, os gradientes são calculados passo a passo:
- Realizar a propagação para frente para obter as saídas;
- Calcular a derivada da perda em relação à pré-ativação da saída;
- Propagar essa derivada para trás pelas camadas usando a regra da cadeia;
- Calcular e utilizar os gradientes para pesos e vieses para atualizá-los durante o treinamento.
Gradientes representam a taxa de variação de uma função em relação às suas entradas, ou seja, são suas derivadas. Eles indicam quanto uma pequena alteração nos pesos, vieses ou ativações afeta a função de perda, orientando o processo de aprendizado do modelo por meio do gradiente descendente.
Notação
Para tornar a explicação mais clara, vamos usar a seguinte notação:
- Wl é a matriz de pesos da camada l;
- bl é o vetor de vieses da camada l;
- zl é o vetor de pré-ativações da camada l;
- al é o vetor de ativações da camada l;
Portanto, definindo a0 como x (as entradas), a propagação para frente em um perceptron com n camadas pode ser descrita pela seguinte sequência de operações:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Para descrever a retropropagação matematicamente, introduzindo as seguintes notações:
- dal: derivada da perda em relação às ativações na camada l;
- dzl: derivada da perda em relação às pré-ativações na camada l (antes de aplicar a função de ativação);
- dWl: derivada da perda em relação aos pesos na camada l;
- dbl: derivada da perda em relação aos biases na camada l.
Cálculo dos Gradientes para a Camada de Saída
Na camada final n, o primeiro passo é calcular o gradiente da perda em relação às ativações da camada de saída, denotado como dan.
Em seguida, utilizando a regra da cadeia, o gradiente da perda em relação às pré-ativações da camada de saída é calculado como:
dzn=dan⊙f′n(zn)Aqui, f′n(zn) representa a derivada da função de ativação na camada n, e o símbolo ⊙ denota multiplicação elemento a elemento.
O símbolo ⊙ denota multiplicação elemento a elemento, o que significa que cada elemento de um vetor é multiplicado pelo elemento correspondente de outro vetor. Em contraste, o símbolo ⋅ representa o produto escalar, utilizado para multiplicação padrão de matrizes ou vetores. O termo f′n refere-se à derivada da função de ativação na camada de saída.
Este valor indica o quão sensível a função de perda é em relação às mudanças nos valores de pré-ativação da camada de saída.
Após calcular dzn, o próximo passo é determinar os gradientes para os pesos e vieses:
dWndbn=dzn⋅(an−1)T,=dznEsses gradientes descrevem quanto cada peso e viés na camada de saída deve ser ajustado para reduzir a perda.
Aqui, (an−1)T é o vetor de ativação transposto da camada anterior. Se o vetor original possui a forma nneurons×1, sua transposta possui a forma 1×nneurons.
Para continuar a propagação para trás, a derivada da perda em relação às ativações da camada anterior é calculada como:
dan−1=(Wn)T⋅dznEsta expressão permite que o sinal de erro seja propagado para trás na rede, possibilitando o ajuste das camadas anteriores durante o treinamento.
Propagação dos Gradientes para as Camadas Ocultas
Para cada camada oculta l o procedimento é o mesmo. Dado dal:
- Calcular a derivada da perda em relação às pré-ativações;
- Calcular os gradientes para os pesos e vieses;
- Calcular dal−1 para propagar a derivada para trás.
Esse processo é repetido para cada camada anterior, passo a passo, até que a camada de entrada seja alcançada.
Atualização de Pesos e Vieses
Após o cálculo dos gradientes para todas as camadas, os pesos e vieses são atualizados utilizando o algoritmo de gradiente descendente:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Aqui, α representa a taxa de aprendizado, que controla o quanto os parâmetros são ajustados a cada etapa de treinamento.
Aqui, α é a taxa de aprendizado, um hiperparâmetro que determina o tamanho do ajuste aplicado aos pesos e vieses durante cada etapa de atualização.
Obrigado pelo seu feedback!