Nous avons commencé par les convolutions 2D dans le premier post parce que les convolutions ont gagné une popularité significative après les succès dans le domaine de la vision par ordinateur. Comme les tâches dans ce domaine utilisent des images comme entrées, et que les images naturelles ont généralement des motifs le long de deux dimensions spatiales (de hauteur et de largeur), il est plus courant de voir des exemples de convolutions 2D que de convolutions 1D et 3D.
Plus récemment cependant, il y a eu un nombre énorme de succès dans l’application des convolutions aux tâches de traitement du langage naturel aussi. Puisque les tâches dans ce domaine utilisent du texte comme entrées, et que le texte a des motifs le long d’une seule dimension spatiale (c’est-à-dire le temps), les convolutions 1D conviennent parfaitement ! Nous pouvons les utiliser comme des alternatives plus efficaces aux réseaux neuronaux récurrents (RNN) traditionnels tels que les LSTM et les GRU. Contrairement aux RNN, ils peuvent être exécutés en parallèle pour des calculs vraiment rapides.
Un autre domaine qui bénéficie des convolutions 1D est la modélisation des séries temporelles. Comme précédemment, nous avons une seule dimension spatiale sur nos données d’entrée (c’est-à-dire le temps), et nous voulons capter des modèles sur des périodes de temps. Nous appelons souvent ce type de données « séquentielles » car elles peuvent être considérées comme une séquence de valeurs. Et la dimension spatiale est souvent appelée dimension « temporelle ». L’utilisation de convolutions 1D avant les RNN est également assez courante : le modèle LSTNet en est un exemple et ses prédictions pour la prévision du trafic sont présentées ci-dessous.
A, B, C. C’est facile comme (1,3,3) point (2,0,1) = 5.
Avec les conventions de dénomination clarifiées, regardons maintenant de plus près l’arithmétique. Nous avons de la chance car les convolutions 1D ne sont en fait qu’une version simplifiée de la convolution 2D !