Machine Learning et ses applications – Introduction:

 

Mieux connu par son nom natif en anglais, Machine Learning, l’apprentissage automatique ou encore l’apprentissage machine, est en train de se développer, on dirait qu’il prend tout son sens, avec la reconnaissance croissante du rôle qu’il peut jouer dans un large éventail d’applications critiques, telles que l’exploration de données, le traitement du langage naturel, la reconnaissance d’image, et les systèmes experts. L’apprentissage automatique fournit des solutions potentielles dans tous ces domaines et plus, et est prêt à être le pilier de notre civilisation future.

L’offre des concepteurs capables en matière de machine learning est encore loin pour rattraper sa demande. La raison majeure à cela est que l’apprentissage automatique est tout simplement très complexe.

Ce tutoriel présente les bases de la théorie de machine learning, en définissant les thèmes et les concepts communs, en facilitant le suivi de la logique pour que vous puissiez vous familiariser avec ce sujet.Machine Learning - How to

Machine Learning C’Est Quoi?

Alors, qu’est-ce que c’est exactement “Machine Learning”? C’est en fait beaucoup de choses. Le domaine est assez vaste et se développe rapidement, étant continuellement partitionné et subdivisé à n’en plus finir en différentes sous-spécialités et types d’apprentissage automatique.

Il y a quelques points communs de base, cependant, et le thème général est mieux résumé par cette déclaration souvent citée faite par Arthur Samuel en 1959: “Machine Learning est le domaine d’étude qui donne aux ordinateurs la capacité d’apprendre sans étant explicitement programmé. ”

Et plus récemment, en 1997, Tom Mitchell a donné une définition «bien posée» qui s’est avérée plus utile aux types d’ingénierie: “On dit qu’un programme informatique apprend de l’expérience E par rapport à une tâche T et à une mesure de performance P, si sa performance sur T, telle que mesurée par P, s’améliore avec l’expérience E.”

Un programme informatique apprend de l’expérience E par rapport à une tâche T et une mesure de performance P, si sa performance sur T, mesurée par P, s’améliore avec l’expérience E. – Tom Mitchell, Université Carnegie Mellon

Donc, si vous voulez que votre programme prédise, par exemple, les modèles de trafic à une intersection occupée (tâche T), vous pouvez l’exécuter via un algorithme d’apprentissage automatique avec des données sur les modèles de trafic passés (expérience E) et, s’il a “appris” avec succès, il fera mieux pour prédire les futurs modèles de trafic (mesure de performance P)

Cependant, la nature très complexe des nombreux problèmes que nous vivons au monde réel rend souvent l’invention d’algorithmes spécifiques qui les résolvent parfaitement est impraticable voir même impossible.

Des exemples de problèmes de machine learning comprennent: Est ce un cancer?, Quelle est la valeur marchande de cette maison?, Lesquels de ces gens sont de bons amis les uns avec les autres?, Ce moteur de fusée, explosera-t-il au décollage? , Est-ce que cette personne aime ce film?,  Qui est-ce?, Qu’est ce que t’as dis? et Comment pilotez-vous cette chose?. Tous ces problèmes sont d’excellentes cibles pour un projet de machine learning. En fait, l’apprentissage machine a été appliqué à chacun de ces problèmes avec beaucoup de succès.

Machine learning résout les problèmes que les moyens numériques, à eux seuls, ne peuvent résoudre.

Parmi les différents types de tâches de machine learning, une distinction cruciale est établie entre l’apprentissage supervisé et non supervisé:

  • Apprentissage automatique supervisé: Le programme est «formé» à un ensemble prédéfini d’exemples de formation, ce qui facilite sa capacité à parvenir à une conclusion précise lorsqu’il reçoit de nouvelles données.
  • Apprentissage automatique non supervisé: Le programme reçoit un tas de données et doit y trouver des modèles et des relations.

Nous nous concentrerons principalement sur l’apprentissage supervisé ici, mais la fin de l’article comprend une brève discussion sur l’apprentissage non supervisé avec des liens pour ceux qui sont intéressés à poursuivre le sujet plus loin.

