Como treinar redes neurais

A retropropagação é o algoritmo de treinamento mais comum para redes neurais. Ele torna o gradiente descendente viável para redes neurais de várias camadas. O TensorFlow lida com a retropropagação automaticamente, para que você não precise entender profundamente o algoritmo. Para ter uma noção de como ele funciona, consulte: Explicação visual do algoritmo de retropropagação. Ao navegar pela explicação anterior, observe o seguinte:

  • Como os dados fluem pelo gráfico.
  • Como a programação dinâmica nos permite evitar calcular exponencialmente muitos caminhos no gráfico. Aqui, "programação dinâmica" significa apenas registrar resultados intermediários nos passes para frente e para trás.

Como treinar redes neurais

  • Os gradientes são importantes
    • Se for diferenciável, podemos aprender sobre ele
  • Os gradientes são importantes
    • Se for diferenciável, podemos aprender sobre ele
  • Os gradientes podem sumir
    • Cada camada adicional pode reduzir o indicador em comparação com o ruído de maneira sucessiva
    • ReLus são úteis aqui
  • Os gradientes são importantes
    • Se for diferenciável, podemos aprender sobre ele
  • Os gradientes podem sumir
    • Cada camada adicional pode reduzir o indicador em comparação com o ruído de maneira sucessiva
    • ReLus são úteis aqui
  • Os gradientes podem explodir
    • As taxas de aprendizado são importantes neste caso
    • Pode ser útil fazer a normalização em lote (botão útil)
  • Os gradientes são importantes
    • Se for diferenciável, podemos aprender sobre ele
  • Os gradientes podem sumir
    • Cada camada adicional pode reduzir o indicador em comparação com o ruído de maneira sucessiva
    • ReLus são úteis aqui
  • Os gradientes podem explodir
    • As taxas de aprendizado são importantes neste caso
    • Pode ser útil fazer a normalização em lote (botão útil)
  • Camadas ReLu podem morrer
    • Mantenha a calma e diminua suas taxas de aprendizado
  • Gostaríamos que nossos recursos tivessem escalas razoáveis
    • Baseado em zero, o intervalo [-1, 1] costuma funcionar bem.
    • Ajuda o gradiente descendente a convergir; evita a armadilha do NaN.
    • Evitar valores atípicos também pode ajudar
  • É possível usar alguns métodos padrão:
    • Dimensionamento linear
    • Limite fixo (recorte) para máximo e mínimo
    • Dimensionamento logarítmico
  • Dropout: outra forma de regularização, útil para redes neurais
  • Funciona com a "eliminação" aleatória de unidades em uma rede para uma única etapa do gradiente
    • Há uma conexão com modelos ensemble aqui
  • Quanto maior o dropout, mais forte a regularização
    • 0,0 = sem regularização de dropout
    • 1,0 = dropout total! não aprende nada
    • Valores intermediários mais úteis