Après avoir terminé mon mémoire sur les modèles ARIMA et LSTM destinés à la prévision de séries temporelles, je me suis dit que regarder du côté des modèles de réseaux de neurones à convolution pourrait apporter un peu de renouveau.
Les CNN (Convolutional Neural Network) se prêtent effectivement très bien aux données localement dépendantes. Ces modèles sont donc très utilisés pour de la reconnaissance d’images. Si vous prenez un pixel aléatoire d’une image, il y a fort à parier que ce pixel ne soit pas, en moyenne, très différent de ces voisins. C’est là que les modèles CNN entrent en jeu.
Pour une image carrée d’une taille de 1000 pixels en noir et blanc, il faut 1 000 000 entrées à un réseau de neurones la traiter. Ce montant rend alors l’apprentissage de poids synaptiques optimaux très compliqués. L’astuce des CNN consiste à réaliser une convolution. On entraine alors un mini réseau de neurones de petite taille (appelé kernel), par exemple de 8×8 pixels (dans le cas d’une image) et on le fait se déplacer le long de cette image de gauche à droite, de haut en bas, de manière à balayer toute l’image. Ce sous-réseau produit une sortie binaire qui sert à alimenter les prochaines couches du réseau. Cette astuce permet de réduire drastiquement le nombre d’entrées et facilite grandement l’apprentissage du réseau tout en éviter le phénomène de sur-apprentissage.
Pour se rendre compte de la puissance de cette architecture, j’ai conçu un mini site Web, disponible en cliquant sur le bouton ci-dessous.
Le but est très simple. Après avoir dessiné à l’aide votre souris (ou de votre doigt si avez un écran tactile) une série temporelle (une fonction continue évoluant sur l’axe horizontale), un réseau de neurones convolutionnel prend le relai et se propose de poursuivre votre tracé.
Ce site a été développé grâce à l’aide de la bibliothèque de Google, Tensorflow. Vous pouvez retrouver davantage de détails techniques directement sur le site.
You do have a fabulous blog thanks. Heddie Vidovic Ragan