data augmentation Cours théoriques - Intelligence artificielle

Data augmentation

Pour pouvoir entrainer nos modèles, il nous faut d’énormes quantités de données. En effet, la quantité et surtout la qualité de notre dataset va avoir un rôle majeur pour l’élaboration d’un modèle de bonne facture. En effet, il est logique d’avoir avoir des données qui soient comparable entre elle. Quand je dis comparable, c’est qu’elles aient le même format, la même taille et longueur, etc. Et c’est à partir de ces contraintes que commence les problèmes. En effet, avoir des data spécifique selon notre problème avec les points précèdent cité peut souvent relever de l’impossible. C’est là que la data augmentation va pouvoir nous être grandement utile.

Le principe de data augmentation repose sur le principe d’augmenter de façon artificielle nos donnée, en y appliquant des transformations. On va pouvoir augmenter la diversité et donc le champ d’apprentissage de notre modèle, qui va pouvoir mieux s’adapter pour prédire de nouvelles données. Le principe de cette méthode est relativement simple, celle-ci est montré par l’image suivante concernant de l’augmentation sur des images :

data augmentation sur image

En partant d’une simple image, nous pouvons la dupliquer autant de fois que nous avons des types de transformation différentes à lui appliquer. Et nous pouvons en augmenter davantage en croisant ces effets sur une même image, et en y appliquant différents valeurs de l’effet dans une fourchette donnée, pour avoir un résultat plus ou moins poussé.

 

Voici un exemple de mel-spectrogramme, dont on à appliquer des transformations à un extrait audio sain, sur le mot ‘Bonjour’. (Figure 1)

data augmentation sur audio

On peut aussi imaginer un grand nombre de transformation sur des données audios.
– Tempo : change la vitesse de parole de l’enregistrement sans en changer la longueur. (Figure 3)
– Pitch : change l’intonation de la voix (plus aigüe ou plus grave). (Figure 2)
Et la liste peut être plus longue : bandpass, equalizer, highpass, lowpass, chorus, delay, stretch, contrast, etc.

explosion du deep learning Cours théoriques - Intelligence artificielle

L’explosion du deep learning

Comparatif des performances entre machine et deep learning
Comparatif des performances entre machine et deep learning

Contrairement à ce que l’on pourrait penser, que le deep learning émerge seulement depuis les années 2010, il est en réalité bien plus ancien que cela. En effet, dès le début des années 40 par les chercheurs McCulloch et Pitts, précurseur du neurones formel. Il s’en est suivit les premiers algorithmes d’apprentissage de classifieurs binaires, composé d’un assemblage de plusieurs simples neurones, inventé par Franck Rosenblatt, fin des années 50. C’est ensuite dans les années 80 que le premier réseau de neurones à convolution (CNN) voit le jour par le chercheur français Yann LeCun. Mais c’est seulement depuis quelques années seulement que ce secteur explose, alors qu’il avait été laissé à l’abandon. Cet effet est dû à la convergence de plusieurs paramètres :

 

  • Explosion de la quantité de données.

On assiste à une diminution constante du coût de stockage, contrasté par une émergence des techniques de big data qui nous permettent d’amasser d’importante quantités de données, couplé à une grande diversité de données.

 

  • Explosion de la puissance de calcul.

En effet, le processeur (CPU) va être optimisé pour des tâches en série de grande diversité, alors que la carte graphique (GPU) va être optimisé pour une grande quantités de tâches qui seront-elles, en parallèle et spécifique à tel ou tel calcul.

 

Puissance de calcul délivré entre GPU et CPU
Puissance de calcul délivré entre GPU et CPU

 

Sachant que les CPU du grand public sont composé de 4 à 8 cœurs, et jusqu’à 72 cœurs pour les plus puissant tel que les Intel Xeon Phi Knights Mill, ils se font alors facilement distancé par les GPU qui sont composé de nos jours de l’ordre de 2000 à 5000 cœurs. Le deep learning se résumant à des millions de calculs matricielles, le CPU se fait alors dépasser par la puissance cumulé délivré par les GPU. La rétropropagation du gradient étant un algorithme très lent à résoudre initialement, c’est donc l’avancement des GPU qui ont redonné de l’intérêt pour le deep learning.

 

Comparaison architecture des cœurs entre CPU et GPU
Comparaison architecture des cœurs

 

  • Développement des outils et du niveau d’abstraction.

