Estou usando o tensorflow para escrever redes neurais simples para um pouco de pesquisa e tive muitos problemas com pesos 'nan' durante o treinamento. Tentei muitas soluções diferentes, como alterar o otimizador, alterar a perda, o tamanho dos dados, etc., mas sem sucesso. Por fim, notei que uma mudança na taxa de aprendizado fez uma diferença inacreditável nos meus pesos.
Usando uma taxa de aprendizado de 0,001 (que eu considerava bastante conservadora), a função minimizar aumentaria exponencialmente a perda. Após uma época, a perda poderia saltar de um número na casa dos milhares para um trilhão e depois para o infinito ('nan'). Quando reduzi a taxa de aprendizado para 0,0001, tudo funcionou bem.
1) Por que uma única ordem de magnitude tem esse efeito?
2) Por que a função minimizar realiza literalmente o oposto de sua função e maximiza a perda? Parece-me que isso não deveria ocorrer, independentemente da taxa de aprendizado.