banniere aubay

< Tous les articles

Mar 25, 2020

L’intelligence Artificielle

 

Mythe pour certains, accès à un futur utopique ou dystopique selon d’autres, l’intelligence artificielle fait dans tous les cas couler beaucoup d’encre.  Elle est actuellement présente dans vos téléphones et ordinateurs et soulève de réelles questions éthiques.

Mais qu’en est-il réellement ? 

Pour se forger un avis sur le sujet, nous allons essayer de comprendre la portée de l’IA et quelles sont les différentes applications possibles.

L’intelligence artificielle est un ensemble de méthodes, se basant sur l’informatique et les mathématiques. Le but, selon l’encyclopédie Larousse, est: « de réaliser des machines capables de simuler l’intelligence ». En effet, à ce jour, il n’existe pas de réelle intelligence au sens où on l’entend. On peut ainsi faire qu’un ordinateur reconnaisse un oiseau, et puisse sortir l’article Wikipédia correspondant à cet oiseau. Mais tout ceci ne sont qu’informations vides de sens. Nous sommes donc pour l’instant très loin des scénarios catastrophiques à la Terminator.

Néanmoins, si vous avez déjà lu un peu de littérature sur le sujet, vous avez dû entendre parler de réseaux de neurones (et d’autres termes comme le machine learning et le deep learning).

Un bon schéma valant mieux qu’un long discours, voici comment s’organisent ces différentes branches :

Les termes « forêts aléatoires », « régression », « classification automatique » et « SVM » désignent des méthodes algorithmiques et/ou statistiques pour résoudre un problème donné. Ces méthodes, bien qu’étant pendant longtemps à l’état de l’art, peinent de plus en plus à faire face à l’essor des réseaux de neurones. Nous allons donc nous concentrer sur les réseaux de neurones, et en particulier le Deep Learning.

 

Qu’est-ce qu’un réseau de neurones ?

 

Un réseau est le nom donné à l’architecture suivante.

Les neurones sont les unités de base de notre architecture. Ils sont représentés par les cellules dans le schéma ci-dessus. Si on les appelle neurones, c’est parce qu’ils ont un fonctionnement proche de nos neurones sur un point. Nos neurones reçoivent un influx électrique, et si cet influx est suffisamment puissant pour passer le seuil d’activation, alors nos neurones transmettent l’information en le transformant en une impulsion nerveuse. Nos neurones artificiels eux reçoivent aussi une valeur en entrée puis vont la transmettre en augmentant ou diminuant son impact.

Comme on peut le voir, ils sont organisés en différentes couches qui sont reliées entre elles. Chaque liaison possède un poids qui va varier au cours d’une phase, appelée entraînement, que nous détaillerons plus tard. Ces poids permettent de trier l’information en réduisant l’impact des informations considérées comme inutiles. Pour mieux comprendre comment est traitée l’information, nous allons voir quelles sont les différentes couches :

    1. La couche d’entrée : c’est ici qu’arrivent les valeurs qu’on donne. Chaque information est, de manière générale, transformée en nombre. Pour une image, ce sera par exemple la valeur attribuée à chaque pixel et on aura donc un neurone pour chaque pixel de l’image. Pour un mot, on se réfèrera à la position de chaque mot dans un dictionnaire trié par fréquences d’apparitions.
    2. La ou les couches cachées : c’est là que se passent les choses les plus intéressantes. Si vous n’avez pas de couches cachées, on parle de machine learning. S’il y en a au moins une on parle alors de Deep Learning. Il existe énormément de types de couches intermédiaires. Certaines servent à découper l’information pour extraire certaines caractéristiques comme des formes au sein d’une image. D’autres vont pouvoir nous permettre d’instaurer de la « mémoire ». Cette mémoire est très importante en particulier pour le traitement du langage. Se souvenir des mots précédents nous permet en effet d’ajuster des éléments comme la conjugaison d’un verbe. Ces couches nous servent dans presque tous les modèles et font les spécificités de notre réseau. Il est extrêmement rare de nos jours de ne pas en avoir dans un réseau de neurones.
    3. La couche de sortie : cette couche a pour unique but de prendre la décision finale. Elle prend souvent la même forme et son nombre de sorties correspond au nombres de catégories possibles.

 

