[Aparté] Le « machine learning » : comment apprendre à ton ordinateur à reconnaître des images

Je ne parle que de bouquins ces derniers temps, alors c’est très bien hein, mais il est temps de changer un peu de sujet. Si tu suis un peu ce que je raconte, tu dois savoir que j’ai commencé un stage cette semaine, et je découvre tout un tas de domaines dont j’ignorais tout et qui me passionnent déjà. Alors vu que je sais que tu es ouvert d’esprit, je vais me permettre de t’expliquer un peu ce que j’ai fait ces derniers jours, en simplifiant un max et en évitant les détails techniques, comme d’hab.

J’en ai parlé dernièrement dans ma chronique sur Biblical, il se passe plein de choses folles du côté de l’informatique ces dernières années. Typiquement, on essaie d’apprendre aux ordinateurs à s’auto-améliorer, pour qu’ils progressent tout seuls dans la tâche qu’on leur assigne. Honnêtement, c’est une idée qui me flippe pas mal, et toutes les recherches sur l’intelligence artificielle destinée à dépasser l’homme, ça sent un peu la fausse bonne idée. Mais d’un autre côté, c’est assez chouette de voir l’envers du décor et de se rendre compte qu’à la base du processus, c’est juste des maths, rien de magique. Bon, bien sûr, là où je bosse, on n’essaie pas de créer un ordinateur qui dominerait le monde, hein, on est sur des problèmes bien plus petits et maîtrisables, et pour ce genre de tâches je trouve l’approche du problème super ingénieuse et bien pensée.

Bref, si je prends le cas de figure le plus simple : un jour, on a voulu que les ordinateurs soient capables de reconnaître des chiffres manuscrits. Le problème, c’est que la liste des possibilités de formes est démentielle : tout le monde n’a pas la même écriture, certains chiffres peuvent prendre des formes très différentes, et rien qu’en modifiant l’angle il faut réussir à faire comprendre à la machine que ça reste le même chiffre. En gros, le faire à la main en listant tous les cas de figure, c’est impossible. Il faudrait que l’ordinateur soit capable d’essayer, de se tromper, de réessayer en réajustant, et ainsi de suite, jusqu’à ce qu’il ne se trompe plus. Et ça, c’est du machine learning.

Il y a plusieurs techniques différentes de machine learning, mais je n’en ai vu qu’une seule jusqu’à présent : le réseau de neurones (en vrai, je fais aussi du réseau de neurones convolutionnel, mais je ne vais pas entrer dans les détails ici). Le principe vient de l’observation du fonctionnement du cerveau, en simplifié bien sûr, et de sa façon de traiter les images que l’œil lui envoie pour en faire de l’information compréhensible.

Dans les très grandes lignes, qu’est-ce qui se passe ? Eh bien, tout d’abord il faut mettre à disposition de ton ordinateur une grosse collection d’exemples. En l’occurrence, il faut lui donner tout un tas de chiffres écrits à la main, en leur mettant à chacun une étiquette pour qu’il puisse savoir à quoi ils correspondent. C’est ce qu’on appelle le set d’entraînement. Plus tu as d’images à disposition, plus il va voir des cas de figure variés, et mieux il saura reconnaître n’importe quel chiffre.

A partir de là, on arrive dans les maths : en gros, on peut considérer chaque image comme un tableau de pixels, et chaque pixel peut être représenté par un chiffre (qui indique par exemple à quel point le pixel est noir ou blanc). On se retrouve donc avec un gros tableau de chiffres, qu’on va donner à manger à l’ordinateur. Ensuite, il manipule ces chiffres (en faisant des multiplications, blabla, tout ça je te l’épargne), et il regarde à quel point il est loin de la vraie réponse. Et puis il recommence, en ajustant ses calculs à chaque fois pour minimiser cette distance, et donc être le plus proche possible de la bonne réponse (en chemin, il passe par des probabilités, si tu veux tout savoir). Et une fois qu’il a épuisé son set d’entraînement, il tente le coup avec des nouvelles images (le set d’évaluation), sans savoir ce qu’elles représentent à l’avance : ça nous permet de mesurer l’efficacité de sa déduction, en voyant combien de fois il se trompe.

Résultat de recherche d'images pour "neural network"
Le dessin est pas très alléchant hein. En gros, ça ressemble à ça. Les inputs, c’est les photos de chiffres, et les outputs, c’est la réponse que ton ordinateur te donne.

Dans le concret, je m’occupe de construire un algorithme qui puisse aussi reconnaître des lettres. Alors c’est un peu plus chaud, mais le principe reste le même et si je t’ai parlé des chiffres, c’est parce qu’il existe une grosse base de données disponible gratuitement sur internet (ça s’appelle MNIST) et qui ressemble à ça (en beaucoup plus grand) :

ce qui fait que si tu veux créer ton algorithme de machine learning, tu vas certainement commencer par le tester sur ces données-là parce que tout est déjà à disposition. D’ailleurs, figure-toi que ça intéresse les gens de savoir qui est le meilleur algorithme pour MNIST, et du coup ils ont fait une petite page avec les pourcentages de mauvaises réponses pour chaque modèle. En gros, si tu fais correctement ton truc, tu peux arriver à une précision de 99.8% ! Plutôt cool, non ?

Et évidemment, pour corser la chose, c’est aussi possible de le faire pour reconnaître des photos. Par exemple, tu balances à ton ordinateur des photos d’oiseaux et des photos de chats, et il doit chaque fois être capable de dire si c’est un chat ou un oiseau (peu importe la position, la race, la couleur, tout ça). Mais ça devient bien plus technique, alors on va s’arrêter là.

