<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Module 2 - Apprentissage automatique on INF1901 - Initiation à l'IA : concepts et réflexions</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/</link><description>Recent content in Module 2 - Apprentissage automatique on INF1901 - Initiation à l'IA : concepts et réflexions</description><generator>Hugo</generator><language>fr</language><atom:link href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/index.xml" rel="self" type="application/rss+xml"/><item><title>Le problème</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/le-probleme/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/le-probleme/</guid><description>&lt;h1 id="le-problème"&gt;Le problème&lt;a class="anchor" href="#le-probl%c3%a8me"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Quand vous regardez votre téléphone, il se déverrouille. Un courriel arrive et&#10;il est classé automatiquement dans les indésirables. Sur une chaîne de montage,&#10;une caméra repère, parmi des milliers de téléviseurs presque identiques, celui&#10;dont l&amp;rsquo;écran présente un défaut à peine visible. Une application vous suggère un&#10;film qui correspond à ce que vous aviez envie de voir ce soir.&lt;/p&gt;&#10;&lt;p&gt;Ces tâches font partie du quotidien. Elles ont cependant un point commun :&#10;&lt;strong&gt;personne ne sait écrire, ligne par ligne, les règles qui permettraient de les&#10;accomplir.&lt;/strong&gt; Il est très difficile de décrire, par une suite d&amp;rsquo;instructions&#10;précises, ce qui distingue votre visage de tous les autres, ou ce qui fait qu&amp;rsquo;un&#10;courriel ressemble à un pourriel. On reconnaît ces choses en un instant, mais on&#10;ne sait pas les formuler.&lt;/p&gt;</description></item><item><title>Le modèle le plus bête</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/modele-le-plus-bete/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/modele-le-plus-bete/</guid><description>&lt;h1 id="le-modèle-le-plus-bête"&gt;Le modèle le plus bête&lt;a class="anchor" href="#le-mod%c3%a8le-le-plus-b%c3%aate"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;À la fin de la page « &lt;a href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/le-probleme/"&gt;Le problème&lt;/a&gt; », nous avons posé une question qui peut sembler&#10;absurde : quelle est la prédiction la plus bête qu&amp;rsquo;on puisse imaginer ? Cette&#10;question mérite d&amp;rsquo;être prise au sérieux, parce que la pire réponse possible est&#10;instructive. Elle nous obligera aussi à préciser ce qu&amp;rsquo;est un &lt;em&gt;modèle&lt;/em&gt;.&lt;/p&gt;&#10;&lt;h2 id="toujours-prédire-la-moyenne"&gt;Toujours prédire la moyenne&lt;a class="anchor" href="#toujours-pr%c3%a9dire-la-moyenne"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Le pire « prédicteur » qu&amp;rsquo;on puisse concevoir est le suivant : pour n&amp;rsquo;importe&#10;quelle maison, on ignore toutes ses caractéristiques (sa superficie, son âge, son&#10;nombre de chambres) et on annonce toujours le &lt;strong&gt;même&lt;/strong&gt; prix, le &lt;strong&gt;prix moyen&lt;/strong&gt; de&#10;toutes les maisons de notre liste.&lt;/p&gt;</description></item><item><title>Regarder les données</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/les-donnees/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/les-donnees/</guid><description>&lt;h1 id="regarder-les-données"&gt;Regarder les données&lt;a class="anchor" href="#regarder-les-donn%c3%a9es"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;La page « &lt;a href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/modele-le-plus-bete/#leur-d%c3%a9faut-et-ce-quil-r%c3%a9v%c3%a8le"&gt;Le modèle le plus bête&lt;/a&gt; » s&amp;rsquo;est terminée sur une exigence : pour faire mieux que la&#10;moyenne, un modèle doit tenir compte des caractéristiques d&amp;rsquo;une maison (sa&#10;superficie, son âge, son nombre de chambres). Il faut donc les lui présenter sous&#10;une forme qu&amp;rsquo;il peut manipuler.&lt;/p&gt;&#10;&lt;p&gt;Une machine ne « voit » ni une maison, ni une photo, ni un courriel. Elle ne&#10;manipule que des &lt;strong&gt;nombres&lt;/strong&gt;. La question est donc de savoir comment transformer&#10;un objet du monde réel en nombres sans en perdre l&amp;rsquo;essentiel. Cette question, plus&#10;profonde qu&amp;rsquo;il n&amp;rsquo;y paraît, est l&amp;rsquo;objet de cette page, et elle est un préalable à&#10;tout ce qui suit.&lt;/p&gt;</description></item><item><title>Prédire par ressemblance</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/predire-par-ressemblance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/predire-par-ressemblance/</guid><description>&lt;h1 id="prédire-par-ressemblance"&gt;Prédire par ressemblance&lt;a class="anchor" href="#pr%c3%a9dire-par-ressemblance"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;La page « &lt;a href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/les-donnees/"&gt;Regarder les données&lt;/a&gt; » s&amp;rsquo;est terminée sur l&amp;rsquo;idée suivante : si décrire des objets par&#10;des nombres transforme leur ressemblance en une distance, il doit exister une&#10;façon très simple de prédire. Cette façon est sans doute l&amp;rsquo;idée la plus intuitive&#10;de l&amp;rsquo;apprentissage automatique : &lt;strong&gt;pour deviner la réponse sur un nouveau cas, on&#10;regarde les cas connus qui lui ressemblent le plus, et on reprend leur réponse.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Un modèle qui s'entraîne</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/entrainer-un-modele/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/entrainer-un-modele/</guid><description>&lt;h1 id="un-modèle-qui-sentraîne"&gt;Un modèle qui s&amp;rsquo;entraîne&lt;a class="anchor" href="#un-mod%c3%a8le-qui-sentra%c3%aene"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Le chapitre « &lt;a href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/predire-par-ressemblance/#langle-mort-de-knn"&gt;Prédire par ressemblance&lt;/a&gt; » s&amp;rsquo;est terminé sur un objectif : obtenir un modèle qui ne se&#10;contente pas de mémoriser les exemples, mais qui en extrait une tendance générale,&#10;résumée en quelques paramètres, qu&amp;rsquo;on pourra ensuite appliquer sans conserver&#10;toutes les données.&lt;/p&gt;&#10;&lt;p&gt;Nous allons construire ce modèle. Comme nous cherchons le plus simple, nous allons&#10;faire l&amp;rsquo;opération la plus élémentaire qu&amp;rsquo;on puisse faire sur un nuage de points :&#10;&lt;strong&gt;y faire passer une droite.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Classer</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/classer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/classer/</guid><description>&lt;h1 id="classer"&gt;Classer&lt;a class="anchor" href="#classer"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Le chapitre « &lt;a href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/entrainer-un-modele/"&gt;Un modèle qui s&amp;rsquo;entraîne&lt;/a&gt; » a présenté un modèle qui apprend vraiment : une droite, deux&#10;paramètres, une erreur à minimiser et une descente vers le creux. Ce modèle&#10;répond cependant toujours par un &lt;strong&gt;nombre&lt;/strong&gt;, ici un prix. Or beaucoup de questions&#10;n&amp;rsquo;appellent pas un nombre, mais une &lt;strong&gt;catégorie&lt;/strong&gt;. Par exemple, on peut se&#10;demander si un courriel est un pourriel, si une tumeur est bénigne ou maligne, ou&#10;si une photo montre un chat ou un chien. C&amp;rsquo;est la tâche de &lt;strong&gt;classification&lt;/strong&gt;,&#10;déjà rencontrée au &lt;a href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/predire-par-ressemblance/#les-k-plus-proches-voisins"&gt;chapitre kNN&lt;/a&gt;. Cette fois, cependant, nous voulons un modèle&#10;qui s&amp;rsquo;entraîne.&lt;/p&gt;</description></item><item><title>Poser des questions : les arbres de décision</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/arbres-de-decision/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/arbres-de-decision/</guid><description>&lt;h1 id="poser-des-questions-les-arbres-de-décision"&gt;Poser des questions : les arbres de décision&lt;a class="anchor" href="#poser-des-questions-les-arbres-de-d%c3%a9cision"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Tous les modèles vus jusqu&amp;rsquo;ici raisonnent avec des nombres. kNN mesure des&#10;distances, la droite multiplie et additionne, la régression logistique et Bayes&#10;calculent des probabilités. Ces méthodes sont puissantes, mais ce n&amp;rsquo;est pas&#10;ainsi que nous prenons la plupart de nos décisions. Un médecin devant un patient&#10;ne fait pas de calcul : il pose des questions l&amp;rsquo;une après l&amp;rsquo;autre, et chaque&#10;réponse oriente la suivante. Le &lt;a href="https://en.wikipedia.org/wiki/Twenty_questions"&gt;jeu des vingt questions&lt;/a&gt;&#10;fonctionne de la même façon. Un joueur pense à un objet, et l&amp;rsquo;autre doit le&#10;deviner en posant au plus vingt questions auxquelles on ne répond que par oui ou&#10;par non, comme « est-ce un animal ? » ou « est-il plus gros qu&amp;rsquo;un chat ? ».&#10;Chaque réponse réduit l&amp;rsquo;ensemble des possibilités. Le guide de dépannage à la&#10;fin d&amp;rsquo;un manuel suit le même principe : « l&amp;rsquo;appareil s&amp;rsquo;allume-t-il ? si non,&#10;est-il branché ? ». Il s&amp;rsquo;agit chaque fois d&amp;rsquo;une suite de questions à réponse oui&#10;ou non, qui se ramifie et aboutit à une conclusion.&lt;/p&gt;</description></item><item><title>Généraliser</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/generaliser/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/generaliser/</guid><description>&lt;h1 id="généraliser"&gt;Généraliser&lt;a class="anchor" href="#g%c3%a9n%c3%a9raliser"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Le chapitre « &lt;a href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/arbres-de-decision/#et-sur-des-donn%c3%a9es-neuves"&gt;Poser des questions : les arbres de décision&lt;/a&gt; » s&amp;rsquo;est terminé sur un doute. Nous savons maintenant&#10;entraîner plusieurs sortes de modèles (une droite qui prédit un prix, des&#10;classificateurs qui rangent en catégories), et tous apprennent de la même façon,&#10;en rendant leur erreur la plus petite possible sur les exemples qu&amp;rsquo;on leur&#10;montre. Ce résultat ne prouve cependant rien. Ce qui compte n&amp;rsquo;est pas qu&amp;rsquo;un&#10;modèle réussisse bien sur les données passées, mais qu&amp;rsquo;il se comporte bien sur&#10;des données nouvelles.&lt;/p&gt;</description></item><item><title>Bien évaluer un modèle</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/bien-evaluer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/bien-evaluer/</guid><description>&lt;h1 id="bien-évaluer-un-modèle"&gt;Bien évaluer un modèle&lt;a class="anchor" href="#bien-%c3%a9valuer-un-mod%c3%a8le"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;La page « &lt;a href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/generaliser/#un-mod%c3%a8le-se-juge-sur-ce-quil-na-jamais-vu"&gt;Généraliser&lt;/a&gt; » a posé la règle d&amp;rsquo;or : on juge un modèle sur des exemples&#10;qu&amp;rsquo;il n&amp;rsquo;a jamais vus. Cette règle est nécessaire, mais elle ne suffit pas. Un&#10;score sur le jeu de test n&amp;rsquo;a de valeur que s&amp;rsquo;il est &lt;strong&gt;honnête&lt;/strong&gt; (le modèle&#10;n&amp;rsquo;a-t-il vraiment rien vu du test ?), &lt;strong&gt;fiable&lt;/strong&gt; (le score dépend-il du hasard du&#10;partage entre entraînement et test ?), &lt;strong&gt;pertinent&lt;/strong&gt; (mesure-t-il ce qui coûte&#10;vraiment en cas d&amp;rsquo;erreur ?) et &lt;strong&gt;valable&lt;/strong&gt; (s&amp;rsquo;applique-t-il aux données qu&amp;rsquo;on&#10;rencontrera réellement ?). Les quatre sections de cette page traitent ces quatre&#10;questions. Aucune ne demande de nouveau modèle. Toutes demandent de la méthode,&#10;et c&amp;rsquo;est surtout la méthode, bien plus que le choix d&amp;rsquo;un algorithme, qui&#10;distingue un modèle qui fonctionne d&amp;rsquo;un modèle qui semble fonctionner.&lt;/p&gt;</description></item><item><title>Trois façons d'apprendre</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/trois-facons-d-apprendre/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/trois-facons-d-apprendre/</guid><description>&lt;h1 id="trois-façons-dapprendre"&gt;Trois façons d&amp;rsquo;apprendre&lt;a class="anchor" href="#trois-fa%c3%a7ons-dapprendre"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Le chapitre « &lt;a href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/bien-evaluer/#tout-cela-portait-un-nom-lapprentissage-supervis%c3%a9"&gt;Bien évaluer un modèle&lt;/a&gt; » s&amp;rsquo;est terminé sur un constat. Tout ce que nous avons&#10;construit dans ce module (régression, classification, la droite, Bayes)&#10;appartient à une seule famille, l&amp;rsquo;&lt;strong&gt;apprentissage supervisé&lt;/strong&gt;, dans laquelle&#10;chaque exemple est accompagné de sa bonne réponse. Nous avons aussi vu que ce&#10;n&amp;rsquo;est pas la seule façon d&amp;rsquo;apprendre.&lt;/p&gt;&#10;&lt;p&gt;Les grandes familles de l&amp;rsquo;apprentissage automatique se distinguent par la&#10;nature du &lt;strong&gt;signal&lt;/strong&gt; que le modèle utilise, c&amp;rsquo;est-à-dire ce qui, dans les&#10;données, lui sert de guide. Il en existe trois grands types :&lt;/p&gt;</description></item><item><title>Travail noté 2</title><link>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/travail-not%C3%A9-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/travail-not%C3%A9-2/</guid><description>&lt;h1 id="classification-naïve-bayésienne-pour-détecter-les-pourriels-travail-noté-2"&gt;Classification naïve bayésienne pour détecter les pourriels (travail noté 2)&lt;a class="anchor" href="#classification-na%c3%afve-bay%c3%a9sienne-pour-d%c3%a9tecter-les-pourriels-travail-not%c3%a9-2"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;La classification naïve bayésienne est un algorithme d&amp;rsquo;apprentissage supervisé&#10;qui repose sur les probabilités. Nous avons vu deux variantes de cet&#10;algorithme :&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;a href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/classer/#renverser-le-probl%c3%a8me-la-classification-bay%c3%a9sienne"&gt;La classification de simples points en 2d avec un modèle gaussien&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://cjauvin.github.io/inf1901-teluq-v2/docs/module2/classer/#le-cas-des-pourriels"&gt;La classification de vecteurs en haute dimension avec un modèle multinomial&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;La classification de courriels est un problème classique qu&amp;rsquo;on peut traiter avec&#10;cet algorithme. On cherche à estimer la probabilité qu&amp;rsquo;un courriel soit un&#10;pourriel (&lt;em&gt;spam&lt;/em&gt;) à partir des mots qu&amp;rsquo;il contient, parce que certains mots sont plus&#10;souvent utilisés dans les pourriels et d&amp;rsquo;autres dans les courriels.&lt;/p&gt;</description></item></channel></rss>