Ce post va couvrir quelques concepts très basiques de l’apprentissage automatique, de l’algèbre linéaire aux métriques d’évaluation. Il sert de guide agréable aux débutants qui cherchent à entrer dans le domaine.

Algèbre linéaire

L’algèbre linéaire est le pilier central dans le domaine de l’apprentissage automatique. Pourquoi ? Les algorithmes d’apprentissage automatique sont décrits dans les livres, les articles et sur le site Web en utilisant la notation vectorielle et matricielle. L’algèbre linéaire est la mathématique des données et sa notation vous permet de décrire précisément les opérations sur les données avec des opérateurs spécifiques. Les 2 concepts les plus importants en algèbre linéaire que vous devez connaître sont les vecteurs et les matrices.

1 – Vecteurs

Un vecteur est un tuple d’une ou plusieurs valeurs appelées scalaires. Il est courant d’introduire les vecteurs en utilisant la définition géométrique, dans laquelle un vecteur représente un point ou une coordonnée dans un espace à haute dimension. Les principales opérations arithmétiques vectorielles sont l’addition, la soustraction, la multiplication, la division, le produit scalaire et la multiplication scalaire.

  • Deux vecteurs de longueur égale peuvent être additionnés pour créer un nouveau troisième vecteur.
  • Un vecteur peut être soustrait d’un autre vecteur de longueur égale pour créer un nouveau troisième vecteur.
  • Deux vecteurs de même longueur peuvent être multipliés ensemble.
  • Deux vecteurs de même longueur peuvent être divisés.
  • Le produit scalaire est la somme des éléments multipliés de deux vecteurs de même longueur pour donner un scalaire.
  • Un vecteur peut être multiplié par un scalaire pour mettre à l’échelle la magnitude du vecteur.

Les vecteurs ont de nombreuses utilisations. Par exemple, les vecteurs peuvent représenter un décalage dans un espace 2D ou 3D. Les points ne sont que des vecteurs à partir de l’origine. Les données (pixels, gradients à un point clé de l’image, etc) peuvent également être traitées comme un vecteur.

2 – Matrices

Une matrice est un tableau bidimensionnel de scalaires avec une ou plusieurs colonnes et une ou plusieurs lignes. Si la matrice a le même nombre de lignes et de colonnes, alors c’est une matrice carrée. La matrice d’identité est une matrice carrée avec des 1 sur la diagonale et des 0 partout ailleurs. La matrice diagonale est une matrice carrée avec des nombres sur la diagonale et des 0 partout ailleurs. Un vecteur colonne est juste une matrice dans laquelle il y a une ligne, tandis qu’un vecteur ligne est juste une matrice dans laquelle il y a une colonne.

Les opérations matricielles de base sont l’addition, la mise à l’échelle, le produit scalaire, la multiplication vectorielle, la multiplication scalaire, la transposition, l’inverse et le déterminant / trace.

  • Deux matrices de mêmes dimensions peuvent être additionnées pour créer une nouvelle troisième matrice.
  • De même, une matrice peut être soustraite d’une autre matrice de mêmes dimensions.
  • Deux matrices de même dimension peuvent être multipliées ensemble, et cela est souvent appelé multiplication matricielle par éléments.
  • Une matrice peut être divisée par une autre matrice de mêmes dimensions.
  • Le produit scalaire matriciel a les entrées de 2 vecteurs multipliées l’une par l’autre et l’addition du résultat.
  • Une matrice et un vecteur peuvent être multipliés ensemble tant que la règle de la multiplication matricielle est respectée.
  • Une matrice peut être multipliée par un scalaire. Le résultat est une matrice de même taille que la matrice mère où chaque élément de la matrice est multiplié par la valeur scalaire.
  • La transposition matricielle consiste à inverser les colonnes et les lignes d’une matrice, de sorte que la ligne 1 est maintenant la colonne 1, et ainsi de suite.
  • Donné une matrice A, son inverse A^(-1) est une matrice telle que A x A^(-1) = I. Si A^(-1) existe, alors A est inversible ou non-singulière. Sinon, il est singulier.

Apprentissage automatique

1 – Principales approches

Les 3 principales approches de l’apprentissage automatique sont :

  • L’apprentissage non supervisé, qui est beaucoup utilisé en vision par ordinateur. Les exemples sont les k-means, l’ICA, l’ACP, les modèles de mélange gaussien et les auto-encodeurs profonds.
  • L’apprentissage supervisé, qui est également beaucoup utilisé en vision par ordinateur. Les exemples sont les réseaux de neurones supervisés profonds.
  • L’apprentissage par renforcement, qui est surtout utilisé pour les problèmes de robotique et de contrôle. Les exemples sont l’apprentissage Q profond et les méthodes de gradient de politique.

