Non, bien sûr, je ne parle pas sérieusement. Il doit y avoir une limite à la simplification d'un sujet. Mais pour les premières étapes, afin de comprendre les concepts de base et d’entrer rapidement dans le sujet, cela peut être acceptable. Quant à la manière de nommer ce matériel (options : « Apprentissage automatique pour les nuls », « Analyse des données dès le départ », « Algorithmes pour les tout-petits »), nous en discuterons à la fin.
Passons à l'essentiel. J'ai écrit plusieurs programmes appliqués sur MS Excel pour visualiser et représenter de manière concrète les processus qui se produisent dans différentes méthodes d'apprentissage automatique lors de l'analyse des données. Seeing is believing, après tout, comme disent les représentants de la culture qui a développé la plupart de ces méthodes (d'ailleurs, ce n’est pas le cas pour toutes. La puissante « méthode des vecteurs de support », ou SVM, support vector machine – est l'invention de notre compatriote Vladimir Vapnik, de l’Institut de Gestion de Moscou. 1963, soit dit en passant ! Il enseigne et travaille maintenant aux États-Unis).
Trois fichiers à consulter
1. Clustering par la méthode des k-moyennes
Les problèmes de ce type relèvent de l'« apprentissage non supervisé », lorsque nous devons diviser les données d'origine en un certain nombre de catégories connues à l'avance, mais nous n'avons aucune quantité de « bonnes réponses », que nous devons extraire des données elles-mêmes. Le problème classique fondamental de la recherche des sous-espèces de fleurs d'iris (Ronald Fisher, 1936 !), qui est considéré comme le premier jalon de ce domaine de connaissance, a justement cette nature.
La méthode est assez simple. Nous avons un ensemble d'objets représentés sous forme de vecteurs (ensembles de N nombres). Pour les iris, ce sont des ensembles de 4 nombres caractérisant la fleur : la longueur et la largeur des sépales externes et internes, respectivement (). Comme distance, ou mesure de proximité entre les objets, on choisit la métrique euclidienne ordinaire.
Ensuite, des centres de clusters sont choisis arbitrairement (ou non, voir plus loin), et les distances de chaque objet aux centres des clusters sont calculées. Chaque objet à cette étape d'itération est marqué comme appartenant au centre le plus proche. Ensuite, le centre de chaque cluster est déplacé vers la moyenne arithmétique des coordonnées de ses membres (selon la physique, cela est également appelé « centre de gravité »), et la procédure se répète.
Le processus converge assez rapidement. Sur les images en deux dimensions, cela ressemble à ceci :
1. Distribution aléatoire initiale des points sur le plan et nombre de clusters

2. Définition des centres des clusters et attribution des points à leurs clusters

3. Déplacement des coordonnées des centres des clusters, recalcul de l'appartenance des points, jusqu'à ce que les centres se stabilisent. On voit la trajectoire de mouvement du centre du cluster vers la position finale.

À tout moment, on peut définir de nouveaux centres de clusters (sans générer une nouvelle distribution de points !) et constater que le processus de partitionnement n'est pas toujours univoque. Mathématiquement, cela signifie qu'avec la fonction optimisée (la somme des carrés des distances des points aux centres de leurs clusters), nous trouvons un minimum local, et non global. On peut résoudre ce problème en choisissant non aléatoirement les centres des clusters initiaux ou en essayant différentes positions possibles (il est parfois avantageux de les placer exactement sur un des points, garantissantau moins qu'il n'y aura pas de clusters vides). Dans tous les cas, un ensemble fini a toujours une borne inférieure exacte.
(n'oubliez pas d'activer le support des macros. Les fichiers ont été vérifiés pour les virus)
Description de la méthode sur Wikipédia —
2. Approximation par des polynômes et division des données. Surapprentissage
Le scientifique et vulgarisateur renommé des données K.V. Vorontsov parle brièvement des méthodes d'apprentissage automatique comme d'une « science pour dessiner des courbes à travers des points ». Dans cet exemple, nous allons trouver des régularités dans les données en utilisant la méthode des moindres carrés.
La technique de partitionnement des données originales en ensembles « d'entraînement » et « de test » est montrée, ainsi que le phénomène de surplus d'apprentissage ou de « surajustement » aux données. Avec une bonne approximation, nous aurons une certaine erreur sur les données d'entraînement et une erreur légèrement plus grande sur les données de test. Avec une mauvaise approximation, nous aurons un ajustement parfait aux données d'entraînement et une erreur énorme sur les données de test.
(Un fait connu est qu'il ne peut y avoir qu'une seule courbe de degré N-1 passant par N points, et cette méthode ne donne généralement pas le résultat souhaité. )
1. Nous définissons la distribution initiale

2. Nous divisons les points en « d'entraînement » et « de test » dans un rapport de 70 à 30.

3. Nous ajustons une courbe approximatrice aux points d'apprentissage, nous voyons l'erreur qu'elle génère sur les données de contrôle.

4. Nous ajustons une courbe précise à travers les points d'apprentissage et constatons une erreur monstrueuse sur les données de contrôle (et nulle sur les données d'apprentissage, mais quelle en est l'utilité ?).

Il s'agit, bien sûr, du cas le plus simple avec une seule séparation en sous-ensembles « d'apprentissage » et « de contrôle », mais dans le cas général, cela se fait plusieurs fois pour un meilleur ajustement des coefficients.
Activez les macros pour un fonctionnement correct.
3. La descente de gradient et la dynamique de changement de l'erreur.
Ici, nous aurons le cas à 4 dimensions et la régression linéaire. Les coefficients de la régression linéaire seront déterminés par étapes selon la méthode de descente de gradient, initialement tous les coefficients seront zéro. Sur un graphique distinct, on peut voir la dynamique de la réduction de l'erreur au fur et à mesure que les coefficients sont ajustés de façon plus précise. Il est possible d'examiner toutes les quatre projections à 2 dimensions.
Si on choisit un pas de descente de gradient trop grand, on peut voir qu'à chaque fois, nous allons manquer le minimum et arriver au résultat en un plus grand nombre d'étapes, bien que, finalement, nous y parvenions tout de même (à moins que nous n'augmentions trop le pas de descente - dans ce cas, l'algorithme va 'par en vrille'). Et le graphique de la dépendance de l'erreur par rapport au pas d'itération ne sera pas lisse, mais 'saccadé'.
1. Générer des données, définir le pas de descente de gradient.

2. Avec un choix correct du pas de descente de gradient, on atteint en douceur et assez rapidement le minimum.

3. Avec un choix incorrect du pas de descente de gradient, nous dépassons le maximum, le graphique de l'erreur est 'saccadé', la convergence prend plus d'étapes.

et

4. Avec un choix entièrement erroné du pas de descente de gradient, nous nous éloignons du minimum.

(Pour reproduire le processus avec les valeurs de pas de descente de gradient montrées sur les images, cochez la case 'données de référence').
Comme le considère la respectable communauté, est-il permis de telles simplifications et méthodes de présentation ? Vaut-il la peine de traduire l'article en anglais ?
Source : habr.com
