Dans cet article, je veux parler des principales difficultés de l'automatisation de l'apprentissage automatique, de sa nature et de ses avantages, et également envisager une approche plus flexible qui vous permet de vous éloigner de certaines des lacunes.
L'automatisation, par définition, Mikell P. Groover est une technologie par laquelle un processus ou une procédure est effectuée avec une implication humaine minimale. L'automatisation a longtemps été en mesure d'atteindre une productivité accrue, ce qui entraîne souvent une baisse des coûts par unité de produit. Les méthodes d'automatisation, ainsi que leurs domaines d'application, s'améliorent rapidement et au cours des siècles passés sont passés de simples mécanismes à des robots industriels. L'automatisation commence à affecter non seulement le travail physique, mais aussi intellectuel, atteignant des domaines relativement nouveaux, y compris l'apprentissage automatique - apprentissage automatique (auto ml, aml). Dans le même temps, l'automatisation de l'apprentissage automatique a déjà trouvé son application dans un certain nombre de produits commerciaux (par exemple, Google AutoML, SAP AutoML et autres).


AvertissementCet article ne prétend pas être dogmatique dans le domaine et est la vision de l'auteur.
Apprentissage automatique automatisé
Les tâches dans le domaine du traitement des données et de l'apprentissage automatique sont associées à de nombreux facteurs qui surviennent en raison de la complexité du système et compliquent leur solution. Il s'agit notamment ( selon Charles Sutton ):- La présence d'incertitude et d'incertitude, ce qui conduit à un manque de connaissance a priori des données et des dépendances souhaitées. Ainsi, l'élément de recherche est toujours présent.
- "La mort de mille coupures." En pratique, lors de la construction d'un pipeline pour le traitement et l'analyse des données et la modélisation ultérieure, vous devez prendre de nombreuses décisions, grandes et petites. Par exemple, est-il nécessaire de normaliser les données, si oui, quelle méthode et quels paramètres cette méthode devrait-elle avoir? Etc.
- La présence de boucles de rétroaction résultant de l'incertitude. Plus l'immersion dans la tâche et les données a lieu, plus vous en apprenez. Cela conduit à la nécessité de prendre du recul et d'apporter des modifications aux mécanismes de traitement et d'analyse existants.
- De plus, les résultats des modèles obtenus par les algorithmes d'apprentissage automatique ne sont qu'une approximation de la réalité, c'est-à-dire évidemment pas précis.
Ainsi, le processus d'obtention d'un pipeline complet de traitement et d'analyse de données peut être considéré comme un système complexe (c'est-à-dire un système complexe).Système complexePeter Sloot, « » « », . , () , , () , () .. , , .
D'une part, la présence de ces facteurs complique à la fois la résolution des problèmes de machine et d'apprentissage profond et leur automatisation. D'un autre côté, les capacités informatiques toujours croissantes et de plus en plus accessibles nous permettent d'attacher plus de ressources à la tâche.
Selon la norme commune CRISP-DM, le cycle de vie d'un projet lié à l'analyse des données comprend itérativement six étapes principales: la compréhension d'une tâche métier (compréhension métier), la compréhension et l'étude des données (compréhension données), le traitement des données (préparation des données), la modélisation ( modélisation), évaluation de la qualité (évaluation) et application pratique (déploiement, application). Dans la pratique, toutes ces étapes ne peuvent pas être efficacement automatisées aujourd'hui.La plupart des ouvrages ou bibliothèques existantes (H2O, auto-sklearn, autokeras) se concentrent sur l'automatisation de la modélisation et en partie sur l'évaluation de la qualité. Cependant, l'expansion de l'approche vers l'automatisation du traitement des données permet de couvrir plusieurs étapes (qui, par exemple, a été appliquée au service Google AutoML).Formulation du problème
Les tâches d'apprentissage automatique avec un enseignant peuvent être résolues par différentes méthodes, dont la plupart sont réduites à minimiser la fonction de perte ou maximiser la fonction de vraisemblance , afin d'obtenir une estimation des paramètres sur la base de l'échantillon disponible - ensemble de données de formation :ou θ^m=argminθm(J(yt;θm))où θm- paramètres du modèle entraîné (par exemple, coefficients en cas de régression).Afin de ne pas limiter l'automatisation à la seule modélisation, il est possible d'étendre le périmètre de la méthode à d'autres étapes du pipeline. Par exemple, pour automatiser la prise de décision sur les méthodes de traitement des données à appliquer, sur le choix d'un modèle ou de leurs combinaisons, ainsi que sur la sélection d'hyperparamètres optimaux.Nous illustrons ce qui est décrit avec un exemple simple, dans le cadre duquel un choix est fait entre deux méthodes de traitement des données ( scaleur standard et scaleur quantile ) et deux modèles ( forêt aléatoire et réseau neuronal ), y compris la sélection de certains hyperparamètres. La structure de sélection peut être représentée sous forme d'arbre:
Chaque sélection effectuée est un paramètre du système, tandis que l'arbre lui-même devient l'espace des paramètres possibles. Un tel examen du problème nous permet de nous élever au niveau de l'abstraction et de formuler la tâche d'obtenir le pipeline final, y compris les méthodes de traitement des données, les modèles et leurs paramètres, comme un processus de minimisation ou de maximisation d'une fonction:ω^=argmaxω(L(yt,ycv;ω))ou ω^=argminω(J(yt,ycv;ω))où ω- paramètres non d'apprentissage, ycv- sélection du contrôle retardé (ensemble de données pour la validation croisée).Les principaux avantages d'une telle automatisation de l'apprentissage comprennent:- Sélection d'un plus grand nombre de paramètres système en présence d'un point d'entrée dans le cadre d'un processus d'optimisation unique.
- Routine d'automatisation qui sauve le chercheur ou le développeur des «mille coupures».
- "Démocratisation" de l'apprentissage automatique grâce à son automatisation, qui permet à de nombreux non-spécialistes d'appliquer de nombreuses méthodes.
Cependant, l'automatisation n'est pas sans inconvénients:- Avec une augmentation du nombre de paramètres, leur espace se développe également, ce qui conduit tôt ou tard à une explosion combinatoire, ce qui nécessite le développement d'algorithmes et une augmentation du nombre de ressources informatiques.
- Les méthodes entièrement automatiques ne fournissent pas toujours une solution flexible basée sur le principe de la «boîte noire», ce qui réduit le contrôle sur le résultat.
- L'espace des paramètres ω est non linéaire et a une structure complexe, ce qui complique le processus d'optimisation.
De l'automatisation à la semi-automatisation
En essayant de conserver autant d'avantages que possible et en même temps de s'éloigner d'un certain nombre de lacunes, en particulier, en raison de la volonté de gagner un contrôle supplémentaire sur la solution, nous sommes arrivés à une approche appelée semi-auto ml. Il s'agit d'un phénomène relativement nouveau dans le domaine, qui peut être indirectement mis en évidence par une analyse rapide de Google Trends: la
réalisation d'un tel compromis peut être conditionnellement comparée à diverses méthodes de changement de vitesse dans les transmissions automobiles (à savoir, les méthodes de changement de vitesse, mais pas leur structure interne):Au cours de travaux sur des projets internes, nous avons créé un outil qui nous permet de résoudre le problème de l'apprentissage automatique semi-automatique basé sur un système de configuration hybride déclarative fonctionnelle. Cette approche de configuration utilise non seulement des types de données standard, mais également des fonctions de bibliothèques modernes communes pour la machine et l'apprentissage en profondeur. L'outil vous permet d'automatiser la création de méthodes de traitement de données simples, la conception de base des fonctionnalités (ingénierie des fonctionnalités), la sélection des modèles et de leurs hyperparamètres, ainsi que d'effectuer des calculs sur un cluster Spark ou GPU. La liste formalise l'exemple donné plus haut dans l'article. L'exemple utilise des modèles simples de sk-learn et hyperopt (qui ont même réussi à apporter une contribution insignifiante au code open source) pour la distribution et l'optimisation des paramètres.'preprocessing': {
'scaler': hp.choice('scaler', [
{
'func': RobustScaler,
'params': {
'quantile_range': (10, 90)
}},
{
'func': StandardScaler,
'params': {
'with_mean': True
}}
]),
},
'model': hp.choice('model', [
{
'func': RandomForestClassifier,
'params': {
'max_depth': hp.choice('r_max_depth', [2, 5, 10]),
'n_estimators': hp.choice('r_n_estimators', [5, 10, 50])
}
},
{
'func': MLPClassifier,
'params': {
'hidden_layer_sizes': hp.choice('hidden_layer_sizes', [1, 10, 100]),
'learning_rate_init': hp.choice('learning_rate_init', [0.1, 0.01])
}
},
])
Un tel système semi-automatique, comprenant un mécanisme de configuration, permet de créer des scénarios standard pré-préparés dans les cas où, par exemple, une certaine famille de modèles est mieux adaptée pour résoudre d'éventuels problèmes. Celles-ci, en particulier, peuvent inclure la notation du crédit, mais une telle étape nécessite des recherches supplémentaires sur un large éventail de tâches similaires. De plus, lorsque vous travaillez sur le mécanisme de recherche, il est possible de maintenir automatiquement l'équilibre dans le dilemme de compromis biais-variance en prenant simultanément en compte les valeurs de la fonction optimisée à la fois dans les échantillons d'apprentissage et de validation croisée.Conclusion
Le manque total d'automatisation dans la pratique est assez rare, car même l'énumération des valeurs d'un hyperparamètre dans un cycle est déjà une étape vers l'automatisation. Dans le même temps, l'automatisation complète de l'ensemble du processus de construction du pipeline est également pratiquement impossible à atteindre aujourd'hui. En conséquence, dans le développement de la plupart des projets modernes, les approches d'automatisation sont appliquées consciemment ou inconsciemment.L'utilisation de l'apprentissage automatique semi-automatique permet une utilisation plus efficace des ressources d'un chercheur ou développeur en raison de l'automatisation d'une routine, sans retirer une partie importante de la flexibilité du travail. Comme nous le voyons, la solution proposée nécessite la participation d'une personne, ce qui limite l'espace des paramètres système possibles. De plus, l'introduction de scénarios standard obtenus sur la base du système de configuration permet d'utiliser non seulement des approches d'automatisation partielles, mais aussi des approches complètes qui ne nécessitent pas d'intervention humaine.