Machine  Learning Supervisé

Dans la majorité des applications d’apprentissage supervisé, le but ultime est de développer une fonction prédictive finement réglée h (x) (parfois appelée «hypothèse»). “Learning” consiste à utiliser des algorithmes mathématiques sophistiqués pour optimiser cette fonction, de sorte que, compte tenu des données d’entrée x sur un certain domaine (par exemple, superficie d’une maison), il prédit avec précision une valeur intéressante h (x) (disons, prix du marché pour ladite maison).

En pratique, x représente presque toujours plusieurs points de données. Ainsi, par exemple, un prédicteur de prix du logement pourrait prendre non seulement des superficies (x1) mais aussi le nombre de chambres (x2), nombre de salles de bains (x3), nombre d’étages (x4), année construite (x5), code postal (x6), et ainsi de suite. Déterminer quelles entrées utilisée est une partie importante de la conception de l’apprentissage machine. Cependant, pour des raisons d’explication, il est plus facile de ne supposer qu’une seule valeur d’entrée à utiliser.

Alors disons que notre prédicteur simple a cette forme:machine Learning - forme du prédicteur simple

Où θ(0 ) et θ(1) sont des constantes, notre objectif est de trouver les valeurs parfaites de thêta 0 et de thêta 1 pour que notre prédicteur fonctionne le mieux possible.

L’optimisation du prédicteur h(x) est réalisée à l’aide d’exemples d’apprentissage. Pour chaque exemple d’apprentissage, nous avons une valeur d’entrée x_train, pour laquelle une sortie correspondante, y, est connue à l’avance. Pour chaque exemple, nous trouvons la différence entre la valeur connue, correcte y et notre valeur prédite h (x_train).

Avec suffisamment d’exemples d’entraînement, ces différences nous donnent un moyen utile de mesurer la “fausseté” de h (x). Nous pouvons alors ajuster h (x) en ajustant les valeurs de θ(0) et θ(1) pour le rendre “moins erroné”. Ce processus est répété encore et encore jusqu’à ce que le système ait convergé sur les meilleures valeurs pour θ(0) et θ(1). De cette manière, le prédicteur devient formé, et est prêt à faire une certaine prédiction dans le monde réel.

Un exemple simple d’apprentissage automatique

Nous nous en tenons à des problèmes simples dans ce poste à des fins d’illustration, mais la raison pour laquelle Machine Learning existe est que, dans le monde réel, les problèmes sont beaucoup plus complexes. Sur cet écran plat, nous pouvons vous montrer au mieux un ensemble de données en trois dimensions, mais les problèmes d’apprentissage machine traitent généralement des données avec des millions de dimensions, et des fonctions prédicteurs très complexes. L’apprentissage automatique résout des problèmes qui ne peuvent être résolus par des moyens numériques à eux seuls.

Avec cela à l’esprit, regardons un exemple simple. Disons que nous avons les données de formation suivantes, dans lesquelles les employés de l’entreprise ont évalué leur satisfaction sur une échelle de 1 à 100:

Machine Learning - Taux de Satisfaction Des Employés
Le taux de satisfaction des employés par salaire est un excellent exemple de Machine Learning

Tout d’abord, notez que les données sont un peu bruyantes. C’est-à-dire que, bien que nous puissions voir qu’il y a un modèle (c.-à-d., La satisfaction des employés a tendance à augmenter à mesure que le salaire augmente), elles ne correspondent pas exactement à une ligne droite. Ce sera toujours le cas avec les données du monde réel (et nous voulons absolument former notre machine en utilisant des données du monde réel!). Alors, comment pouvons-nous former une machine pour prédire parfaitement le niveau de satisfaction d’un employé? La réponse, bien sûr, est que nous ne pouvons pas. Le but de l’apprentissage automatique est de ne jamais faire de suppositions “parfaites”, car le machine learning agit dans des domaines où il n’y a pas de telles choses. Le but est de faire des suppositions qui soient suffisamment bonnes pour être utiles.