J’espère que je ne t’ai pas perdu en route, si tu as envie d’approfondir un peu le sujet j’aurai plusieurs vidéos à te conseiller, n’hésite pas à demander ! En attendant, je te laisse en compagnie de Mozart, pour calmer ton cerveau endolori (et parce qu’il paraît qu’écouter Mozart rend plus intelligent, selon des études hautement scientifiques qui n’ont jamais pu être reproduites).

 

27 commentaires sur “[Aparté] Le « machine learning » : comment apprendre à ton ordinateur à reconnaître des images

Ajouter un commentaire

  1. Quand je repense à où on en était sur ce type de sujet il y a 20 ans, c’est hallucinant le chemin parcouru ! En partie par l’amélioration des algorithmes mais aussi par l’amélioration des performances des ordinateurs, il faut l’avouer….

    Aimé par 1 personne

    1. Ca c’est certain ! Il en faut de la puissance, pour faire tourner des algorithmes pareils sans que ça prenne des jours.. Et dans ce domaine, le progrès va de plus en plus vite, c’est à la fois grisant et un peu affolant…

      Aimé par 1 personne

    1. Flûte, j’ai validé le commentaire avant d’avoir ajouté un truc… Moi aussi, la course au progrès vers une intelligence artificielle toujours plus poussée, ça a tendance à m’effrayer. Les dérives vers le transhumanisme (l’humain toujours plus augmenté par la machine)(coucou Google) sont vraiment flippantes, je trouve. J’y trouve un côté « malsain » et contre nature (obviously) qui me met extrêmement mal à l’aise (l’idée sous jacente du « défions la Mort lol », toussa toussa).

      Aimé par 1 personne

      1. Oh t’es chou ! Ouais, c’est toujours difficile de doser pour donner des infos cool sans partir dans du trop technique qui parasiterait la compréhension générale 🙂 mais après ça part vite dans du code en Python et dans des multiplications de matrices ^^ mais sur internet y a des animations cool 🙂
        Oui je comprends très bien ! On est dans une sorte de frénésie du progrès technologique, et j’ai l’impression qu’on n’a même pas le temps d’assimiler les conséquences de ce qu’on fait, du coup ça me donne l’impression qu’on fonce dans un mur en accélérant de plus en plus… Mais l’avenir nous le dira, ma foi ^^’

        Aimé par 1 personne

  2. Donc si dans un jour futur un petit garçon non-voyant arrive, avec son tout nouvel appareil, à « lire » la lettre d’amour que sa camarade de classe lui a écrit de sa jolie écriture enfantine, ça sera un peu grâce à toi 🙂

    Aimé par 1 personne

    1. Haha ! Ce sera en tout cas pas grâce à moi parce que j’ai pas le niveau pour créer un de ces algorithmes, je me contente d’essayer de comprendre et de reproduire 😉 mais ce serait très chouette, ça c’est sûr 🙂

      J’aime

  3. La littéraire traumatisée du scientifique à cause d’un prof de maths au collège (et qui m’a martelé que j’étais pas du tout scientifique alors qu’en j’ai toujours aimé ce genre de sujets) te remercie. Non parce que parfois’ j’ai tendance à me complaire dans ma zone de confort et a oublier d’aller instruire’ sur d’autres choses et tu viens de me le permettre, avec simplicité, pédagogie et humour, et c’est chouette !

    Aimé par 1 personne

    1. Oh mais ça, ça me fait trop plaisir ! Ça me fait pas mal enrager ces profs de math qui degoutent les élèves, et toutes ces catégories de « je suis littéraire donc je suis pas scientifique », blablabla 😉 c’pas pour rien que je m’obstine à parler sciences sur un blog lecture haha alors si c’est bien reçu, c’est trop bien 🙂

      Aimé par 1 personne

  4. C’est un article très technique et on voit que tu maîtrises le sujet à la perfection. Heureusement que tu te mets à la portée du lecteur lambda sinon j’aurais pris mes jambes à mon cou haha !! Les maths et moi ça a a toujours été compliqué… mon papa avait insisté pour que je fasse spécialité math avec mon bac L : on était trois dans ce cours et franchement ma place était en anglais renforcé mais bon… je m’en suis tirée avec un honorable 10 au bac pour les math spé et un 18 pour l’épreuve de math classique pour les littéraires :D. En tout cas, j’admire ton savoir et ta facilité à parler de choses complexes.

    Aimé par 1 personne

    1. Oh, je suis loin de maîtriser à la perfection haha ! Et je reste aussi vague pour éviter de dire trop de bêtises 😉 le but c’est surtout de donner une idée du sujet et de rendre curieux, éventuellement 🙂
      Je compatis, les maths c’est pas une branche facile à aborder, encore moins si on te force ! Mais chapeau du coup 😀

      J’aime

  5. Comme tout ce qui est nanotechnologies (et notamment leur usage biologique), je trouve ce développement de l’intelligence technologique fascinant.
    C’est un peu flippant par certains aspects (qui rappellent vite en mémoire touuuus les bouquins de SF xD) mais les possibilités que ça ouvre font quand même rêver !

    Aimé par 1 personne

    1. C’est clair, on a vraiment cette dualité : à la fois c’est super alléchant, et à la fois c’est très inquiétant aussi… quoiqu’on fasse maintenant, j’ai l’impression que la machine est lancée ! on verra bien où on atterrit ^^ »

      Aimé par 1 personne

Donne-moi ton avis !

Créez un site ou un blog sur WordPress.com

Retour en haut ↑