Les algorithmes s’améliorent chaque année en se complexifiant, et sont capable de réaliser de nouvelles choses. Mais le plus fascinant est le développement d’outils, d’API de haut niveau, capable de simplifier la conception d’un réseau en quelque ligne de code seulement, tel que AutoKeras. On abordera d’ailleurs un outils que l’on a nous meme utilisé, nommé Keras. Récemment est apparu des outils tel que Google auto ML. Celui-ci va bien plus loin que nos 2 exemples précédents, en permettant de créer des réseaux en entiers sans écrire une seule ligne de code. En effet, toute la partie technique et complexe du développement d’un modèle est ici automatisée, et déléguée à Google. Cela fonctionne à l’aide une interface de type glisser-coller très intuitive.

 

 

Le deep learning va-t-il rendre les autres algorithmes obsolètes ?

On voit que le deep à la cote, on en parle partout, quitte à le mettre un peu partout pour faire joli et vendeur, que l’on est révolutionnaire que l’on joue la carte de l’innovation. Mais faire du deep learning juste pour l’effet de mode est stupide. Pour répondre à la question j’aurais donc tendance à dire que non, le deep learning ne sera pas l’unique façon d’apporter une plus-value à tel ou tel projet et ne va pas plus remplacer le machine learning. C’est un peu comme utiliser un char d’assaut pour venir à bout d’un moustique. Impressionnant, efficace quand ça fonctionne, mais un poil inadapté comme moyen non ? Pourquoi faire compliqué si on peut faire simple ?

Il faut savoir que pour beaucoup d’application, nous n’avons pas besoin de sortir l’artillerie lourde. Des algorithmes plus standard fonctionneront très bien sur ce genre de modèle, et en seront d’autant plus facile à mettre en œuvre. Il faudra avant tout juger et évaluer au préalable le niveau d’effort et de la précision attendu en fonction de notre domaine d’application. Des problèmes différents auront des meilleures méthodes différentes, il faudra donc faire attention d’appliquer la bonne approche sur une situation approprié.

ia, deep et machine learning Cours théoriques - Intelligence artificielle

Différence entre intelligence artificielle, machine et deep learning

La machine est-elle réellement intelligente ? 

Hum, pas vraiment. Si on doit résumer sur ce qu’est vraiment l’apprentissage de la machine, c’est seulement la résolution de formules mathématiques. Cette fonction va s’équilibrer en fonctions de données d’entrées. Et c’est cette fonction mathématique qui va permettre de nous donner une sortie souhaitée. Cependant, il suffit de modifier partiellement la donnée d’entrée, sur un intervalle auquel la machine n’aura jamais vu auparavant, pour que la machine nous renvoi une sortie absolument fausse. On pourrait appeler l’ensemble de ces techniques par du calcul cognitif, mais pour des raisons marketing, certains pionniers de chez IBM dans les années 60 ont préférés utiliser les termes d’apprentissage de la machine.

 

Timeline des différents type d'IA. intelligence artificielle deep learning machine learning
Timeline des différents type d’IA. Source : ledigitalab

 

  • L’intelligence artificielle

Cela représente l’ensemble des théories et de techniques mises en œuvre, en vue de réaliser des machines capables de simuler l’intelligence. Et celle-ci ne date effectivement pas d’hier, comme on pourrait y croire. Si on souhaite créer une intelligence artificielle, nous sommes alors dans l’obligation de coder l’ensemble des éventualités et actions qu’elle doit réaliser. Ce qui peut potentiellement être extrêmement long mais surtout se révéler peu efficace dans certaines situations. Cette approche que l’on peut alors considérer comme ‘manuelle’, a bien plus de limites.

  • Le machine learning

C’est un sous ensemble d’intelligence artificielle. Auparavant, pour apprendre à un ordinateur à effectuer une tâche, on le programmait manuellement. Aujourd’hui, ce même ordinateur peut apprendre par lui-même : il suffit de lui apprendre à reconnaître et à reproduire. En effet, plutôt que de coder l’ensemble des routines avec des jeux d’instructions précises pour réaliser une tache particulière, on va ‘entraîner’ la machine. On va donner de grandes quantités de données à notre algorithme, qui va avoir la capacité d’apprendre à réaliser cette tâche.

 

  • Le deep learning

Appelé apprentissage profond, est un sous ensemble du machine learning. Celui-ci reprend les mêmes concepts du machine learning, en les poussant encore plus loin. Le but est de créer une architecture imitant celle du cerveau humain, basés sur des réseaux de neurones artificiels à multiples couches. Le cerveau étant lui-même ‘profond’, dans le sens ou chaque action est le résultat d’une longue chaîne de communications synaptiques avec de nombreuses couches qui communiquent entre elles. Contrairement au machine learning, ces réseaux deviennent de plus en plus performants au fur et à mesure qu’ils reçoivent des données. En effet, ceux-ci pouvant être plus profonds, et donc plus complexes, ils nous permettent d’exploiter bien plus de data et donc d’augmenter significativement les performances.