Cela rappelle un peu la fameuse déclaration du mathématicien britannique et professeur de statistiques, George E. P. Box, selon laquelle «tous les modèles sont faux, mais certains sont utiles».

Machine Learning - apprentissage machine

Le but de l’apprentissage automatique est de ne jamais faire de suppositions “parfaites”, car le machine learning traite dans des domaines où il n’y a pas de telle chose. Le but est de faire des suppositions qui soient assez bonnes pour être utiles

Machine learning s’appuie fortement sur les statistiques. Par exemple, lorsque nous formons notre machine à apprendre, nous devons lui donner un échantillon aléatoire statistiquement significatif en tant que données d’entraînement. Si l’ensemble d’entraînement n’est pas aléatoire, nous courons le risque que les schémas d’apprentissage automatique ne soient pas là. Et si l’ensemble de formation est trop petit (voir la loi des grands nombres), nous n’apprendrons pas assez et pouvons même arriver à des conclusions inexactes. Par exemple, tenter de prédire les schémas de satisfaction à l’échelle de l’entreprise à partir des seules données émanant de la haute direction serait probablement sujet à des erreurs.

Avec cette compréhension, donnons à notre machine les données qui nous ont été transmis ci-dessus et faisons-la apprendre. Nous devons d’abord initialiser notre prédicteur h (x) avec des valeurs raisonnables de θ(0) et θ(1). Maintenant, notre prédicteur ressemble à ceci quand il est placé sur notre ensemble de formation:Machine Learning - Predictor h(x)

Machine Learning - Taux de Satisfaction Des Employés 1
Prédicteur de machine learning sur un ensemble de données d’apprentissage.

Si nous demandons ce facteur prédictif taux de satisfaction d’un employé gagnant 60 000 $, il pourrait prévoir une cote de 27:

Machine Learning - Taux de Satisfaction Des Employés 2

Dans cette image de Machine Learning, la machine n’a pas encore appris à prédire un résultat probable.

Il est évident que c’était une supposition terrible et que cette machine n’en sait pas beaucoup.

Alors maintenant, donnons à ce prédicteur tous les salaires de notre ensemble de formation, et prenons les différences entre les taux de satisfaction prédites qui en résultent et les taux de satisfaction réelles des employés correspondants. Si nous effectuons un peu de magie mathématique (que nous décrirons bientôt), nous pouvons calculer, avec une très grande certitude, que les valeurs de 13.12 pour θ(0) et 0.61 pour θ(1) vont nous donner un meilleur prédicteur.

Machine Learning - Predictor h(x) 1

Machine Learning - Taux de Satisfaction Des Employés 3Et si nous répétons ce processus, disons 1500 fois, notre prédicteur finira par ressembler à ceci:machine Learning - prédicteur simple

Machine Learning - Taux de Satisfaction Des Employés 4

À ce stade, si nous répétons le processus, nous constaterons que θ(0) et θ(1) ne changeront plus de manière appréciable et nous verrons donc que le système a convergé. Si nous n’avons commis aucune erreur, cela signifie que nous avons trouvé le prédicteur optimal. En conséquence, si nous demandons maintenant à la machine à nouveau pour le taux de satisfaction de l’employé qui fait 60k $, il va prédire une note d’environ 60.

Machine Learning - Taux de Satisfaction Des Employés 5

Une Note Sur La Complexité

L’exemple ci-dessus est techniquement un problème simple de régression linéaire univariante (univariate linear regression), L’exemple ci-dessus est techniquement un problème simple de régression linéaire univariée, qui peut en réalité être résolu en dérivant une simple équation normale et en sautant complètement ce processus de “réglage”. Cependant, considérons un prédicteur qui ressemble à ceci:

Machine Learning -équation en quatre dimensions

Cette fonction prend en entrée quatre dimensions et a une variété de termes polynomiaux. Dériver une équation normale pour cette fonction est un défi important. De nombreux problèmes d’apprentissage automatique prennent des milliers, voire des millions de dimensions de données pour construire des prédictions en utilisant des centaines de coefficients. Prédire comment le génome d’un organisme sera exprimé, ou quel sera le climat dans cinquante ans, sont des exemples de problèmes aussi complexes.