Comment se servir de nos réseaux de neurones ?

 

Un des autres avantages des réseaux de neurones se trouve dans la manière dont on s’en sert. En effet, de manière générale, on a 3 différentes phases :

    1. Le preprocessing : cette phase a pour but de mettre les données qu’on a en entrée sous la bonne forme pour qu’elles puissent être correctement traitées par notre réseau. Cela consiste généralement en un changement de mise en forme et un nettoyage des données
    2. L’entraînement : c’est la partie la plus longue du modèle. Notre réseau de neurones va chercher à optimiser les poids qui relient les neurones entre eux. Pour cela il va apprendre de ses erreurs en modifiant l’importance qu’il donne à certains neurones.
    3. La validation : cette phase finale nous permet de tester notre modèle sur des données qu’il n’a jamais vues. Cela nous permet de voir à quel point ce dernier est précis. Ces résultats peuvent aussi nous aider à savoir comment modifier certains paramètres pour refaire un entraînement.

Une fois que l’on a un modèle qui nous semble suffisamment précis, on peut alors l’utiliser. Un énorme avantage du réseau de neurones est qu’une fois qu’il est entraîné, on peut s’en servir très simplement et son exécution est presque instantanée. Il existe de nombreux autres avantages à avoir un réseau de neurones, comme la possibilité de transférer des données. On peut ainsi prendre un gros modèle et le réentraîner sur une plus petite base de données. C’est généralement la démarche que l’on choisit en traitement du langage.

Notre modèle peut avoir différents modes d’entraînement en fonction des tâches à accomplir.

Le premier est l’apprentissage supervisé. C’est le plus courant et le plus simple à comprendre. Notre réseau de neurones va se servir d’une base de données pour essayer de répondre à une tâche. Prenons l’exemple de la reconnaissance d’image. Si notre réseau veut reconnaître des chats, alors notre base de données comportera deux types d’images : des chats et des « non-chats » (ça peut être des chiens, des tables, des lynxs…). Il va ensuite prendre chaque image d’entraînements, faire une prédiction (chat ou non-chat) et ensuite voir à quel niveau il s’est trompé. On appellera chaque phase d’entraînement où notre réseau a fait un tour complet de la base « epoch ».*

L’apprentissage non-supervisé est légèrement différent de l’apprentissage supervisé dans la manière de voir les données. Cette fois-ci, les données ne sont pas labélisées. Reprenons la classification des animaux. Cette fois on se contente de donner des images de chats de différentes races, et c’est l’algorithme qui va comparer les images pour ensuite les classifier par lui-même.

Le dernier domaine et un des plus intéressants est le Reinforcement Learning. Il s’agit cette fois-ci de s’entraîner sans avoir de données. À la place, on met un robot dans un environnement. On le laisse évoluer dans son environnement en y assignant des récompenses en fonction de certaines actions qu’il effectue. Ensuite en assignant les bonnes fonctions, notre robot va optimiser les suites d’actions à effectuer pour avoir le plus de récompenses possibles. On obtiendra ainsi un score final en fonction des choix effectués.

Par exemple, imaginons que vous voulez tout simplement que votre robot aille le plus vite d’une case A à une case B dans une grille.

Dans ce cas il suffit de mettre un malus à chaque case parcourue et un bonus sur la case B. Pour maximiser son score notre robot va donc avancer en diagonale pour atteindre le point B au bout de seulement 3 déplacements.

Il s’agit là d’un exemple très simple, mais il y a bien sûr énormément de possibilités avec cette manière d’apprendre. Cela peut être pour entraîner une IA sur des jeux ou bien des robots sur certaines tâches. Par exemple, on a réussi à faire jouer un robot au ping-pong avec le reinforcement learning. Nous sommes encore loin d’en faire un expert mondial mais ce dernier pouvait renvoyer 88% des balles qui lui étaient envoyées.

Une chose très intéressante sur ce processus est que c’est une manière très pavlovienne d’apprendre les choses. Que ce soit pour les humains ou les animaux, le process Bonne action => récompense est utilisé en permanence pour nous pousser à l’apprentissage de nouvelles choses.

Partagez cet article
Maxime

Maxime

Ingénieur Intelligence Artificielle

< Retour à tous les articles