Discussão do artigo "Redes Neurais de Maneira Fácil(Parte 7): Métodos de otimização adaptativos" - página 2

 

TempData.Add((double)((buy || sell) ? 0 : 1));//Undef

O Undefine, como no código anterior, não pode escrever 0,5 em vez de 0 para reduzir o número de indefinidos?

 

Ótimo e excelente trabalho, Dimitry! Seu esforço nesse caso é imenso.

E obrigado por compartilhar.

Uma pequena observação:

Experimentei o script, mas a retropropagação é executada antes do feedforward.

Minha sugestão seria fazer o feedforward primeiro e depois retropropagar o resultado correto.

Se os resultados corretos forem retropropagados depois de saber o que a rede pensa, você poderá ver uma redução nos fractais ausentes. Até 70% dos resultados poderiam ser refinados.


Também,

fazer isso:

TempData.Add((double)((!buy && !sell) ? 0.5 : 0));

poderia resultar em uma rede treinada prematuramente. portanto, devemos evitar isso.

Para o aprendizado da rede,

podemos começar com o otimizador Adam e uma taxa de aprendizado de0,001 e iterá-lo ao longo das épocas.

(ou)

para encontrar uma taxa de aprendizado melhor, podemos usar o teste de intervalo LR (LRRT)


Digamos que, se os padrões não estiverem funcionando, o melhor método para encontrar uma boa taxa de aprendizagem é o teste de faixa de taxa de aprendizagem.

  1. Comece com uma taxa de aprendizado muito pequena (por exemplo,1e-7).

  2. Em cada lote de treinamento, aumente gradualmente a taxa de aprendizagem exponencialmente.

  3. Registre a perda de treinamento em cada etapa.

  4. Trace o gráfico da perda versus a taxa de aprendizado.

  5. Observe o gráfico. A perda diminuirá, depois se estabilizará e, de repente, aumentará. (a próxima taxa de aprendizado imediata é a ideal após esse aumento)

Precisamos da taxa de aprendizado mais rápida em que a perda ainda esteja diminuindo de forma consistente.

Mais uma vez, obrigado