Une bibliothèque logicielle open-source pour l’intelligence artificielle et l’apprentissage machine s’appelle TensorFlow. Bien qu’elle puisse être appliquée à de nombreuses tâches, le training et l’inférence de réseaux neuronaux profonds sont particulièrement mis en avant.
TensorFlow a été créé par Google Brain, la division de recherche en intelligence artificielle de l’entreprise. Depuis sa première mise en ligne en 2015, elle s’est hissée au rang des bibliothèques d’apprentissage machine les plus largement utilisées dans le monde.
Python, C++ et Java sont quelques-uns des langages de programmation avec lesquels TensorFlow est accessible. De plus, elle est compatible avec plusieurs systèmes d’exploitation, notamment Linux, macOS, Windows, Android et iOS.
TensorFlow est un outil efficace pour l’apprentissage machine et l’intelligence artificielle. Elle offre de nombreuses fonctionnalités et est facile à utiliser. TensorFlow est un excellent point de départ si l’apprentissage machine vous intéresse.
TensorFlow est une bibliothèque flexible pouvant être appliquée à de nombreux types de tâches, telles que :
- Classification d’images
- Traitement du langage naturel
- Reconnaissance vocale
- Systèmes de recommandation
- Robotique
- Imagerie médicale
- Prévision financière
Le taux d’apprentissage dans TensorFlow est un hyperparamètre qui régule la fréquence à laquelle les poids du modèle sont modifiés pendant la formation. Le meilleur nombre variera en fonction des particularités du problème à résoudre, de l’architecture du modèle et de la taille du jeu de données. Il est souvent choisi comme une petite valeur positive, telle que 0,001 ou 0,01, mais ce n’est pas toujours le cas.
Comment modifier le taux d’apprentissage de TensorFlow
Vous pouvez modifier le taux d’apprentissage dans TensorFlow à l’aide de diverses méthodes et stratégies. Voici trois approches courantes:
Assignement manuel du taux d’apprentissage
En entrant manuellement une nouvelle valeur dans la variable du taux d’apprentissage, celui-ci peut être modifié de la manière la plus simple possible. Cette méthode spécifie le taux d’apprentissage comme une variable TensorFlow ou une variable Python, et sa valeur est mise à jour pendant la formation. Par exemple:
import tensorflow as tf
# Définir la variable du taux d'apprentissage
learning_rate = tf.Variable(0.001, trainable=False)
# Pendant la formation, mettre à jour le taux d'apprentissage si nécessaire
# Par exemple, définir un nouveau taux d'apprentissage de 0,0001
tf.keras.backend.set_value(learning_rate, 0.0001)
Le code ci-dessus explique comment entrer manuellement une nouvelle valeur dans la variable du taux d’apprentissage de TensorFlow pour modifier le taux d’apprentissage. Les étapes sont répertoriées ci-dessous:
Définir la variable pour le taux d’apprentissage:
learning_rate = tf.Variable(0.001, trainable=False)
Cette ligne crée une variable TensorFlow appelée learning_rate
et l’initialise avec une valeur initiale de 0,001. L’argument trainable=False
garantit que la variable du taux d’apprentissage n’est pas mise à jour pendant la formation.
Mettre à jour le taux d’apprentissage si nécessaire:
tf.keras.backend.set_value(learning_rate, 0.0001)
Dans cet exemple, la fonction set_value
de tf.keras.backend
est utilisée pour mettre à jour la valeur de la variable taux d’apprentissage. Le premier argument est la variable à mettre à jour (learning_rate
), et le second argument est la nouvelle valeur du taux d’apprentissage (0.0001
dans ce cas).
Vous pouvez réguler quand et comment le taux d’apprentissage change en mettant à jour manuellement la variable taux d’apprentissage tout au long de la formation. Vous pouvez expérimenter avec différentes configurations, changer le taux d’apprentissage en fonction de circonstances spécifiques, ou même créer votre propre plan de taux d’apprentissage.
Dans cette méthode, vous avez un contrôle total sur le taux d’apprentissage, mais vous devez le modifier manuellement selon vos besoins.
Plans de Taux d’Apprentissage
Vous pouvez modifier systématiquement le taux d’apprentissage pendant la formation en utilisant des plans de taux d’apprentissage. Plusieurs plans de taux d’apprentissage intégrés sont disponibles dans TensorFlow, notamment :
tf.keras.optimizers.schedules.ExponentialDecay
, tf.keras.optimizers.schedules.PiecewiseConstantDecay
, ou tf.keras.optimizers.schedules.CosineDecay
. Ces horaires modifient la vitesse d’apprentissage selon des règles prédéfinies. Par exemple :
import tensorflow as tf
# Définir un plan de taux d'apprentissage
learning_rate_schedule = tf.keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate=0.001,
decay_steps=10000,
decay_rate=0.96
)
# Créer un optimiseur avec le plan de taux d'apprentissage
optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate_schedule)
Le fragment de code ci-dessus illustre comment utiliser le plan de taux d’apprentissage ExponentialDecay
dans TensorFlow. Voici une explication de ce que fait chaque paramètre :
initial_learning_rate
: Le taux d’apprentissage initial au début de la formation.decay_steps
: Le nombre de pas après lesquels le taux d’apprentissage diminuera.decay_rate
: Le taux auquel le taux d’apprentissage diminuera. Par exemple, sidecay_rate
est défini sur 0,96, le taux d’apprentissage sera multiplié par 0,96 pour chaquedecay_steps
étape.
Pour créer un optimiseur avec le calendrier du taux d’apprentissage, vous devez transmettre l’objet learning_rate_schedule
en tant que paramètre learning_rate
à l’optimiseur. Dans votre code, vous utilisez l’optimiseur Adam
, mais vous pouvez également utiliser ce calendrier de taux d’apprentissage avec d’autres optimiseurs.
En utilisant le calendrier de taux d’apprentissage ExponentialDecay
, le taux d’apprentissage diminuera progressivement au fil du temps, permettant à l’ensemble du modèle de converger plus efficacement pendant l’entraînement. Ajustez les valeurs de initial_learning_rate
, decay_steps
et decay_rate
en fonction de vos besoins spécifiques et des caractéristiques de vos données d’entraînement.
Cette méthode élimine la nécessité d’une intervention manuelle en ajustant automatiquement le taux d’apprentissage en fonction du calendrier défini.
Callbacks
TensorFlow fournit également un mécanisme de rappel qui vous permet de modifier dynamiquement le taux d’apprentissage en fonction de certaines conditions. Par exemple, vous pouvez utiliser le rappel tf.keras.callbacks.LearningRateScheduler
pour définir un calendrier de taux d’apprentissage personnalisé ou le rappel tf.keras.callbacks.ReduceLROnPlateau
pour réduire le taux d’apprentissage lorsque la perte de validation atteint un plateau. Voici un exemple :
import tensorflow as tf
# Définir un rappel pour modifier dynamiquement le taux d'apprentissage
lr_callback = tf.keras.callbacks.ReduceLROnPlateau(
monitor='val_loss',
factor=0.1,
patience=5,
min_lr=0.0001
)
# Pendant l'entraînement du modèle, passer le rappel à la fonction fit()
model.fit(
x_train, y_train,
validation_data=(x_val, y_val),
callbacks=[lr_callback]
)
Le code ci-dessus montre comment utiliser le rappel ReduceLROnPlateau
pour modifier dynamiquement le taux d’apprentissage pendant l’entraînement du modèle. Voici une explication de ce que fait chaque paramètre :
monitor
: La métrique à surveiller. Dans ce cas, elle est définie sur ‘val_loss
,’ ce qui signifie que le rappel surveillera la perte de validation.factor
: Le facteur entraînant une diminution du taux d’apprentissage. Si la condition fournie est satisfaite, par exemple, si le facteur est réglé sur 0,1, le taux d’apprentissage sera multiplié par 0,1.patience
: Le nombre d’époques sans amélioration, après lequel le taux d’apprentissage sera réduit. Si la perte de validation ne s’améliore pas pendantpatience
nombre d’époques, le taux d’apprentissage sera diminué.min_lr
: La valeur minimale à laquelle le taux d’apprentissage peut être réduit. Une fois que le taux d’apprentissage atteint cette valeur minimale, il ne sera plus diminué.
Pour utiliser ce rappel, vous le passerez en paramètre à la fonction fit()
lors de l’entraînement de votre modèle. Assurez-vous de remplacer x_train
, y_train
, x_val
, et y_val
par vos données d’entraînement et de validation réelles.
model.fit(
x_train, y_train,
validation_data=(x_val, y_val),
callbacks=[lr_callback]
)
Lors de l’entraînement, le rappel ReduceLROnPlateau
surveillera la perte de validation, et si elle ne s’améliore pas pendant patience
nombre d’époques, le taux d’apprentissage sera réduit du facteur spécifié. Cela permet une ajustement adaptatif du taux d’apprentissage en fonction des performances du modèle pendant l’entraînement.
Avec les rappels, vous disposez d’une liberté accrue pour modifier le taux d’apprentissage en réponse à des circonstances ou événements particuliers pendant l’entraînement.
Voici quelques moyens courants de modifier le taux d’apprentissage de TensorFlow. La méthode que vous utilisez dépendra des exigences et des cas d’utilisation que vous avez.
Conclusion
Le meilleur calendrier de taux d’apprentissage pour votre modèle dépendra des données et de l’architecture du modèle. Vous pouvez expérimenter avec différents calendriers pour trouver celui qui convient le mieux à votre modèle.
Source:
https://dzone.com/articles/how-to-change-the-learning-rate-of-tensorflow