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.
regression
machine-learning
gradient-descent
Valentin Radu
fonte
fonte
Respostas:
(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
mas é terrível para o applet da função 2d Rosenbrock. Se alguém usa Barzilai-Borwein, comente.
fonte
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.
fonte