You are on page 1of 14
2orror2019 Ination au Machine Leaming avec Python - La théorio— Makina Corpus Initiation au Machine Learning avec Python - La théorie —— Par Gaél Pegliasco — publié 071062017, ect le 31/01/2019 Dans ce tutoriel en 2 parties nous vous proposons de découvrir les bases de lapprentissage automatique et de vous y initier avec le langage Python. Cette premiére partie se veut non technique et présente les concepts du Machine Learning, les différents types d'apprentissage et leurs principaux algorithmes. |! situe enfin Python dans cet univers en présentant les nombreuses librairies a votre disposition pour aborder cette discipline. Tutoriel en 2 parties: + Initiation au machine learning avec Python - La théorie * Initiation au machine learning avec Python - La pratique Présentation de l'intelligence artificielle Introduction Réseau de neuronnes Cet article est la premiére partie d'un cours sur 'apprentissage automatique avec Python. Dans cette premiere partie tente de vous offrir une vision des différents domaines de l'intelligence artifcielle et ‘comment Python s'y distingue. Elle poursuit sur une présentation détaillée de 'apprentissage automatique qui représente aujourd'hui trés certainement la branche la plus active de cette discipline au point d'étre sur les lévres de toutes les grandes entreprises. Nous allons essayer d'en poser les fondations pour vous aider & en saisir la vue globale, la fameuse « big picture », Ce qui vous aidera a chi Nous présenterons + En quoi Python est bien disposé pour faire de NA * Un rapide historique de IIA. + Lapprentissage automatique, ses domaines et principaux algorithmes. Quelles sont les qualités d'un langage pour |'lA et pourquoi utiliser Python ? Python, en tant que langage seul, n'est pas spécialement plus adapté que les autres langages pour faire de IIA. Wikipédia, dans sa version anglaise, présente une page décrivant les langages les plus utilisés pour IIA. On y retrouve Python, mais pas pour ses qualités internes. Pour lA il est surtout utile que le langage permette + La « récursivité » Aujourd’hui quasiment tous les langages le permettent, seuls les langages non procéduraux, comme les vieux BASIC des TO8 n’offrant pas la notion de fonction sont dépourvus de cette capacité. TToutefois, les optimisations de type tail call ne sont pas disponibles en Python. + La programmation orientée objets La encore, la plupart des langages moderes couramment utilisés en disposent. Python offre toute la mécanique requise: héritage, surcharge, méthodes virtuelles ; méme s'll est moins rigoureux que d'autres (pas de visibilité private/publiciprotected), + Le paradigme fonctionnel Python permet ce paradigme de programmation méme sil est moins "naturel" que dans d'autres langages ‘comme Haskell Lisp ou Erlang. + Des fonctionnalités de programmation logique, telle la logique des prédicats utilisée par PROLOG. Python n’offre rien de tel en nati Clairement, Python n'est pas vraiment au dessus des autres langages pour Intelligence artificielle. Mais il s'y préte bien et sa syntaxe concise et facile permet d'y progresser trés certainement plus aisément que dans dautres langages. I dispose aussi de quelques librairies spécialisées en IA qui lui permettent de siinitier & cette discipline. hitps:/Imakina-corpus. comllog'metir!2017initaton-au-machine-leamring-avee-pythan-theore ana 2orror2019 Ination au Machine Leaming avec Python - La théorio— Makina Corpus En outre, concernant le machine learning, la problématique la plus difficile est souvent de disposer de bons jeux de données - et cela va parfois bien au dela du besoin de savoir implémenter ou ullliser correctement un algorithme d'apprentissage automatique. Sur ce plan, Python est particulérement bien outillé avec des librairies comme Numpy ou Pandas, par exemple. Enfin, concernant le domaine de 'apprentissage automatique Python se distingue tout particuliérement en offrant une pléthore de librairies de tres grande qualité, couvrant tous les types c'apprentissages disponibles sur le marché ; le tout, accompagné d'une grande et dynamique communauté, Par exemple, le projet Scikit-Learn qui est un des plus réputés pour cette discipline compte prés de 800 contributeurs. Crest énorme ! Imaginez une équipe de 800 développours. Pou de sociétés ot de projets informs ce nombre, Mais il faut relativiser, ils sont loin de tous y travailler a plein temps. Intelligence Artificielle Le site Wikipédia propose un excellent article sur histoire de lintelligence arlificielle relatant les grandes dates, sociétés et mouvements de pensées ayant contribué a son développement. intelligence artiicielle trouvé son nom a la conférence de Dartmouth en 1956. Mais elle a débuté dés le début des années 1950 avec, notamment, les travaux d'Alan Turing qui s'est posé la question de savoir si fon pouvait faire penser un ordinateur. {I proposa pour cela un test, dt, test de Turing, dans lequel une personne discute au travers d'un ordinateur et doit deviner si son interlocuteur est une machine ou un étre humain, Si olle n'y arrive pas, 'on pourra conclure quil est possible de faire fonctionner un ordinateur avec des algorithmes de logique semblables a notre maniére de penser, voire la dépassant. Vous trouverez ci-dessous des exemples de programmes de ce genre: * ELIZA et son implémentation en Python * ALICE bot Silly a encore quelques années il était trés facile de deviner qu'une machine nous parlait, aujourd'hui nous arrivons au niveau du demier point, voire au dela. En effet, dans plusieurs activités nécessitant beaucoup de rélexion, ordinateur s'est montré plus fort que I'étre humain, comme avec: La victoire en 1997 aux échecs du programme Deep Blue d'18M contre le champion du monde Garry Kasparov LLe jeu de Go, oi le programme AlphaGo de Google a battu le champion du monde Lee SeDol en 2016 Le passage, contesté toutefois, du test de Turing par le programme Eugene Goostman La conduite automobile ou les voitures sans chauffeur semblent plus sires que celles conduites par des humains Et quelques autres... intelligence artiicielle a suscité et continue toujours de susciter de nombreux espoirs pour 'amélioration de notre condition humaine, mais le fait qu'elle arrive aujourd'hui dans certains domaines 4 nous égaler, voire & nous dépasser, suscite de nombreuses inquiétudes notamment auprés des plus grands dirigeants informatique de cette planste, La page de Wikipédia consacrée la discipline résume trés bien ces craintes et espoirs & propos de IIA. Mais ceci reste un autre débat. Algorithmes et techniques hitps:/Imakina-corpus.comlblog!metir!2017/intiaton-au-machine-leaming-avecpythan-theorie ana 2orror2019 Ination au Machine Leaming avec Python - La théorio— Makina Corpus LA a connu ses débuts en informatique avec les systémes automates, la récursivé et des langages comme Lisp et Prolog. Dans ses premiers jours Fon parlat surtout de ragles logiques, de récursivité, d'analyse syntaxique, de graphes, et systémes experts ‘Aujourd’hul les techniques mises en oeuvre pour faire réfléchir nos machines sont multiples: Logique floue Algorithme génétiques Data mining Inference bayésienne Agents intelligents Réseaux de neuronnes Apprentissage automatique Mais actuellement, en 2017, ce sont l'apprentissage automatique et plus particuliérement les réseaux do ourones et le deep learning quitirent ce domaine vers le haut, En effet, IA a végété plusieurs années a plusieurs reprises notamment dans les années 1970 et 1990 ; car elle a &té longtemps limitée par les coats et performances des machines (vitesse, capacité mémoire, capacité de stockage) qui ont miné les espérances qui y avaient été placées, engendrant frustrations et reculs des investissements par les industries, Aujourd'hui les superordinateurs et le cloud ont aboli ces limites et nous assistons a une explosion de ses Possibilités qui semblent inarrétables. Les grappes de serveurs OVH, Amazon AWS et Google cloud accessibles avec le budget d'un particulier en sont un tres bon exemple. Nous pouvons de nos jours lancer des calculs complexes et analyser des miliards de données pour des colt dérisoires. Cela dope la recherche et donne son envol a Iintelligence arfcielle. Cela ouvre les voies au Machine learning qui prend toute sa dimension avec des trés grands volumes de données. L'arrivée du Big Data a ainsi propulsé un nouveau domaine de IIA : apprentissage automatique. Et celui-ci, donne déja de fabuleux résultats qui dopent tous les investissements du secteur ! Centres de recherches, banques, assurances, finance, aérospatiale, automobile, pharmacie... Toute lindustrie s'en empare, "Google's setf-driving cars and robots get a lot of press, but the company's real future is in machine learning, the technology that enables computers to get smarter and more personal.” - Eric Schmidt (Google Chairman) Des disciplines extrémement compliquées et coliteuses comme la reconnaissance vocale, la reconnaissance Visuelle/faciale, autrefois réservées a des industriels et 'armée, sont devenues des éléments de notre quotidien: + Reconnaissance d'amis dans les albums photos ou via les moteurs de recherche + Reconnaissance vocale (lors d'un appel téléphonique), pour dicter un SMS votre smartphone ou encore pour reconnaltre une chanson a la radio (applications Shazam, SoundHound,...) + Pilotage automatique de nos automobiles + Lart aussi n'y échappe pas : Musique, Poésie, ou encore la Peinture en immitant Rembrant ‘On commence méme a voir réver les ordinateurs. hitps:/Imakina-corpus. comlalogImetir!2017initaton-au-machine-leamring-avee-pythan-theore ana 2orror2019 Ination au Machine Leaming avec Python - La tnéorio— Makina Corpus LApprentissage Automatique (Ou Machine Leaming Définition Llapprentissage automatique peut-étre vu comme l'ensemble des techniques permettant & une machine d'apprendre a réaliser une tache sans avoir & la programmer explicitement pour cela. Arthur Samuel. Définition reprise dun article d’Antoine Gaudelas U'apprentissage automatique ou apprentissage statistique est un domaine de intelligence artficielle ui conceme ia conception, analyse, le développement et implémentation de méthodes permettant un ordinateur a'évoluer par un processus systématique, et ainsi de remplir des taches difficiles ou problématiques a remplir par des moyens algorithmiques plus classiques. Définition adaptée de Wikipédia En d'autres termes, lapprentissage automatique est un des domaines de lintelligence artiicelle visant & pormettre un ordinateur d'apprendre des connaissances puis de les appliquer pour réaliser des taches que hous sous-traitions jusque [a & notre raisonnement, Le type de taches trallées consiste généralement en des problémes de classification de données: * Voici 50 photos de ma fille, voici maintenant toutes les photos de mon album, retrouve celles ou se trouve ma fille * Voici 10000 personnes avec leurs caractéristiques (Age, localisation, taille, profession...), rassemble-les en 12 groupes cohérents partageant les mémes points communs + Voici les parametres de vol des avions de ma fiotte avec les pannes survenues a chaque vol, quand il s'en Produit. Maintenant voici les demiers vols réalisés par cet avion, indique-moi quand arrivera la prochaine panne et sur quel élément elle se produira. * Voici les livres écrits par Victor Hugo, voici une nouvelle dont nous recherchons I'auteur, est-elle de lui ? * Voici des mesures scientifiques réalisées sur un échantilon de données, elles semblent répondre a une loi Mathématique, essaye de lapproximer par des fonctions Mathématiques puis prédit les valeurs des prochaines données Les possibilités sont tras grandes et Ion retrouve l'apprentissage automatique dans de nombreux domaines de la vie réelle comme: La vision par ordinateur La conduite automobile sans chauffeur La prédiction de pannes identification des personnes indécises susceplibles de se laisser convaincre par un candidat a lélection présidentielle américaine optimisation de consommation électrique chez Google + La surveillance de la péche iliégale ou de la déforestation + La traduction linguistique Présen automatique e l'apprentissage Quand on parle d'apprentissage automatique, on parle de types d'apprentissages, parmi les plus répandus on citera’ hitps:/Imakina-corpus. comllog'metir!2017initaton-au-machine-leaming-avee-pythan-heorie ana 2orror2019 Imation au Machine Leaming avec Python - La tnéorio— Makina Corpus + supenvisé, + non supervisé, * par renforcement, * par transfert Yann Le Cun qui est considéré comme lun des inventeurs du Deep Learning résume ainsi ces différentes classes: La majorité des types d'apprentissages chez !homme et animal sont non supervisés. Si Vapprentissage automatique était un gateau, l'apprentissage non supervisé serait ce gateau, Vapprentissage supervisé serait le nappage du gateau et lapprentissage par *renforcement" serait la cerise sur le gateau. Nous savons faire le nappage et la cerise, mais nous ne savons pas faire le gateau. Limage est bonne, méme si certains ont des avis plus nuancés, Chaque type d'apprentissage peut s'appuyer sur différents algorithms. Linear Regression (regression linéaire), Logistic Regression (régression logistique), Decision Tree (arbre de décision), Random forest (foréts d'abres/arbes aléatoires) ‘SVM (machines a vecteur de support), Naive Bayes (classification naive bayésienne), KNN (Plus proches voisins), Gradient Boost & Adaboost, Dimensionality reduction QLearning Réseaux de neurones Apprentissage supervisé Llapprentissage supervisé permet de répondre & des problématiques de classification et de régression. L'idée consiste a associer un label & des données sur lesquelles vous possédez des mesures. ‘+ Siles labels sont discrets (des libellés ou valeurs finies) on parlera de classification. + Si au contraire les labels sont continus (comme l'ensemble des nombres réels), on parlera de régression. Classification La classification consiste & donner des étiquettes a ses données: + Vous disposez d'un ensemble de données connues que vous avez déja classé (photos, plantes, individu: + Vous souhaitez, & partir de cette premiere classification, dite connaissance, classer de nouveaux éléments hitps:/Imakina-corpus.comlalog!metir!2017/intiaton-au-machine-leaming-avec-pythan-theorie sna 2orror2019 Ination au Machine Leaming avec Python - La théorio— Makina Corpus Certains logiciels d'albums photos utlisent ce type d'apprentissage pour classer vos images: + Ils vous permettent de désigner un ensemble de photos contenant votre enfant et dindiquer oli se trouve ce dernier dans ces images. C’est la phase d'apprentissage * Puis vous lui dites, voici ma collection de 15000 photos, retrouve toutes celles qui contiennent mon enfant Le logiciel analyse alors votre collection et tente de retrouver celles qui présentent une similitude avec le jeu de données que vous lui avez enseigné. Certains logiciels vous indiquent méme ou se situe votre enfant dans Vimage Ceest la phase de prédiction Un autre exemple trés parlant est la détection automatique de Spams: + Vous disposez d'un grand nombre d'emails déja classés avec une étiquette Span/Valide + Vous souhaitez classer les nouveaux emails entrant sur la connaissance des emails déja classés Los résultats sont généralement trés bons, vous trouverez facilement de nombreux exemples sur Internet, notamment en Python, comme celui-ci utlisant un réseau de neurones, Ce type de classification permet de répondre a de nombreux problémes d'identification : reconnaissance de plantes, de personnes, de produits, reconstitution de valeurs manquantes (en remplacement d'une interpolation), ete. II pout utiliser différents types d'algorithmes, comme /es plus proches voisins, les machines a vectours de supports, les arbres décisionnels,. Régression Imaginez un ensemble de points sur une image en 2 ou 3 dimensions, ayant une intensité lumineuse différente, Par exemple une image satellite des étolles lointaines ou encore une photo de nuit des feux des véhicules en circulation, Cotte intensité lumineuse est mesurable et peut étre considérée comme un label, mais il est différent pour chaque étoile. C'est un label continu qui peut prendre toute valeur au dessus de 0. Les régressions vont nous permettre de s'approcher d'une équation idéale permettant de déterminer la luminosité de chacune de nos étolles en fonction de leur position ou inversement la distance des véhicules en fonction de la luminosité de leurs phares. En astronomie ce procédé est utilisé pour identifier la distance des galaxies a partir de multiples observations comme les mesures de lintensité lumineuse de chacune d'elles dans les différentes longueurs g'ondes, Cela s‘appelle le décalage vers le rouge photométrique Les algorithmes tels les régressions linéaires, machines & vecteur de support ou encore les foréts d'arbres de décision sont taillés pour ce type de traitement. Apprentissage non supervisé Lapprentissage non supervisé répond au mame besoin de classification de données. Mais contrairement & Vapprentissage supervisé, vous ne possédez pas de données déja classées/connues servant de base ala prédiction, hitps:/Imakina-corpus. comlalog'metir!2017initaton-au-machine-leaming-avee-pythan-theore ena 2orror2019 Ination au Machine Leaming avec Python - La tnéorio— Makina Corpus Vous utiisez ce type d'algorithme pour répondre & 2 types de taches: + La classification de données, mais comme vous n’avez pas encore les labels, on parle alors de clustering c'est & dire de regroupement. + autre tache consiste a réduire le nombre de dimensions de vos données tout en conservant une variation/un regroupement semblable aux données dorigine, on parle alors de dimensionality reduction Clustering Avec ce type d'apprentissage il n'y a qu'une phase de prédiction. ‘Vous alimentez Valgorithme de toutes vos données et lul demandez de les répartir en N groupes. L'algorithme tentera alors de créer des groupes pour lesquels les paramatres de chaque donnée sont les plus similaires. Queques exemples ‘applications: + Classer les cultures dune région: Vous disposez des métriques sur les parcelles agricoles d'une région (teneur en nitrates, phosphates, salinité, surface, haies, ...) et vous savez qu'ly a 12 cultures différentes. Vous allez demander a votre classifieur de créer 12 groupes en les classant selon des critéres de ressemblance. + Vous possédez des statistiques sur une population (salaire, localité, age, profession, nombre d'enfants), vous souhaitez les regrouper en différentes catégories sociales. Les algorithmes des plus proches voisins, arbres de décision, les réseaux de neurones, la propagation par affinité sont généralement utilises pour ce type de traitement, Réduction de dimension Ici vous avez un problame un peu différent : chaque information/donnée que vous souhaitez traiter possade trop de paramétres, soit pour étre visualisée, soit pour étre traitée dans des temps raisonnables et sur des machines limitées en ressources, Vous devez donc diminuer le nombre de ces paramétres tout en conservant une cohérence sur leurs variations globale. De sorte que si vous regroupiez vos données en utlisant tous les paramétres vous obtiendriez sensiblement le méme regroupement qu'avec les paramétres réduits. Un usage type consiste a visualiser les groupes des données dans un espace en 2D ou 3D. Un algorithme fréquemment utilisé est l'analyse en composantes principales (PCA), mais il en existe d'autres ‘comme la factorisation en matrices non-négatives. Apprentissage par renforcement « Lintelligence, c'est la faculté d'adaptation » André Gide Ce type d'apprentissage s'applique plus a des problémes d'optimisations. L'idée étant de faire prendre des décisions & un systéme pour obtenir un résultat qui soit le meilleur possible. Co type dalgorithme est trés inspiré d'études du comportement en biologie animale ou psychologie. I! est daailleurs étroitement lié & ces disciplines. hitps:/Imakina-corpus.comlblog!metir!2017/intiaton-au-machine-leaming-avecpythan-theorie m4 2orror2019 Ination au Machine Leaming avec Python - La théorio— Makina Corpus Pour cela 'algorithme va appliquer des ragles sur son environnement pour arriver au résultat attendu. II dispose de la faculté de mesurer impact de la régle sur environnement : on se rapprache du but ou on s'en écarte A partir d 1a, il peut donc se constituer une base de connaissances des gains réalisés par chaque action qui V'aidera a améliorer ses décisions et ainsi trouver les meilloures maniéres d'atteindre son but. Les algorithmes ne garantissent pas forcément d'obtenir le meilleur résultat, mais de s'en approcher. La oi ils, commencent 4 se complexifier c'est que lobtention de petits gains immédiats ne doit pas empécher de chercher des gains plus forts qui ne s‘obtiennent qu’aprés plusieurs actions ayant entrainé une suite de pertes. Différents algorithmes sont disponibles pour ce type d'apprentissage, comme le Q-Learning ou Monte-Carlo, SARSA, mais ce sont les réseaux de neurones qui semblent étre les plus pratiqués lorsque l'on regarde la, literature sur Internet, Des exemples dutiisation sont: La robotique: faire se déplacer un robot dans des conditions mouvantes Optimiser le déplacement des ascenseurs Router des paquets réseau Jeux de stratégie Chemin parcouru par les fourmis pour acheminer leur nourriture a la fourmiliére Pour creuser le sujet: + Apprentissage par renforcement - de la théorie a la pratique + Un cours de IINRIA et quelques autres + Des vidéos de robots réalisant diverses taches grace a l'apprentissage par renforcement Apprentissage par transfert Lapprentissage par transfert vise a utlliser les connaissances d'un jeu de t€ches sources pour non seulement Influencer fapprentissage mais aussi améliorer les performances sur une autre tache cible. II consiste en quelque sorte & utiliser les connaissances acquises pour les ré-appliquer dans un autre environnement, Pour étre efficace l'environnement cible ne doit pas étre trop différent de celui des taches sources, sinon des transferts négatifs seront réalisés menant au contraire du résultat recherche. Un exemple dlutiisation consisterait a transférer des t€ches d'un réseau de neurones utilisé pour la reconnaissance manuscrite de 'écriture dans une langue pour lappliquer & une autre langue, méme tres différente ({rangais/japonais). Les différents types d'algorithmes La régression linéaire La régression linéaire consiste & déterminer une équalion de droite/plan qui se rapproche au plus pras de ensemble des points étudiés. L'idée étant de déterminer les coefficients a et b de 'équation y= FQ) = art b+ els) + yest la variable que l'on cherche a calculer, prédire, elle est dite endogéne (dépendante). + xestla variable prédictive, elle est dite exegéne (indépendante). * aetb sont les paramétres (les coefficients) du modéle. Dans le cas de la régression simple, @ est appelée la pente et b est appelée la constante. Slepsilon$ est le bruit généré lors de la mesure et perturbant la bonne identification de la relation On utilise ensuite cette équation pour prédire de nouvelles données. Ce systime rest efficace que si les relations entre vos données sont simples. Dans le cas de courbes plus complexes qu'une droite ou qu'un plan on se tournera vers des solutions polynomiales et gaussiennes. Les algorithmes de type SVM sont trés adaptés pour ces cas plus avancés. La régression logistique Les régressions logistiques, aussi appelées modéle logit, sont un cas particulier des régressions linéaires. Cela consiste a modéliser leffet dun vecteur de données/paramétres aléatoires sur une variable binomiale, c'est a dire pouvant avoir seulement 2 états, Vrai/Faux (0/1), d'ot le terme logistique, yest la variable expliquée et les vecteurs (x1, x2, .., xn) les variables prédictives/explicaltives. hitps:/Imakina-corpus. comlalogImetir!2017initaton-au-machine-leamring-avee-pythan-theore ana 2orror2019 Ination au Machine Leaming avec Python - La théorio— Makina Corpus Le site Wikipédia foumnit une description complate du modéle probabiliste associé. II s‘agit bien dune régression linéaire méme si le fait de n’avoir que 2 valeurs possibles pour 'y fait penser & un problame de classification. Elle est utiisée dans de multiples cas, dont voici des exemples issus de Wikipédia: + En médecine, elle permet par exemple de trouver les facteurs qui caractérisent un groupe de sujets malades par rapport a des sujets sains. + Dans le domaine des assurances, elle permet de cibler une fraction de la clientéle qui sera sensible & une police d'assurance sur tel ou tel risque particulier. Dans le domaine bancaire, pour détecter les groupes a risque lors de la souscription d'un crédit. + En économeétrie, pour expliquer une variable discréte. Par exemple, les intentions de vote aux élections. Les arbres de décision Les naturalistes qui sont parmi vous auront probablement connu le logiciel "Mais quel est donc cet oiseau?" {I permettait en quelques questions et en affichant des silhouettes d'oiseaux de vous aider & identifier un oiseau que vous aviez vu dans la nature, Méme si vous ne connaissez rien a lornithologie, Plus récemment application Akinator vous amuse en devinant un personnage auquel vous pensez. @ Ces 2 applications sont basées sur le principe des arbres de décision: + A.chaque noeud une question est posée permettant de limiter ‘ensemble des solutions restantes en 2 parties disjointes et les plus importantes possibles. Dans le principe de a dichotomie, calcul de la médiane. + Puis au noeud suivant une autre question est posée pour limiter de la méme maniére ‘ensemble des solutions restantes + Jusqu’a ce quil n’en reste plus qu'une seule, Dans le cas de l'apprentissage automatique les arbres de décision sont construits par 'algorithme pour essayer de diviser ainsi les données sur les paramétres des vecteurs: + Chaque noeud interne décrit un test sur un paramétre d'apprentissage + Chaque branche représente un résullat du test + Chaque feuille contient la valeur de la variable cible © une étiquette de classe pour les arbres de classification © une valeur numérique pour les arbres de régression La pertinence de ralgorithme construisant l'arbre se mesurera a sa capacité de trouver les parametres qui permettent de maximiser le partage a chaque nocud, Les arbres de décision slutlisent en apprentissage supervisé. hitps:/Imakina-corpus. comlalog'metir!2017initaton-au-machine-leaming-avee-pythan-theore ona 2orror2019 Ination au Machine Leaming avec Python - La théorio— Makina Corpus article Wikipédia fourni en lien décrit bien les contraintes techniques de construction de ces arbres et les difficultés de prédire un label unique ainsi que différents inconvénients, comme: + Linfluence de l'ordre des paramatres prédicteurs dans le graphe + La difficulté de représenter des régies comme le Ou Exclusif Ils sont toutefois trés utiles pour essayer de comprendre le cheminement des paramatres de l'information et peuvent étre un bon camplément aux régressions logistiques. Random forest Les foréts dlarbres décisionnels/aléatoires sont basées sur le concept de bagging/inférence statistique et d'arbres décisionnels. Lidée étant d'apprendre sur de multiples arbres de décision travaillant sur des sous-ensembles de données les plus indépendants possible. Cela permet de régler plusieurs problémes inhérents aux arbres de décision uniques comme laltération du résullat selon ordre des paramétres prédicteurs dans les noeuds, ou encore de réduire leur compléxité SVM Les machines a vecteur de support sont trés utilisées dans les problémes de régression et offrent une extension ‘aux regressions linéaires lorsque les données présentes des niveaux de séparalion plus tordu: Elles permettent de calculer des données quand leurs labels ne sont pas séparables par une équation linéaire. Elles proposent de séparer les données avec des équations plus riches comme des polynomes, gaussiennes, ate, Elles connaissent un trés grand succés, pour de multiples raisons: Elles peuvent travailler avec des données disposant d'un tres grand nombre de paramatres Elles utiisent peu d'hyperparamatres Elles garantissent de bons résultats théoriques Elles peuvent égaler ou dépasser en performance les réseaux de neurones ou modéles gaussiens Naive Bayes La classification naive bayésienne est basée sur le théoréme de Bayes permettant de déterminer la distribution d'une loi binomiale. II s‘agit d'une équation décrivant la relation entre des probabilités conditionnelles de quantités statistiques. Elle s‘inscrit dans le groupe des classifieurs linéaires. Nous souhaitons ici trouver la probabilté d'un label a partir de paramétres observés, noté P(L|params) Le théoréme de Bayes permet de calculer cette information: P(params | L)P(L) trea Piprams La génération d'un modéle sur cette loi se fait pour chaque label et peut étre ardue. Le madale est dit naif car il simplifie grandement cette tche en procédant a plusieurs approximations naives, lest de ce fait trés rapide et c'est un bon modéle pour commencer une classification. KNN hitps:/Imakina-corpus. comlalogImetir!2017initaton-au-machine-leamring-avee-pythan-theore ron 2orror2019 Ination au Machine Leaming avec Python - La théorio— Makina Corpus Lalgorithme des plus proches voisins est relativement simple. Une de ses forces est de ne calculer aucune information dans le processus d'apprentissage. I recherche les N plus proches voisins (par un calcul de distance) entre la donnée a prédire et les données connues. Il retourne alors la classe de la majorité des voisins, ‘Assez simple & mettre en oeuvre il peut générer beaucoup de calculs et ne pas étre adapté & de fortes volumétries ; notamment si le nombre de paramatres est trés grand, Gradient Boost & Adaboost, Le gradient boosting est un algorithme s‘appliquant aux problémes de classification et régression. Lidée est d'améliorer la prédiction ot la vitesse en combinant un ensemble d'algorithmes d'apprentissages plus simples au travers d'un arbre de décision. Le travail revient alors a identifier la fonction permettant de maximiser le choix des différents algorithmes. AdaBoost est une variante du gradient boost. I combine via une somme pondérée Ie résultat de différents algorithmes d'apprentissage plus simples. || est adaptatif dans le sens ou il peut jouer sur le poids des différents algorithmes simples en fonction de la qualité de leurs résultats. Réseaux de neurones et deep learning Les réseaux de neurones tentent de reproduire le fonctionnement des neurones biologiques. Pour vulgariser leur fonctionnement: + ils'agit d'un graphe ou chaque nosud représente un neurone * chaque neurone regoit une information quand il est stimulé + ilne la transmet (généralement en la modifiant ou complétant) aux neurones auxquels il est connecté que si celle-ci dépasse Un certain seuil lis sont généralement trés rapides et permettent des mécanismes perceptifs indépendants du concepteur de Valgorithme, Ils ouvrent la voie au raisonnement de la machine. Lalgorithme porte sur la construction d'un automate dont les états peuvent évoluer: + Les valeurs seuils peuvent étre adaptées au fl des informations traitées en utilisant des systémes correctifs de récompense/blame par exemple + Les paramétres synaptiques peuvent aussi varier + Tout comme les connexions entre neurones Dans ces réseaux la phase d'apprenlissage vise & faire converger les paramatres des données vers une classification optimale. Ils nécessitent énormément de données d'apprentissage et ne sont pas adaptés a tous les problémes notamment si le nombre de paramatres en entrée est trop faible. Le terme Deep learning désignes des réseaux de neurones juxtaposés, ou encore constitués de plusieurs couches Il sinspire, entre autres, des demigres avancées en neuroscience et des modéles de communication de notre systéme nerveux. hitps:/Imakina-corpus. comlalogImetir!2017initaton-au-machine-leamring-avee-pythan-theore nna 2orror2019 Ination au Machine Leaming avec Python - La théorio— Makina Corpus Certains l'associent aussi a une modélisation offrant un plus haut niveau d'abstraction des données pour offtir de meilleures prédictions. Le deep learning est particuliérement efficace sur le traitement de limage, du son et de la vidéo. On |e retrouve dans les domaines de la santé, robotique, vision par ordinateur Un projet particuliérement réputé est le projet Horus développé par NVidia qui permet & des personnes souffrant de déficience visuelle de s‘orienter et reconnaitre des objets. Du fait de leur grand besoin en données d'apprentissage ils sont tres cotteux en ressources matérelles Choisir son type d'apprentissage et son algorithme Il est nécossaire de réunir plusiours ingrédionts qui doivent éire savamment mélangés pour réussir une IA: La qualité des données La puissance de caleul (Ie matére!) Les algorithmes Etle talent Quand on demande a un expert en apprentissage automatique quel algorithme est le mieux pour tel probléme, il vous répond en général ‘ga dépend, il faut en essayer plusieurs et voir celui qui fonctionne le mieux sur ce cas Et en effet cela dépend: De la qualité des données dont vous disposez pour l'apprentissage et pour la classification Des paramatres que vous utilisez avec vos données De la quantité des données sources et a classer Du temps d'exécution requis Des paramétres disponibles pour influencer le comportement de l'algorithme En général, vous devez en essayer plusieurs pour vous faire une idée. Parfois vous en utiliserez vraiment plusieurs, selon la précision souhaitée, si celui qui est généralement le meilleur donne un résultat insatisfaisant sur un jeu de données précis, un autre s'en sortira peut-étre mieux sur ce cas la, Voici déja quelques liens, faute de mieux pour le moment, pour vous aider a choisir vos algorithmes selon vos besoins de classification: + Choisir son algorithme + Cours sur 'apprentissage automatique Heureusement il existe des techniques permettant de mesurer la qualité d'un algorithme sur un jeu de données. Nous vous présenterons quelques outils pour y parvenir. Nous verrons alors que sur certains domaines, certains algorithmes semblent doffice destinés & répondre avec le plus de pertinence. Machine Learning et Python Python a su s‘installer/s'imposer dans I'univers scientifique et industriel Le domaine du machine learning n'est pas resté a l'écar bien au contraire. Les formidables possibilités de calcul du langage ont permis de percer ce secteur et de multiples librairies ont vu le jour, Annoy, librairie extrémement rapide implémentant la recherche des plus proches voisins Catfe, Deep leaming framework Chainer, Framework intuitif pour les réseaux de neurones neon, Deep Leaming framework extrémement performant NUPIC, Plateforme d1A implémentant les algorithmes d'apprentissage HTM ‘Shogun, Large Scale Machine Learning Toolbox TensorFlow, Réseau de neurones disposant d'une API de haut niveau Theano, Librairie d'apprentissage automatique destinée a évaluer et optimiser des expressions mathématiques Torch, Framework d'algorithmes d'apprentissage trés performant disposant de binding Python Theanets, deep leaming Le plus épatant est qu‘elles sont toutes généralement dune grande qualité et utilisées dans des environnements professionnels. hitps:/Imakina-corpus. comllog'metir!2017initaton-au-machine-leamring-avee-pythan-theore vana 2orror2019 Ination au Machine Leaming avec Python - La théorio— Makina Corpus Toutefois, Scikit-Learn est probablement la plus populaire des librairies disponibles pour ce langage. Elle possade un grand nombre de fonctionnaltés spécialisées dans analyse de données et le data Mining qui en font un outil de choix pour les chercheurs et développeurs. Pour aller plus loin Le site Wikipédia renferme de trés bonnes références sur intelligence artificielle Le site O'Reilly tient un excellent blog sur IIA et propose quelques livres gratuits trés intéressants The New Artificial Intelligence Market Intelligence Artifical Now What Is Artificial Intelligence + AFIA, Association Frangaise pour lIntelligence Artificielle + L’Association OpenAl fondée par Elon Musk propose de développer une Intelligence Artiicielle ouverte fonetionnant pour le bien de Thumanité Elle fournit de nombreuses ressources et notamment pour tester vos algorithmes d'apprentissage automatique. + Le livre Python Data Science Handbook entiérement en notebooks A lire absolument par tout Data Scientist ! + Un autre petit livre gratuit What you need to know about Machine Learning qui foumnit une bonne prise en main de la discipline Références Los images ulilisées dans ce document sont sous des licences libres et proviennent des sites + Wikipédia + Pixabay Contenus corrélés + Présentation de écosystéme Python scientifique ‘+ Formation Python pour la data science * Mise en place de projets Deep Leaming avec Keras Menu Contact Société Suivez-nous hitps:/Imakina-corpus. comllog'metir!2017initaton-au-machine-leaming-avee-pythan-heorie ra 2orror2019 Ination au Machine Leaming avec Python - La théorio— Makina Corpus hitps:/Imakina-corpus.comlalog'metir!2017initaton-au-machine-leaming-avee python heore sana

You might also like