Gradiente descendente e otimizadores
O que um passo de gradiente realmente faz, por que uma taxa de aprendizado grande demais provoca divergência e o que momentum e Adam mudam na prática.
Gradiente descendente e otimizadores
Treinar uma rede é buscar o mínimo de uma função cuja forma nunca veremos. Ela vive em um espaço com milhões de dimensões, não podemos traçá-la, não podemos explorá-la de forma exaustiva e não temos nenhuma garantia de que ela possua um único mínimo. Tudo o que temos, em um dado ponto, é a direção de maior inclinação. Avançamos no sentido oposto e recomeçamos. Esse é o algoritmo inteiro.
Essa pobreza aparente é enganosa. O comportamento dessa descida depende de um ajuste — o tamanho do passo — cujo valor errado produz dois fracassos radicalmente diferentes e frequentemente confundidos: pequeno demais, o modelo estagna e acreditamos que o problema está na arquitetura; grande demais, a perda dispara para o infinito ou fica presa em um platô e acreditamos que há um bug. Um profissional experiente reconhece qual dos dois está acontecendo olhando três valores de perda.
Existe uma segunda fonte de confusão, mais insidiosa. O Adam, o otimizador padrão de fato, funciona tão bem em tantos problemas que acabamos esquecendo o que ele faz. Só que suas escolhas implícitas — a média móvel, a normalização pela raiz do segundo momento, a correção de viés — têm consequências precisas, e existem situações em que elas prejudicam.