Estou tentando entender a otimização da descida do gradiente nos algoritmos de ML (aprendizado de máquina). Entendo que existe uma função de custo - em que o objetivo é minimizar o erro . Em um cenário em que os pesos estão sendo otimizados para fornecer o erro mínimo e derivadas parciais estão sendo usadas, ele altera e em cada etapa ou é uma combinação (por exemplo, em poucas iterações, apenas é alterado e quando não está mais reduzindo o erro, a derivada começa com )? O aplicativo pode ser um modelo de regressão linear, um modelo de regressão logística ou algoritmos de aumento.
w1
, diminuir comw2
base na direção da derivada parcial para atingir mínimos locais e apenas para confirmar que o algoritmo não fornecerá sempre os mínimos globais sempre?w1
e /w2
ou que é feito pela taxa de aprendizado / retração, enquanto a derivada parcial fornece apenas a direção da descida?Em cada iteração, o algoritmo altera todos os pesos ao mesmo tempo, com base no vetor de gradiente. De fato, o gradiente é um vetor. O comprimento do gradiente é igual ao número de pesos no modelo.
Por outro lado, a alteração de um parâmetro de cada vez existia e é chamada de algoritmo de coordenadas decentes , que é um tipo de algoritmo de otimização sem gradiente . Na prática, pode não funcionar tão bem quanto o algoritmo baseado em gradiente.
Aqui está uma resposta interessante sobre o algoritmo livre de gradiente
É possível treinar uma rede neural sem retropropagação?
fonte
O objetivo da descida do gradiente é minimizar a função de custo. Essa minimização é alcançada ajustando os pesos para o seu caso w1 e w2. Em geral, pode haver n tais pesos.
A descida do gradiente é feita da seguinte maneira:
enquanto a atualização dos pesos cujo peso (W1 ou W2) é alterado é totalmente decidida por gradiente. Todos os pesos são atualizados (alguns pesos podem não mudar com base no gradiente).
fonte
sklearn
) ou nos pacotes R, comocaret
? Pode ser especificado pelo usuário apenas em uma função de descida de gradiente criada manualmente?O gradiente decente é aplicado a ambos
w1
ew2
a cada iteração. Durante cada iteração, os parâmetros são atualizados de acordo com os gradientes. Eles provavelmente teriam diferentes derivadas parciais.Confira aqui .
fonte