Beaucoup de problèmes de Machine learning modernes prennent des milliers ou même des millions de dimensions de données pour construire des prédictions en utilisant des centaines de coefficients.

Heureusement, l’approche itérative adoptée par les systèmes de l’apprentissage automatique est beaucoup plus flexible face à une telle complexité. Au lieu d’utiliser la force brute, le système de l’apprentissage automatique “sent son chemin” à la réponse. Pour les gros problèmes, cela fonctionne beaucoup mieux. Bien que cela ne signifie pas que l’apprentissage machine peut résoudre tous les problèmes arbitrairement complexes (il ne le peut pas), cela en fait un outil incroyablement flexible et puissant.

Gradient Descent – Minimiser Les Erreurs

Regardons de plus près comment fonctionne ce processus itératif. Dans l’exemple ci-dessus, comment pouvons-nous nous assurer que θ(0) et θ(1) s’améliorent à chaque étape, plutôt que s’empirer? La réponse réside dans notre “mesure de l’erreur” évoquée précédemment, avec un peu de calcul.

La mesure d’erreur est connue comme une fonction de coût (mieux connue par, fonction de perte), J(θ) . L’entrée θ représente tous les coefficients que nous utilisons dans notre prédicteur. Donc, dans notre cas, thêta est vraiment la paire θ(0) et θ(1). J[θ(0),θ(1)] nous donne une mesure mathématique de la fausseté de notre prédicteur quand il utilise les valeurs données de θ(0) et θ(1).

Le choix de la fonction de coût est un autre élément important d’un programme de Machin learning. Dans différents contextes, être “mauvais” peut signifier des choses très différentes. Dans notre exemple de satisfaction des employés, la norme bien établie est la fonction des moindres carrés linéaires:

Machine Learning - la fonction des moindres carrés linéaires

Avec les moindres carrés, la pénalité pour une mauvaise estimation augmente de façon quadratique avec la différence entre la réponse et la bonne réponse, de sorte qu’elle agit comme une mesure très “stricte” de l’erreur. La fonction de coût calcule une pénalité moyenne sur tous les exemples d’apprentissage.

Donc nous voyons maintenant que notre but est de trouver θ(0) et θ(1) pour notre prédicteur h(x) de sorte que notre fonction de coût J[θ(0),θ(1)] soit aussi petite que possible. Nous ferons appel au pouvoir du calcul pour accomplir ceci.

Considérez le graphique suivant d’une fonction de coût pour un problème Machine learning particulier:

machine Learning - tracé en forme de bol de J[θ(0),θ(1)]

Ici, nous pouvons voir le coût associé à différentes valeurs de θ(0) et θ(1). Nous pouvons voir le graphique a une légère cuvette à sa forme. Le fond du bol représente le coût le plus bas que notre prédicteur peut nous donner en fonction des données d’entraînement déterminées. Le but est de “descendre la colline” et de trouver θ(0) et θ(1) correspondant à ce point.

C’est là que le calcul arrive à ce tutoriel d’apprentissage de la machine. Dans le but de garder cette explication gérable, je n’écrirai pas les équations ici, mais essentiellement ce que nous faisons est de prendre le gradient de J[θ(0),θ(1)], qui est la paire de dérivées de J[θ(0),θ(1)] (un sur θ(0) et un sur θ(1)). Le gradient sera différent pour chaque valeur différente de θ(0) et θ(1), et nous indique ce qu’est la “pente de la colline” et, en particulier, “quelle est la voie descendante”, pour ces thêta particuliers. Par exemple, quand nous branchons nos valeurs actuelles de thêta dans le gradient, cela peut nous dire qu’ajouter un peu à θ(0) et soustraire un peu de θ(1) nous mènera dans la direction de la fonction de coût-fond de la vallée. Par conséquent, nous ajoutons un peu à θ(0), et soustrayons un peu de θ(1), et voilà! Nous avons complété un tour de notre algorithme d’apprentissage. Notre prédicteur mis à jour, h (x) = θ(0) + θ(1x), renverra de meilleures prédictions qu’auparavant. Notre machine est maintenant un peu plus intelligente.

