No contexto das redes neurais, qual é a diferença entre a taxa de aprendizado e a queda de peso?
No contexto das redes neurais, qual é a diferença entre a taxa de aprendizado e a queda de peso?
Respostas:
A taxa de aprendizado é um parâmetro que determina o quanto uma etapa de atualização influencia o valor atual dos pesos. Embora a redução de peso seja um termo adicional na regra de atualização de peso que faz com que os pesos decaem exponencialmente para zero, se nenhuma outra atualização estiver agendada.
Então, digamos que temos uma função de custo ou erro que queremos minimizar. A descida em gradiente nos diz para modificar os pesos na direção da descida mais íngreme em : onde é a taxa de aprendizado e, se for grande, você terá uma modificação correspondentemente grande dos pesos (em geral, não deve ser muito grande, caso contrário, você excederá o mínimo local em sua função de custo).w E w i ← w i - η ∂ E
Para limitar efetivamente o número de parâmetros livres em seu modelo, a fim de evitar o excesso de ajuste, é possível regularizar a função de custo. Uma maneira fácil de fazer isso é introduzir um Gaussiano médio zero acima dos pesos, o que equivale a alterar a função de custo para . Na prática, isso penaliza grandes pesos e limita efetivamente a liberdade em seu modelo. O parâmetro de regularização determina como você troca o custo original com a penalização de grandes pesos.
Aplicando gradiente descendente a essa nova função de custo, obtemos: O novo termo proveniente da regularização faz com que o peso decaia na proporção de seu tamanho.
Além da resposta de @mrig (+1), para muitas aplicações práticas de redes neurais, é melhor usar um algoritmo de otimização mais avançado, como Levenberg-Marquardt (redes de pequeno e médio porte) ou descida em gradiente conjugado em escala (médio-grande redes), pois elas serão muito mais rápidas e não há necessidade de definir a taxa de aprendizado (ambos os algoritmos adaptam essencialmente a taxa de aprendizado usando curvatura e gradiente). Qualquer pacote ou biblioteca de rede neural decente terá implementações de um desses métodos, qualquer pacote que não o faça provavelmente será obsoleto. Eu uso a biblioteca do NETLAB para o MATLAB, que é um ótimo kit.
Eu termos simples:
learning_rate: controla com que rapidez ou lentidão um modelo de rede neural aprende um problema.
ref: https://machinelearningmastery.com/learning-rate-for-deep-learning-neural-networks/
wight_decay: É uma técnica de regularização usada para evitar ajustes excessivos.
ref: https://metacademy.org/graphs/concepts/weight_decay_neural_networks