Esta página se tradujo automáticamente con la API de traducción de Google Cloud.
Algunas páginas se pueden leer mejor en su totalidad.
En esta publicación, aprenderemos sobre la optimización de impulso, una técnica para entrenar redes neuronales que puede ayudarnos a entrenarlas más rápido y evitar quedar atrapados en mínimos locales.
La optimización de impulso es una técnica para entrenar redes neuronales que puede ayudarnos a entrenarlas más rápido y evitar quedar atrapados en mínimos locales. La idea es agregar un término de impulso a la ecuación de actualización de gradiente. Este término de impulso es como una "masa" que puede ayudar a que el proceso de entrenamiento "se mueva" más suavemente.
El término de impulso generalmente se establece en un valor entre 0 y 1. Un valor de 0 significa que el término de impulso no se usa en absoluto, mientras que un valor de 1 significa que el término de impulso se usa al máximo.
TensorFlow.js es una biblioteca de JavaScript para entrenar e implementar modelos de aprendizaje automático. Podemos usar TensorFlow.js para entrenar nuestros modelos usando optimización de momento.
Para utilizar la optimización de momento en TensorFlow.js, debemos establecer el parámetro optimizador
de la función model.compile()
en 'sgd'
. Luego podemos establecer el parámetro momentum
en el valor deseado.
Aquí hay un ejemplo:
const model = tf.sequential();
model.add(tf.layers.dense({units: 10, inputShape: [5]}));
model.add(tf.layers.dense({units: 1}));
model.compile({
optimizer: 'sgd',
momentum: 0.9
});
En este ejemplo, hemos configurado el parámetro optimizer
en 'sgd'
para usar el descenso de gradiente estocástico con optimización de momento. También hemos establecido el parámetro momentum
en 0.9
. Esto significa que el término de impulso se utilizará con un peso de 0,9.
Hay dos ventajas principales de utilizar la optimización de momento:
Puede ayudarnos a entrenar a nuestros modelos más rápido.
Puede ayudarnos a evitar quedar atrapados en mínimos locales.
Hay dos situaciones principales en las que podríamos querer utilizar la optimización del impulso:
Cuando queremos entrenar más rápido a nuestros modelos.
Cuando queremos evitar quedar atrapados en mínimos locales.
También hay dos situaciones en las que es posible que no deseemos utilizar la optimización del impulso:
Cuando queremos que nuestro entrenamiento sea más estable.
Cuando queremos que nuestro entrenamiento sea más fiable.
Estos son algunos consejos para utilizar la optimización de impulso:
Comience con un valor de impulso bajo y aumente gradualmente.
Utilice un valor de impulso de 0,9 si no está seguro.
Use un valor de impulso de 1.0 solo si está seguro de que no hará que su entrenamiento se desvíe.
Si su entrenamiento es divergente, intente disminuir el valor de impulso.
Si su entrenamiento es demasiado lento, intente aumentar el valor de impulso.
Guía para principiantes sobre redes neuronales y aprendizaje profundo
Aprendizaje profundo para principiantes: elegir el optimizador adecuado
[Cómo entrenar su red neuronal rápidamente con Momentum Optimization] (https://machinelearningmastery.com/how-to-train-your-neural-network-quickly-with-momentum-optimization/)