Importance des techniques d'optimisation
Dans mon parcours d'apprentissage des techniques d'apprentissage automatique et d'apprentissage en profondeur, qui se poursuit toujours, j'ai compris l'importance des techniques d'optimisation. J'ai juste senti qu'il était très important de documenter cela pour ma référence afin que ce soit un rappel régulier chaque fois que je le verrai. Il ne s'agit pas seulement de former le modèle ou d'obtenir un résultat après avoir transmis l'ensemble de données au modèle. Il s'agit de l'investigation et de la compréhension des nuances d'optimisation qui se produisent en arrière-plan du modèle pour obtenir le meilleur résultat.
Qu'il s'agisse d'un modèle d'apprentissage automatique ou d'un réseau de neurones d'apprentissage en profondeur, les deux doivent atteindre ou converger vers les minima globaux. Il est maintenant possible d'effectuer un réglage hyper-paramètre pour trouver le meilleur résultat (faible perte ou haute précision). Mais l'art du réglage des hyperparamètres ne peut être réalisé avec une efficacité maximale que si la théorie de l'optimisation est parfaitement comprise.
De manière générale, le but de l'optimisation est de trouver la meilleure solution possible pour un ensemble de problèmes donné avec les contraintes fournies. Par conséquent, un problème d'optimisation se compose de 3 composants de base - la fonction objective, les variables et les contraintes.
Fonction objectif - Une fonction qui doit être maximisée ou minimisée en fonction de l'énoncé du problème et de l'application. Un problème qui n'a qu'une seule fonction objectif est appelé un problème d'optimisation à objectif unique . Un problème qui a plusieurs fonctions objectifs est appelé un problème d'optimisation multi-objectifs .
Variables — Il s'agit de valeurs inconnues qui représentent à la fois la fonction objective et les contraintes. Le but de l'optimisation est de trouver des valeurs appropriées pour ces variables. Un problème qui n'a qu'une seule variable est appelé un problème d'optimisation à une seule variable . Un problème à plusieurs variables est appelé un problème d'optimisation à plusieurs variables .
Contraintes -Ce sont des restrictions fournies par l'énoncé du problème et sont représentées par un ensemble de variables. La solution optimisée doit être obtenue dans les limites des contraintes. L'ensemble des solutions satisfaites par toutes les contraintes est appelé solutions réalisables . Un problème qui a des contraintes est appelé un problème d'optimisation sous contraintes . Un problème qui n'a pas de contraintes est appelé un problème d'optimisation sans contraintes .
Pour en savoir plus sur les types d'algorithmes d'optimisation et les différentes méthodes basées sur les problèmes qui sont en italique ci-dessus, je me suis référé au livre Optimization for Engineering Design de Kalyanmoy Deb. Cela m'a donné une idée de la façon de penser dans une perspective d'optimisation. J'ai compris la procédure de divers algorithmes et méthodes d'optimisation et je l'ai implémentée en python, que vous pouvez trouver ici .
La formulation de la fonction objectif est l'un des aspects importants lors de la résolution de tout problème, qui pourrait même appartenir au domaine de l'apprentissage automatique ou de l'apprentissage en profondeur. Cette fonction objectif peut aussi être appelée fonction de coût et est parfois délicate à développer. Convertir un problème donné en problème d'optimisation est également important pour comprendre et interpréter le problème sous un angle différent. Cela nous aidera à atteindre systématiquement l'objectif souhaité et à obtenir les meilleurs résultats.
Exemple : Formulation d'un problème d'optimisation
Voyons un exemple de formulation d'un problème d'optimisation dans le domaine de l'apprentissage profond. L'application prise ici est celle des véhicules autonomes.
L'une des tâches d'un véhicule autonome est de contrôler la direction. Par conséquent, il est crucial pour le véhicule ou le modèle d'apprentissage en profondeur de prédire l'angle de braquage à un instant donné.
L'énoncé du problème consiste à prédire l'angle de braquage d'un véhicule autonome à l'aide de techniques d'apprentissage en profondeur. Ainsi, à un niveau élevé, nous formerons un modèle d'apprentissage en profondeur qui prédira l'angle de braquage, à partir d'une image d'entrée de la route.
Supposons qu'il s'agit d'un problème d'optimisation. Ici, la fonction objectif serait-
Où Yi(cap) est l'angle de braquage prédit par le modèle d'apprentissage en profondeur et Yi est l'angle de braquage réel. Le but est de minimiser l'erreur entre ces deux valeurs. Ici, l'erreur est connue sous le nom d'erreur quadratique moyenne.
Les variables seraient-
Yi(cap) et Yi qui sont déjà indiqués ci-dessus.
Maintenant, la formation des contraintes dépendra du type de véhicule utilisé. Cela dépend aussi si nous utilisons un simulateur ou un véhicule réel pour atteindre notre objectif. En supposant que l'angle de braquage peut effectuer une rotation complète dans le sens des aiguilles d'une montre et dans le sens inverse des aiguilles d'une montre,
Les contraintes seraient-
Où Yi est l'angle de braquage réel dans la plage indiquée ci-dessus. Cependant, cela dépendra du type de véhicule utilisé et variera également si un simulateur est utilisé.
Nous avons donc formulé notre problème d'optimisation. Nous pouvons maintenant découvrir la technique d'optimisation appropriée pour obtenir le résultat souhaité, qui consiste à minimiser notre erreur. Divers algorithmes peuvent être utilisés, ici Gradient Descent serait un algorithme d'optimisation approprié pour minimiser notre erreur. Cet algorithme est largement utilisé dans le domaine du deep learning.
Conclusion
Dans cet article, l'importance des techniques d'optimisation et un exemple de conversion d'un énoncé de problème en un problème d'optimisation ont été discutés. Vous pouvez consulter mes implémentations de différents algorithmes d'optimisation ici . N'hésitez pas à me faire part de vos retours et commentaires afin que je puisse m'améliorer. J'espère que vous avez pris autant de plaisir à lire celui-ci que j'en ai eu à l'écrire.
Les références
[1] Optimisation pour la conception technique
[2] Auto-conduite
[3] Apprentissage de bout en bout pour les voitures autonomes
[4] Ressources
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































