Entrenamiento de redes neuronales

La propagación inversa es el algoritmo de entrenamiento más común en las redes neuronales. Permite que el descenso de gradientes sea factible para las redes neuronales de varias capas. TensorFlow controla la propagación inversa automáticamente, por lo que no necesitas un conocimiento profundo del algoritmo. Para tener una idea de cómo funciona, repasa la explicación visual sobre el algoritmo de propagación inversa. A medida que te desplazas por la explicación anterior, ten en cuenta lo siguiente:

  • Cómo fluyen los datos por el gráfico.
  • Cómo la programación dinámica nos permite evitar calcular exponencialmente muchas rutas a través del gráfico Aquí, "programación dinámica" solo significa registrar resultados intermedios en los movimientos hacia adelante y hacia atrás.

Entrenamiento de las redes neuronales

  • Los gradientes son importantes
    • Si son diferenciables, probablemente podamos aprender de ellos.
  • Los gradientes son importantes
    • Si son diferenciables, probablemente podamos aprender de ellos.
  • Los gradientes pueden desaparecer
    • Cada capa adicional puede reducir de forma sucesiva la señal frente al ruido
    • Las ReLus son útiles en este caso
  • Los gradientes son importantes
    • Si son diferenciables, probablemente podamos aprender de ellos.
  • Los gradientes pueden desaparecer
    • Cada capa adicional puede reducir de forma sucesiva la señal frente al ruido
    • Las ReLus son útiles en este caso
  • Los gradientes pueden crecer demasiado
    • En este caso, las tasas de aprendizaje son importantes
    • La normalización por lotes (ajuste útil) puede ser de ayuda
  • Los gradientes son importantes
    • Si son diferenciables, probablemente podamos aprender de ellos.
  • Los gradientes pueden desaparecer
    • Cada capa adicional puede reducir de forma sucesiva la señal frente al ruido
    • Las ReLus son útiles en este caso
  • Los gradientes pueden crecer demasiado
    • En este caso, las tasas de aprendizaje son importantes
    • La normalización por lotes (ajuste útil) puede ayudar
  • Las capas de ReLU pueden quedar en cero
    • Mantén la calma y reduce las tasas de aprendizaje
  • Queremos que nuestros atributos tengan escalas razonables
    • Un rango aproximadamente centrado en el cero, [-1, 1] a menudo funciona bien.
    • Ayuda a la convergencia del descenso de gradientes; evita la trampa de NaN.
    • Evitar los valores atípicos también puede ser útil.
  • Puedes usar algunos métodos estándar:
    • Escalamiento lineal
    • Límite fijo (recorte) en máx., mín.
    • Escalamiento de registros
  • La regularización de retirados es otra forma de regularización que resulta útil para las redes neuronales.
  • Funciona al "extraer" unidades de forma aleatoria en una red para un solo paso de gradiente.
    • Hay una conexión para ensamblar modelos aquí
  • Mientras más extraiga, mejor será la regularización
    • 0.0 = no se usa la regularización de retirados
    • 1.0 = se retira todo y no se aprende nada
    • Los valores intermedios son más útiles.