Optimisation et apprentissage automatique

13

Je voulais savoir dans quelle mesure le machine learning doit être optimisé. D'après ce que j'ai entendu, les statistiques sont un sujet mathématique important pour les personnes travaillant avec l'apprentissage automatique. De même, est-il important pour une personne travaillant avec l'apprentissage automatique de se renseigner sur l'optimisation convexe ou non convexe?

Ronald Grayson
la source
2
"travailler avec l'apprentissage automatique" est un concept vague - travailler à développer de meilleures méthodes de ML signifiera une réponse, développer des systèmes de ML qui utilisent des méthodes connues est une tout autre chose.
Peteris

Réponses:

28

Selon moi, les statistiques / l'apprentissage automatique vous indiquent ce que vous devriez optimiser, et l'optimisation est la façon dont vous le faites réellement.

Y=Xβ+εE(ε)=0Var(ε)=σ2Iβ^

β^=argminbRp||YXb||2.

β^

f^=argminfF1ni=1nL(yi,f(xi))

Ff^ , souvent vous vous retrouvez avec une optimisation difficile et il est tout un ensemble distinct de personnes qui étudient ce problème. Je pense que l'histoire de SVM est un bon exemple ici. Nous avons des gens SLT comme Vapnik et Cortes (et bien d'autres) qui ont montré comment SVM est un bon problème d'optimisation à résoudre. Mais ensuite, ce sont d'autres comme John Platt et les auteurs du LIBSVM qui ont rendu cela possible dans la pratique.

Pour répondre à votre question exacte, connaître une optimisation est certainement utile, mais généralement, personne n'est un expert dans tous ces domaines, vous apprenez donc autant que possible, mais certains aspects seront toujours une sorte de boîte noire pour vous. Peut-être que vous n'avez pas correctement étudié les résultats SLT derrière votre algorithme ML préféré, ou peut-être que vous ne connaissez pas le fonctionnement interne de l'optimiseur que vous utilisez. C'est un voyage de toute une vie.

jld
la source
3
Cela vaut la peine de mentionner explicitement en.wikipedia.org/wiki/Empirical_risk_minimization
Emre
13

En pratique, de nombreux packages prennent en charge l'optimisation et la plupart des détails mathématiques pour vous. Par exemple, TensorFlow peut effectuer une descente de gradient backprop + stochastique pour former automatiquement des réseaux de neurones (il vous suffit de spécifier le taux d'apprentissage). Les outils ML de scikit-learn ne nécessitent généralement pas que vous sachiez réellement comment l'optimisation se produit réellement, mais peut-être définissez simplement certains paramètres de réglage et il s'occupe du reste (par exemple, le nombre d'itérations pour lesquelles l'optimiseur s'exécute). Par exemple, vous pouvez entraîner un SVM sans connaître les mathématiques dans scikit-learn - il suffit d'alimenter les données, le type de noyau et de passer à autre chose.

Cela dit, connaître l'optimisation de base (par exemple au niveau de l'optimisation convexe de Boyd et Vandenberghe / programmation non linéaire de Bertsekas) peut être utile dans la conception et l'analyse d'algorithmes / problèmes, surtout si vous travaillez sur des trucs théoriques. Ou implémentez vous-même les algorithmes d'optimisation.

Notez que les méthodes d'optimisation des manuels scolaires nécessitent souvent des ajustements pour fonctionner réellement dans la pratique dans des environnements modernes; par exemple, vous pourriez ne pas utiliser la descente de gradient stochastique Robbins-Munroe classique, mais une variante accélérée plus rapide. Néanmoins, vous pouvez obtenir des informations en travaillant avec les problèmes d'optimisation.

Homme chauve-souris
la source