Ce processus d’alternance entre le calcul du gradient actuel et la mise à jour des θs à partir des résultats est appelé gradient descent (descente en dégradé).

machine Learning - descente dégradeé

Machine Learning - nombre d'itérations

Problèmes De Classification

Sous Machine Learning (l’apprentissage automatique) supervisée, deux sous-catégories principales sont:

  • Systèmes d’apprentissage machine de régression: Systèmes dans lesquels la valeur prédite se situe quelque part sur un spectre continu. Ces systèmes nous aident avec des questions de “Combien?”
  • Systèmes d’apprentissage machine de classification: Systèmes dans lesquels nous cherchons une prédiction oui ou non, comme “Est-ce que cette tumeur est cancéreuse?”, “Est-ce que ce biscuit répond à nos normes de qualité?”, Et ainsi de suite.

En fait, la théorie sous-jacente est plus ou moins la même. Les différences majeures sont la conception du prédicteur h(x) et la conception de la fonction de coût J(θ).

Jusqu’à présent, nos exemples se sont concentrés sur les problèmes de régression. Voyons maintenant un exemple de classification.

Voici les résultats d’une étude sur les tests de qualité des biscuits, où les exemples d’entraînement ont tous été étiquetés comme “bon cookie” (y = 1) en bleu ou “mauvais cookie” (y = 0) en rouge.

Machin learning - prédicteur de régression

Dans la classification, un prédicteur de régression n’est pas très utile. Ce que nous voulons habituellement, c’est un prédicteur qui fait une supposition quelque part entre 0 et 1. Dans un classificateur de qualité de biscuit, une prédiction de 1 représenterait une supposition très confiante que  que le biscuit est complètement appétissant. Une prédiction de 0 représente une grande confiance que le cookie est une honte pour l’industrie des cookies. Les valeurs comprises dans ce champ représentent moins de confiance, afin que nous puissions concevoir notre système de telle sorte que la prédiction de 0,6 signifie “C’est un peu difficile, mais je vais opter pour oui, Donc vous pouvez vendre ce biscuit”, alors qu’une valeur exactement au milieu, à 0,5, pourrait représenter une incertitude complète. Ce n’est pas toujours la façon dont la confiance est distribuée dans un classificateur, mais c’est un design très commun et fonctionne à des fins de notre illustration.

Il se trouve qu’il y a une bonne fonction qui capture bien ce comportement. C’est ce qu’on appelle la fonction sigmoïde, g (z), et elle ressemble à ceci:

h(x) = g(z)

Machine learning - La fonction sigmoïde

z est une représentation de nos entrées et coefficients, tels que:

Machine Learning - z

afin que notre prédicteur devienne:

machine learning - prédicteur simple h(z)

Notez que la fonction sigmoïde transforme notre sortie dans le champ compris entre 0 et 1.

La logique derrière la conception de la fonction de coût est également différente dans la classification. Encore une fois nous nous demandons “qu’est-ce que cela signifie pour une estimation d’avoir tort?” et cette fois-ci, une très bonne règle empirique dit que si la supposition correcte était 0 et que nous devinons 1, alors nous avons complètement tort, et vice-versa. Puisque vous ne pouvez pas avoir tort que tout à fait tort, la pénalité dans ce cas est énorme. Alternativement, si la supposition correcte était 0 et nous avons deviné 0, notre fonction de coût ne devrait pas ajouter de coût à chaque fois que cela se produit. Si la supposition était juste, mais nous n’étions pas tout à fait confiants (par exemple y = 1, mais h(x) = 0.8), cela devrait venir avec un petit coût, et si notre supposition était fausse mais que nous n’étions pas complètement confiants (par exemple y = 1 mais h(x) = 0.3), ceci devrait venir avec un coût significatif, mais pas autant que si nous avions complètement tort.

