Qu'est-ce que l'apprentissage automatique? Intelligence dérivée des données

Apprentissage automatique défini

L'apprentissage automatique est une branche de l'intelligence artificielle qui comprend des méthodes, ou algorithmes, pour créer automatiquement des modèles à partir de données. Contrairement à un système qui exécute une tâche en suivant des règles explicites, un système d'apprentissage automatique apprend de l'expérience. Alors qu'un système basé sur des règles exécutera une tâche de la même manière à chaque fois (pour le meilleur ou pour le pire), les performances d'un système d'apprentissage automatique peuvent être améliorées grâce à la formation, en exposant l'algorithme à plus de données.

Les algorithmes d'apprentissage automatique sont souvent divisés en supervisé (les données d'apprentissage sont étiquetées avec les réponses) et non supervisé (les étiquettes qui peuvent exister ne sont pas montrées à l'algorithme d'apprentissage). Les problèmes d'apprentissage automatique supervisé sont ensuite divisés en classification (prédiction de réponses non numériques, telles que la probabilité d'un paiement hypothécaire manqué) et régression (prédiction de réponses numériques, telles que le nombre de widgets qui se vendront le mois prochain dans votre magasin de Manhattan).

L'apprentissage non supervisé est ensuite divisé en regroupement (recherche de groupes d'objets similaires, tels que des chaussures de course, des chaussures de marche et des chaussures habillées), association (recherche de séquences d'objets communes, telles que le café et la crème) et réduction de la dimensionnalité (projection, sélection de caractéristiques) et extraction de caractéristiques).

Applications de l'apprentissage automatique

Nous entendons parler quotidiennement des applications de l'apprentissage automatique, même si toutes ne sont pas des réussites sans mélange. Les voitures autonomes en sont un bon exemple, où les tâches vont de simples et réussies (aide au stationnement et suivi de voie sur autoroute) à complexes et douteuses (contrôle total du véhicule en milieu urbain, ce qui a entraîné plusieurs décès).

L'apprentissage automatique de jeu est très efficace pour les dames, les échecs, le shogi et le go, ayant battu des champions du monde humains. La traduction automatique des langues a été largement réussie, même si certaines paires de langues fonctionnent mieux que d'autres, et de nombreuses traductions automatiques peuvent encore être améliorées par des traducteurs humains.

La synthèse vocale automatique fonctionne assez bien pour les personnes aux accents traditionnels, mais pas si bien pour les personnes avec de forts accents régionaux ou nationaux; les performances dépendent des ensembles de formation utilisés par les fournisseurs. L'analyse automatique des sentiments des médias sociaux a un taux de réussite raisonnablement bon, probablement parce que les ensembles de formation (par exemple, les évaluations de produits Amazon, qui associent un commentaire à un score numérique) sont volumineux et faciles d'accès.

Le dépistage automatique des curriculum vitae est un domaine controversé. Amazon a dû retirer son système interne en raison des biais d'échantillons de formation qui l'ont amené à déclasser toutes les candidatures de femmes.

D'autres systèmes de sélection de curriculum vitae actuellement utilisés peuvent présenter des préjugés en matière de formation qui les amènent à mettre à niveau des candidats qui «ressemblent» à des employés actuels d'une manière qui n'est légalement pas censée avoir de l'importance (par exemple, les jeunes, blancs, hommes de quartiers anglophones haut de gamme qui ont joué les sports d'équipe ont plus de chances de réussir le dépistage). Les efforts de recherche de Microsoft et d'autres se concentrent sur l'élimination des biais implicites dans l'apprentissage automatique.

La classification automatique des images de pathologie et de radiologie a avancé au point où elle peut aider (mais pas remplacer) les pathologistes et radiologues pour la détection de certains types d'anomalies. Pendant ce temps, les systèmes d'identification faciale sont à la fois controversés lorsqu'ils fonctionnent bien (en raison de considérations de confidentialité) et ont tendance à ne pas être aussi précis pour les femmes et les personnes de couleur que pour les hommes blancs (en raison des préjugés de la population en formation).

Algorithmes d'apprentissage automatique

L'apprentissage automatique dépend d'un certain nombre d'algorithmes pour transformer un ensemble de données en modèle. L'algorithme qui fonctionne le mieux dépend du type de problème que vous résolvez, des ressources informatiques disponibles et de la nature des données. Quel que soit l'algorithme ou les algorithmes que vous utilisez, vous devrez d'abord nettoyer et conditionner les données.

Discutons des algorithmes les plus courants pour chaque type de problème.

Algorithmes de classification

Un problème de classification est un problème d'apprentissage supervisé qui demande un choix entre deux ou plusieurs classes, fournissant généralement des probabilités pour chaque classe. En laissant de côté les réseaux de neurones et l'apprentissage en profondeur, qui nécessitent un niveau beaucoup plus élevé de ressources de calcul, les algorithmes les plus courants sont Naive Bayes, Decision Tree, Logistic Regression, K-Nearest Neighbours et Support Vector Machine (SVM). Vous pouvez également utiliser des méthodes d'ensemble (combinaisons de modèles), telles que Random Forest, d'autres méthodes d'ensachage et des méthodes d'amplification telles qu'AdaBoost et XGBoost.

Algorithmes de régression

Un problème de régression est un problème d'apprentissage supervisé qui demande au modèle de prédire un nombre. L'algorithme le plus simple et le plus rapide est la régression linéaire (moindres carrés), mais il ne faut pas s'arrêter là, car il donne souvent un résultat médiocre. D'autres algorithmes de régression d'apprentissage automatique courants (à court de réseaux de neurones) incluent Naive Bayes, Decision Tree, K-Nearest Neighbours, LVQ (Learning Vector Quantization), LARS Lasso, Elastic Net, Random Forest, AdaBoost et XGBoost. Vous remarquerez qu'il existe un certain chevauchement entre les algorithmes d'apprentissage automatique pour la régression et la classification.

Algorithmes de clustering

Un problème de clustering est un problème d'apprentissage non supervisé qui demande au modèle de trouver des groupes de points de données similaires. L'algorithme le plus populaire est le clustering K-Means; d'autres incluent le clustering par décalage moyen, le DBSCAN (clustering spatial basé sur la densité des applications avec bruit), le GMM (modèles de mélange gaussien) et le HAC (clustering agglomératif hiérarchique).

Algorithmes de réduction de dimensionnalité

La réduction de dimensionnalité est un problème d'apprentissage non supervisé qui demande au modèle de supprimer ou de combiner des variables qui ont peu ou pas d'effet sur le résultat. Ceci est souvent utilisé en combinaison avec une classification ou une régression. Les algorithmes de réduction de dimensionnalité incluent la suppression des variables avec de nombreuses valeurs manquantes, la suppression des variables avec une faible variance, l'arbre de décision, la forêt aléatoire, la suppression ou la combinaison de variables avec une corrélation élevée, l'élimination des caractéristiques en arrière, la sélection des caractéristiques en avant, l'analyse factorielle et l'ACP (analyse en composantes principales).

Méthodes d'optimisation

La formation et l'évaluation transforment les algorithmes d'apprentissage supervisé en modèles en optimisant leurs pondérations de paramètres pour trouver l'ensemble de valeurs qui correspond le mieux à la vérité terrain de vos données. Les algorithmes reposent souvent sur des variantes de descente la plus raide pour leurs optimiseurs, par exemple la descente de gradient stochastique (SGD), qui est essentiellement la descente la plus raide effectuée plusieurs fois à partir de points de départ aléatoires.

Les améliorations courantes sur SGD ajoutent des facteurs qui corrigent la direction du gradient en fonction de l'élan, ou ajustent le taux d'apprentissage en fonction de la progression d'un passage à travers les données (appelé une époque ou un lot) au suivant.

Réseaux de neurones et apprentissage en profondeur

Les réseaux neuronaux ont été inspirés par l'architecture du cortex visuel biologique. L'apprentissage profond est un ensemble de techniques d'apprentissage dans les réseaux de neurones qui implique un grand nombre de couches «cachées» pour identifier les caractéristiques. Les couches masquées se situent entre les couches d'entrée et de sortie. Chaque couche est constituée de neurones artificiels, souvent dotés de fonctions d'activation sigmoïde ou ReLU (Rectified Linear Unit).

Dans un réseau à réaction directe, les neurones sont organisés en couches distinctes: une couche d'entrée, un nombre quelconque de couches de traitement cachées et une couche de sortie, et les sorties de chaque couche vont uniquement à la couche suivante.

Dans un réseau à action directe avec des connexions de raccourci, certaines connexions peuvent sauter par-dessus une ou plusieurs couches intermédiaires. Dans les réseaux de neurones récurrents, les neurones peuvent s'influencer eux-mêmes, soit directement, soit indirectement via la couche suivante.

L'apprentissage supervisé d'un réseau de neurones se fait comme tout autre apprentissage automatique: vous présentez le réseau avec des groupes de données d'apprentissage, comparez la sortie du réseau avec la sortie souhaitée, générez un vecteur d'erreur et appliquez des corrections au réseau en fonction du vecteur d'erreur. , utilisant généralement un algorithme de rétropropagation. Les lots de données d'entraînement qui sont exécutés ensemble avant d'appliquer des corrections sont appelés époques.

Comme pour tout apprentissage automatique, vous devez vérifier les prédictions du réseau neuronal par rapport à un ensemble de données de test distinct. Sans cela, vous risquez de créer des réseaux de neurones qui ne mémorisent que leurs entrées au lieu d'apprendre à être des prédicteurs généralisés.

La percée dans le domaine des réseaux neuronaux pour la vision a été LeNet-5 de Yann LeCun en 1998, un réseau neuronal convolutif (CNN) à sept niveaux pour la reconnaissance de chiffres manuscrits numérisés dans des images 32x32 pixels. Pour analyser des images à plus haute résolution, le réseau aurait besoin de plus de neurones et de plus de couches.

Les réseaux de neurones convolutifs utilisent généralement des couches convolutives, regroupées, ReLU, entièrement connectées et de perte pour simuler un cortex visuel. La couche convolutive prend essentiellement les intégrales de nombreuses petites régions qui se chevauchent. La couche de regroupement effectue une forme de sous-échantillonnage non linéaire. Les couches ReLU, que j'ai mentionnées plus tôt, appliquent la fonction d'activation non saturante f(x) = max(0,x).

Dans une couche entièrement connectée, les neurones ont des connexions complètes à toutes les activations de la couche précédente. Une couche de perte calcule la façon dont la formation du réseau pénalise l'écart entre les étiquettes prédites et vraies, en utilisant une perte Softmax ou d'entropie croisée pour la classification ou une perte euclidienne pour la régression.

Le traitement du langage naturel (NLP) est un autre domaine d'application majeur pour l'apprentissage en profondeur. En plus du problème de traduction automatique abordé par Google Translate, les principales tâches de la PNL comprennent la synthèse automatique, la résolution de co-référence, l'analyse du discours, la segmentation morphologique, la reconnaissance d'entités nommées, la génération du langage naturel, la compréhension du langage naturel, le marquage d'une partie du discours, le sentiment analyse et reconnaissance vocale.

En plus des CNN, les tâches NLP sont souvent traitées avec des réseaux de neurones récurrents (RNN), qui incluent le modèle de mémoire à long terme (LSTM).

Plus il y a de couches dans un réseau neuronal profond, plus il faut de calculs pour entraîner le modèle sur un processeur. Les accélérateurs matériels pour les réseaux neuronaux comprennent les GPU, les TPU et les FPGA.

Apprentissage par renforcement

L'apprentissage par renforcement forme un acteur ou un agent à réagir à un environnement d'une manière qui maximise une certaine valeur , généralement par essais et erreurs. C'est différent de l'apprentissage supervisé et non supervisé, mais est souvent combiné avec eux.

Par exemple, AlphaGo de DeepMind, afin d'apprendre à jouer (à l'action) au jeu de Go (l'environnement), a d'abord appris à imiter les joueurs humains de Go à partir d'un vaste ensemble de données de jeux historiques (apprentissage d'apprenti). Il a ensuite amélioré son jeu par essais et erreurs (apprentissage par renforcement), en jouant un grand nombre de jeux Go contre des instances indépendantes de lui-même.

Le contrôle robotique est un autre problème qui a été attaqué avec des méthodes d'apprentissage par renforcement profond, c'est-à-dire l'apprentissage par renforcement et des réseaux de neurones profonds, les réseaux de neurones profonds étant souvent formés par CNN pour extraire des caractéristiques des images vidéo.

Comment utiliser l'apprentissage automatique

Comment créer un modèle d'apprentissage automatique? Vous commencez par nettoyer et conditionner les données, continuez avec l'ingénierie des fonctionnalités, puis essayez chaque algorithme d'apprentissage automatique qui a du sens. Pour certaines classes de problèmes, telles que la vision et le traitement du langage naturel, les algorithmes susceptibles de fonctionner impliquent un apprentissage en profondeur.

Nettoyage des données pour l'apprentissage automatique

Il n'existe pas de données propres à l'état sauvage. Pour être utiles pour l'apprentissage automatique, les données doivent être filtrées de manière agressive. Par exemple, vous voudrez:

  1. Examinez les données et excluez toutes les colonnes contenant beaucoup de données manquantes.
  2. Examinez à nouveau les données et choisissez les colonnes que vous souhaitez utiliser ( sélection de fonctionnalités ) pour votre prédiction. C'est quelque chose que vous voudrez peut-être faire varier lorsque vous itérez.
  3. Excluez toutes les lignes qui contiennent encore des données manquantes dans les colonnes restantes.
  4. Corrigez les fautes de frappe évidentes et fusionnez les réponses équivalentes. Par exemple, les États-Unis, les États-Unis, les États-Unis et l'Amérique doivent être fusionnés en une seule catégorie.
  5. Excluez les lignes contenant des données hors limites. Par exemple, si vous analysez les trajets en taxi dans la ville de New York, vous souhaiterez filtrer les lignes avec des latitudes et des longitudes de ramassage ou de dépôt qui se trouvent en dehors de la zone de délimitation de la zone métropolitaine.

Vous pouvez faire beaucoup plus, mais cela dépendra des données collectées. Cela peut être fastidieux, mais si vous configurez une étape de nettoyage des données dans votre pipeline d'apprentissage automatique, vous pouvez la modifier et la répéter à volonté.

Encodage et normalisation des données pour l'apprentissage automatique

Pour utiliser des données catégorielles pour la classification des machines, vous devez encoder les étiquettes de texte dans un autre formulaire. Il existe deux encodages courants.

L'un est le codage d'étiquette , ce qui signifie que chaque valeur d'étiquette de texte est remplacée par un nombre. L'autre est un codage à chaud , ce qui signifie que chaque valeur d'étiquette de texte est transformée en une colonne avec une valeur binaire (1 ou 0). La plupart des frameworks d'apprentissage automatique ont des fonctions qui effectuent la conversion pour vous. En général, le codage à chaud est préféré, car le codage d'étiquettes peut parfois confondre l'algorithme d'apprentissage automatique en pensant que la colonne codée est ordonnée.