Determinar a taxa de aprendizado ideal para a descida do gradiente na regressão linear

9

Como determinar a taxa de aprendizado ideal para a descida do gradiente? Estou pensando em poder ajustá-lo automaticamente se a função cost retornar um valor maior do que na iteração anterior (o algoritmo não convergirá), mas não tenho muita certeza de qual novo valor deve ser utilizado.

Valentin Radu
fonte
willamette.edu/~gorr/classes/cs449/momrate.html Tentando recozimento com uma forma de adaptação da taxa local: µ (t) = µ (0) / (1 + t / T); Incremento t quando o sinal do erro mudar.
Chris

Respostas:

2

(Anos depois) procure o método de tamanho de passo Barzilai-Borwein; onmyphd.com tem uma boa descrição de 3 páginas. O autor diz

essa abordagem funciona bem, mesmo para grandes problemas dimensionais

mas é terrível para o applet da função 2d Rosenbrock. Se alguém usa Barzilai-Borwein, comente.

denis
fonte
1

Você está no caminho certo. Uma abordagem comum é dobrar o tamanho do degrau sempre que você der um degrau bem sucedido em declive e reduzir pela metade o tamanho do degrau quando acidentalmente for "longe demais". Você pode escalar por outro fator que não seja 2, é claro, mas geralmente não fará muita diferença.

Métodos de otimização mais sofisticados provavelmente irão acelerar bastante a convergência, mas se você tiver que rolar sua própria atualização por algum motivo, o exposto acima é atrativamente simples e muitas vezes bom o suficiente.

Desenhou
fonte
Eu estava pensando em multiplicar / dividir por dois também. No entanto, estou preocupado que a multiplicação por dois sempre que ocorrer uma etapa bem-sucedida acabe com muito mais iterações. Eu esperava que houvesse uma maneira de fazer isso usando o gradiente, pois ele fornece algumas informações sobre a inclinação da inclinação.
Valentin Radu
x
Se você está lidando com um processo estacionário subjacente, a taxa máxima de aprendizado é governada pelo espectro da matriz de correlação, certo?
estrela brilhante