Ce comportement est capturé par la fonction log, telle que:

Machine Learning - Fonction Log

Encore une fois, la fonction de coût J(θ) nous donne le coût moyen sur tous nos exemples d’entraînement.

Nous avons donc décrit comment le prédicteur h(x) et la fonction de coût J(θ) diffèrent entre la régression et la classification, mais la descente dégradée fonctionne toujours bien.

Un prédicteur de classification peut être visualisé en dessinant la ligne de démarcation; c’est-à-dire, la barrière où la prédiction passe d’un “oui” (une prédiction supérieure à 0,5) à un “non” (une prédiction inférieure à 0,5). Avec un système bien conçu, nos données de biscuit peuvent générer une limite de classification qui ressemble à ceci:

Machine Learning - fonction sigmoïde

Maintenant, c’est une machine qui sait une chose ou deux sur les biscuits 🙂

Une Introduction Aux Réseaux De Neurones

Aucune discussion de Machine Learning ne serait complète sans au moins mentionner les réseaux de neurones. Non seulement les réseaux de neurones offrent un outil extrêmement puissant pour résoudre des problèmes très difficiles, mais ils offrent également des indications fascinantes sur le fonctionnement de notre propre cerveau, et des possibilités intrigantes pour créer un jour des machines vraiment intelligentes.

Les réseaux de neurones sont bien adaptés aux problèmes d’apprentissage automatique où le nombre d’entrées est gigantesque. Le coût de traitement d’un tel problème est trop écrasant pour les types de systèmes dont nous avons parlé plus haut. Cependant, il s’avère que les réseaux de neurones peuvent être efficacement réglés en utilisant des techniques qui sont en principe similaires à la descente dégradée. Une discussion approfondie des réseaux de neurones est au-delà de la portée de ce tutoriel, mais je vais bientôt rédiger un sujet bien détaillé dans un prochain article.

Machine Learning Non Supervisé

L’apprentissage non supervisé est généralement chargé de trouver des relations dans les données. Il n’y a pas d’exemples d’apprentissage utilisés dans ce processus. Au lieu de cela, le système reçoit une série de données et est chargé de trouver des modèles et des corrélations. Un bon exemple est l’identification des groupes d’amis très soudés dans les données des réseaux sociaux.

Les algorithmes utilisés pour ce faire sont très différents de ceux utilisés pour l’apprentissage supervisé, et le sujet mérite son propre poste. Cependant, pour quelque chose à mâcher entre-temps, jetez un oeil aux clustering algorithms (algorithmes de mise en cluster) tels que k-means, et regardez également dans dimensionality reduction system (les systèmes de réduction de dimensionnalité) tels que principle component analysis (l’analyse des composants principaux). Notre article précédent sur les  big data mégadonnées aborde également un certain nombre de ces sujets plus en détail.

Conclusion

Nous avons couvert ici une grande partie de la théorie de base qui sous-tend le domaine de l’apprentissage automatique, mais bien sûr, nous avons à peine effleuré la surface.

Gardez à l’esprit que pour vraiment appliquer les théories contenues dans cette introduction aux exemples d’apprentissage automatique de la vie réelle, une compréhension beaucoup plus profonde des sujets abordés ici est nécessaire. Il y a beaucoup de subtilités et de pièges dans le machine learning, et beaucoup de façons d’être égaré par ce qui semble être une machine à penser parfaitement bien réglée. Presque chaque partie de la théorie de base peut être jouée avec et modifiée à l’infini, et les résultats sont souvent fascinants. Beaucoup se développent dans de nouveaux domaines d’études qui sont mieux adaptés à des problèmes particuliers.

De toute évidence, l’apprentissage automatique est un outil incroyablement puissant. Dans les années à venir, il promet d’aider à résoudre certains de nos problèmes les plus urgents et d’ouvrir de nouveaux horizons.

La demande des ingénieurs en matière de machine learning va continuer à croître, offrant des chances incroyables de faire partie de quelque chose de grand. J’espère que vous considérez entrer dans l’action!

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.