Como um modelo realmente treina — um ritmo por botão, e memória.

SRC·45 Source
A descida simples usa um único passo para um bilhão de botões.

A descida simples usa um único passo para um bilhão de botões.

A descida de gradiente tem um botão que você ajusta à mão: o tamanho do passo. Ela usa esse mesmo número para mover cada peso do modelo — todo o bilhão, de forma idêntica. Mas as encostas em que eles estão são radicalmente diferentes. Os bons otimizadores resolvem isso dando a cada peso o seu próprio ritmo — e uma breve memória da direção que vinha seguindo.
A inclinação que você mede treme — siga-a crua e você cambaleia.

A inclinação que você mede treme — siga-a crua e você cambaleia.

A inclinação de cada passo é lida a partir de só um punhado de exemplos, então ela treme — apontando um pouco errado toda vez. Siga-a crua e você desce aos tropeços. Como uma biruta sob rajadas cruzadas: ela salta para um novo ângulo a cada rajada, e nenhum tranco isolado revela o vento constante por trás deles.
Não persiga cada inclinação. Siga a média corrente delas.

Não persiga cada inclinação. Siga a média corrente delas.

mt=β1mt1+(1β1)gtm_t = \beta_1\, m_{t-1} + (1-\beta_1)\, g_t
Não persiga cada inclinação nervosa. Mantenha uma mistura corrente — na maior parte o seu rumo antigo, cutucado pela leitura mais nova. O tremor se cancela; a direção verdadeira se firma. Como um pedregulho pesado rolando ladeira abaixo: ele alisa cada solavanco e mantém a linha. Essa mistura é o momentum: o próximo rumo é quase para onde você ia, inclinado um pouco em direção à inclinação mais recente.
Um único passo não serve para um bilhão de botões diferentes.

Um único passo não serve para um bilhão de botões diferentes.

θt+1=θtηgt\theta_{t+1} = \theta_t - \eta\, g_t
Eis a armadilha que a descida simples nunca conserta. Esse único passo η multiplica a inclinação de cada botão da mesma forma. Mas alguns ficam em encostas íngremes e violentas que pedem passos minúsculos e cuidadosos; outros, em encostas planas e calmas, poderiam dar passadas largas. Como uma única marcha de bicicleta para cada ladeira: ótima no plano, brutal na subida, preguiçosa na descida. Uma só razão — um único η compartilhado — não serve para todos.
Então dê a cada botão o seu próprio ritmo — definido pela sua própria aspereza.

Então dê a cada botão o seu próprio ritmo — definido pela sua própria aspereza.

vt=β2vt1+(1β2)gt2,η~t=ηvt+ϵv_t = \beta_2\, v_{t-1} + (1-\beta_2)\, g_t^{2}, \qquad \tilde{\eta}_t = \dfrac{\eta}{\sqrt{v_t}+\epsilon}
Então dê a cada botão o seu próprio ritmo. Acompanhe o quão áspera tem sido a sua inclinação — uma média corrente do seu gradiente ao quadrado — e divida o passo desse botão por ela. Botões cujas inclinações se sacodem são contidos; os calmos ficam livres para se mover. Como lixar ao redor de um nó: alivie e avance devagar onde as fibras resistem, deslize rápido onde é liso. Em poucas palavras: uma inclinação recente grande encolhe o passo ali; uma pequena deixa-o crescer.
As duas médias começam em zero, então os primeiros passos saem pequenos demais.

As duas médias começam em zero, então os primeiros passos saem pequenos demais.

m^t=mt1β1t,v^t=vt1β2t\hat{m}_t = \dfrac{m_t}{1-\beta_1^{\,t}}, \qquad \hat{v}_t = \dfrac{v_t}{1-\beta_2^{\,t}}
Um percalço. As duas médias correntes começam em zero, então nos primeiros passos elas saem pequenas demais — não porque as inclinações sejam pequenas, mas porque a contagem mal começou. Como um pote de moedas começado vazio esta semana: o total corrente parece minúsculo só porque partiu do nada. A correção divide essa vantagem inicial, ampliando cada média enquanto ela é jovem — uma correção que se desfaz à medida que a contagem enche.
Rumo firme, passada botão a botão — é esse o otimizador inteiro.

Rumo firme, passada botão a botão — é esse o otimizador inteiro.

θt=θt1ηm^tv^t+ϵ\theta_t = \theta_{t-1} - \eta\, \dfrac{\hat{m}_t}{\sqrt{\hat{v}_t}+\epsilon}
Junte tudo. O momentum escolhe a direção — o rumo suavizado, sem tremor. O ritmo por botão escolhe cada passada — longa onde a inclinação está calma, curta onde ela se agita. Uma única linha faz as duas coisas. Como um canoísta lendo uma corredeira: mantenha a linha da corrente principal, mas dose cada remada — suave na água lisa, firme onde ferve. Esse é o Adam, o otimizador que treina quase tudo (tipicamente β₁=0.9, β₂=0.999).
🌱 Mesma colina, mesmo começo — mas foi o otimizador que escolheu o vale.

🌱 Mesma colina, mesmo começo — mas foi o otimizador que escolheu o vale.

O momentum e o ritmo por botão fazem com que o caminho ladeira abaixo não seja mais o do relevo — é o do otimizador. Largue dois deles exatamente no mesmo ponto, na mesmíssima colina, e uma memória mais pesada ou um ritmo mais ousado pode levar cada um a um vale diferente. Então, quando o treino para, encontramos o fundo — ou apenas aquele para o qual o nosso momentum acabou nos rolando?
toque →deslize ↑ para maisdeslize ↓ para sair