Dans l’apprentissage par renforcement, les règles du jeu sont inconnues. Il n’y a pas de superviseur, seulement un signal de récompense avec une rétroaction retardée. Les actions de l’agent affectent les données ultérieures qu’il reçoit.

Dans l’apprentissage non supervisé, nous voulons trouver la structure et le sens des données sans aucune étiquette. Comme mentionné ci-dessus, les exemples d’algorithmes sont l’analyse en composantes principales, les k-means, la factorisation de matrices non négatives, l’analyse en composantes indépendantes, les modèles de mélange gaussien, l’allocation de Dirichlet latente et les autocodeurs.

Dans l’apprentissage supervisé, la terminologie de base est telle que nous avons un espace d’entrée initial x et un espace de sortie initial y. Après avoir vu un tas d’exemples (x, y), nous voulons choisir une correspondance F : x -> y qui reproduit fidèlement le modèle d’entrée-sortie des exemples. Il existe de nombreux algorithmes pour trouver différents modèles de F à partir d’observations étiquetées (vérité terrain). Souvent, l’apprentissage est catégorisé en fonction de leur espace de sortie, qui peut être discret ou continu.

  • L’espace de sortie continu est utilisé dans le problème de la régression. Par exemple, étant donné l’entrée comme une image d’une assiette de nourriture, nous voulons la sortie comme le nombre de calories totales. Ou étant donné l’entrée comme le visage d’une personne, nous voulons que la sortie soit l’âge de cette personne.
  • Avec l’espace de sortie discret, nous construisons généralement des classificateurs. Par exemple, nous voulons que la sortie soit la classe 1, la classe 2, la classe 3…, où les chiffres représentent une sorte de catégorie significative. Nous pouvons également appeler ces étiquettes ou catégories.

2 – Données d’entraînement et données de test

Les données d’entraînement sont ce que nous donnons au classificateur pendant le processus d’entraînement. Ce sont les données appariées pour apprendre f(x) = y, où x est l’entrée (un vecteur de caractéristiques dans R^d) et y est la sortie (une étiquette avec la classification). Pendant l’apprentissage, nous essayons de trouver un bon modèle de f(x) qui reproduit la relation entrée-sortie des données.

Les données de test sont utilisées avec un classificateur entraîné pour l’évaluer. Nous avons x, mais nous ne connaissons pas y. Habituellement, nous prétendons seulement ne pas avoir y dans la recherche, mais dans le monde réel, vous ne l’aurez vraiment pas. Le système entraîné prédit y pour nous, et nous évaluons comment le système fonctionne.

3 – Probabilités

Au lieu de seulement catégoriser une entrée dans une des K classes différentes, nous pouvons vouloir connaître la probabilité de chacune de ces classes. Pour chaque catégorie possible, P(C = k | x) renvoie une valeur entre 0 et 1, les valeurs plus proches de 1 signifiant que le classificateur « pense » que cette classe est probablement la catégorie de l’entrée. Pour classer, nous voulons choisir le plus grand P(C = k | x).

4 – Paramétrique et non paramétrique

Les modèles paramétriques impliquent l’ajustement des paramètres. Par exemple, nous voulons trouver de bonnes valeurs pour les vecteurs w pour notre classificateur linéaire. Les modèles paramétriques ont un nombre fini de paramètres, dans lesquels le nombre de paramètres est indépendant de l’ensemble d’apprentissage.

Les modèles non paramétriques impliquent de stocker les données et de les utiliser d’une manière ou d’une autre. Ici, le nombre de paramètres dépend de l’ensemble d’apprentissage (la quantité de données que vous stockez). Plus précisément, le nombre de paramètres augmente avec la taille de l’ensemble d’apprentissage.

Evaluation des classificateurs d’apprentissage automatique

Après avoir vu un tas d’exemples (x, y), le modèle choisit une correspondance F : x -> y qui reproduit le modèle d’entrée-sortie des exemples. La question est de savoir si le modèle F fonctionne bien après la formation. Nous pouvons évaluer F sur les données de formation, mais les performances sur les données de formation ne nous disent pas vraiment comment le modèle se généralise à d’autres données. En d’autres termes, F pourrait simplement mémoriser les données d’apprentissage. Ainsi, nous devons évaluer sur les données de test pour avoir une meilleure idée de la façon dont le modèle fonctionne.

