Respostas:
O algoritmo de propagação traseira é um algoritmo de descida de gradiente para ajustar um modelo de rede neural. (como mencionado por @Dikran) Deixe-me explicar como.
Formalmente: o uso do cálculo do gradiente no final deste post na equação [1] abaixo (que é uma definição da descida do gradiente) fornece o algoritmo de propagação de retorno como um caso particular do uso de uma descida de gradiente.
Um modelo de rede neural Formalmente, corrigimos idéias com um modelo simples de camada única:
, onde g : R → R e s : R H → R H são conhecidos por todos m = 1 ... , M , s ( x ) [ m ] = σ ( x [ m ] ) e
Uma função de perda quadrática é usada para corrigir idéias. Portanto, os vetores de entrada de R p podem ser ajustados à saída real ( y 1 , … , y n ) de R (poderiam ser vetores) minimizando a perda empírica: R n ( A 1 , A 2 ) = n ∑ i = 1 ( y i - f ( i no que diz respeito à escolha de A 1 e A 2 .
Descida em gradiente Uma descida em grande escala para minimizar é um algoritmo que itera: a l + 1 = a l - γ l ∇ R ( a l ) , l ≥ 0. para tamanhos de passo bem escolhidos ( γ l ) l (também chamado taxa de aprendizado no âmbito da propagação traseira). Ele exige o cálculo do gradiente de R . No caso considerado a l = ( A 1 l , A 2
A retropropagação é uma maneira de calcular a derivada da função de erro com relação aos pesos, para que o modelo possa ser treinado por métodos de otimização de descida de gradiente - é basicamente apenas a aplicação da "regra da cadeia". Na verdade, não há muito mais do que isso; portanto, se você se sente confortável com o cálculo, é basicamente a melhor maneira de analisá-lo.
Se você não se sentir confortável com o cálculo, uma maneira melhor seria dizer que sabemos quão mal estão as unidades de saída, porque temos uma saída desejada com a qual comparar a saída real. No entanto, não temos uma saída desejada para as unidades ocultas, então o que fazemos? A regra de retropropagação é basicamente uma maneira de expressar a culpa pelo erro das unidades de saída nas unidades ocultas. Quanto mais influência uma unidade oculta tem sobre uma determinada unidade de saída, mais culpa ela recebe pelo erro. A culpa total associada a uma unidade oculta fornece uma indicação de quanto os pesos da camada de entrada para oculta precisam ser alterados. As duas coisas que governam quanta culpa é passada é o peso que conecta os pesos da camada oculta e da saída (obviamente) e a saída da unidade oculta (se ela estiver gritando ao invés de sussurrar, é provável que tenha uma influência maior). O resto são apenas as sutilezas matemáticas que transformam essa intuição na derivada do critério de treinamento.
Eu também recomendaria o livro dos Bispos para uma resposta adequada! ; o)
É um algoritmo para o treinamento de redes neurais de múltiplas camadas (perceptrons de múltiplas camadas). Existem vários applets Java legais na Web que ilustram o que está acontecendo, como este: http://neuron.eng.wayne.edu/bpFunctionApprox/bpFunctionApprox.html . Além disso, o livro de Bishop sobre NNs é a referência padrão para qualquer coisa relacionada a NNs.