Otimização de descida de gradiente


9

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.y^yw1,w2w1w2w1w1w2

Respostas:


10

A descida do gradiente atualiza todos os parâmetros em cada etapa. Você pode ver isso na regra de atualização:

w(t+1)=w(t)ηf(w(t)).

Como o gradiente da função de perda é avaliado em vetor com a dimensão correspondente à de , todos os parâmetros são atualizados a cada iteração.f(w)w

A taxa de aprendizado é um número positivo que redimensiona o gradiente. Dar um passo muito grande pode fazer com que você salte incessantemente pela superfície da perda sem melhorar sua função de perda; Um passo muito pequeno pode significar um progresso tediosamente lento em direção ao ideal.η

Embora você possa estimar parâmetros de regressão linear usando descida de gradiente, não é uma boa ideia.

Da mesma forma, existem melhores maneiras de estimar os coeficientes de regressão logística.


Portanto, o algoritmo pode tentar diferentes combinações, como aumentar w1, diminuir com w2base 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?
Pb89 # 22/18

e a derivada parcial também ajuda a explicar quanto aumento ou redução deve ser feito w1e / w2ou que é feito pela taxa de aprendizado / retração, enquanto a derivada parcial fornece apenas a direção da descida?
Pb89 # 22/18

O gradiente é um vetor, portanto, fornece uma direção e uma magnitude. Um vetor pode ser redimensionado arbitrariamente por um escalar positivo e terá a mesma direção, mas o redimensionamento alterará sua magnitude.
Sycorax diz Reinstate Monica

Se a magnitude também é dada pelo gradiente, qual é o papel do encolhimento ou da taxa de aprendizado?
Pb89 # 22/18

A taxa de aprendizado redimensiona o gradiente. Suponha que tenha uma norma grande (comprimento). Dar um grande passo o levará a uma parte distante da superfície de perda (saltando de uma montanha para outra). A justificativa central da descida do gradiente é que é uma aproximação linear nas proximidades de . Essa aproximação é sempre inexata, mas provavelmente é pior quanto mais longe você se move - portanto, você quer dar pequenos passos, portanto, usa alguns pequenos , onde 'pequeno' é totalmente específico do problema. f(x)w(t)η
Sycorax diz Reinstate Monica

7

Quando a otimização ocorre através de derivadas parciais, em cada turno ela muda w1 e w2 ou é uma combinação, como em poucas iterações, apenas w1 é alterada e quando w1 não reduz mais o erro, a derivada começa com w2 - para alcançar os mínimos locais?

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?


1

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:

  1. inicialize pesos aleatoriamente.
  2. calcule a função de custo e o gradiente com pesos inicializados.
  3. atualizar pesos: pode acontecer que o gradiente seja O para alguns pesos; nesse caso, esses pesos não mostram nenhuma alteração após a atualização. por exemplo: Digamos que o gradiente seja [1,0], o W2 permanecerá inalterado.
  4. verifique a função de custo com pesos atualizados, se o decréscimo for aceitável o suficiente, continue as iterações terminando.

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).


"se o decréscimo for aceitável o suficiente, continue as iterações terminando", existe um valor padrão que é aplicado nos pacotes de python ( sklearn) ou nos pacotes R, como caret? Pode ser especificado pelo usuário apenas em uma função de descida de gradiente criada manualmente?
Pb89 # 22/18

1

O gradiente decente é aplicado a ambos w1e w2a 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 .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.