La mesure d’évaluation la plus simple pour la classification est la précision, qui est la fraction de points correctement classés. La précision peut être calculée comme étant la somme des vrais positifs et des vrais négatifs, divisée par tous les points de données. Le taux d’erreur est simplement 1 – Précision, ou la somme des faux positifs et des faux négatifs, divisée par tous les points de données.

Pour mettre en œuvre la précision, la meilleure façon est de stocker vos prédictions pour chaque vecteur de test x_t. Ainsi, si vous avez un total de T vecteurs à tester, vous vous retrouvez avec un vecteur à T dimensions avec toutes vos prédictions, puis il suffit de le comparer à la vérité terrain. Vous pourriez également enregistrer les probabilités pour calculer d’autres métriques, mais cela peut nécessiter beaucoup de mémoire si vous avez beaucoup de classes.

1 – Matrice de confusion

Une matrice de confusion est une disposition de tableau spécifique qui permet de visualiser les performances d’un algorithme, généralement un algorithme d’apprentissage supervisé. Chaque ligne de la matrice représente les instances d’une classe prédite tandis que chaque colonne représente les instances d’une classe réelle. Cela vous permet de voir quelles classes sont les plus confuses. Une diagonale « forte » indique une bonne performance. Dans une matrice de confusion normalisée, les lignes sont normalisées pour que leur somme soit égale à 1.

2 – Précision et Rappel

La précision est le nombre d’exemples positifs correctement classés divisé par le nombre total d’exemples classés comme positifs. Le rappel est le nombre d’exemples positifs correctement classés divisé par le nombre total d’exemples positifs réels dans l’ensemble de test. La précision-rappel est une métrique dominante dans la détection d’objets et est particulièrement utile lorsque les catégories sont déséquilibrées. Une précision élevée signifie qu’un algorithme a retourné sensiblement plus de résultats pertinents que non pertinents, tandis qu’un rappel élevé signifie qu’un algorithme a retourné la plupart des résultats pertinents.

3 – Seuils du classificateur

Souvent, un classificateur aura une certaine valeur de confiance dans chaque catégorie. Celles-ci sont le plus souvent générées par des classificateurs probabilistes. Parfois, nous fixons un seuil pour les valeurs de probabilité. En vision par ordinateur, cela arrive souvent en détection. Le seuil optimal varie en fonction des tâches. Certaines mesures de performance sont sensibles au seuil. En changeant la valeur du seuil du min au max (de 0 à 1), nous pouvons dessiner une courbe (courbes ROC et Precision-Recall).

Puissance du modèle

1 – Surajustement & Sousajustement

On dit que votre classifieur F surajuste les données si la performance d’apprentissage est beaucoup plus grande que la performance de test. D’autre part, F sous-adapte les données lorsqu’il n’est pas assez puissant pour modéliser la relation entrée-sortie.

2 – Capacité du modèle

La capacité du modèle fait référence au nombre de paramètres. Une plus grande capacité signifie généralement que vous avez besoin de plus de données d’entraînement pour former le modèle, sinon, il a un risque élevé de surajustement. D’autre part, une faible capacité signifie probablement que vous sous-adaptez les données de formation de manière significative.

Spécifiquement, avec les réseaux neuronaux, plus de neurones signifient plus de capacité. Une bonne analogie est que le classificateur linéaire a une très faible capacité et le réseau neuronal profond a beaucoup de capacité. Avec plus de données d’entraînement, le modèle le plus complexe l’emporte. Les classificateurs avec un plus grand modèle peuvent créer des frontières de décision complexes, mais trop complexes peuvent être un mauvais modèle pour les données de test, surtout si les données sont limitées.

3 – Complexité de l’échantillon

La complexité de l’échantillon est le nombre d’échantillons de formation que nous devons fournir à l’algorithme d’apprentissage afin que la fonction renvoyée par l’algorithme soit dans une erreur arbitrairement petite de la meilleure fonction possible (train et test). Les algorithmes ayant une plus grande capacité de modèle ont tendance à avoir une complexité d’échantillon plus faible, car ils ont plus de paramètres à ajuster et sont susceptibles de se surajuster avec des données d’apprentissage insuffisantes. Dans ces cas, les techniques de régularisation peuvent aider.

Si vous êtes intéressé par ce matériel, suivez la publication Cracking Data Science Interview pour recevoir mes articles ultérieurs sur la façon de craquer le processus d’entretien en science des données.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *