Apprentissage profond faiblement supervisé et
semi-supervisé pour la détection d’évènements sonores
Bref aperçu des réseaux convolutifs et récurrents
Dans cette section, nous présentons les réseaux de neurones artificiels ainsi que les architectures les plus populaires. Les réseaux résiduels et récurrents seront particulièrement détaillés car je les ai utilisé tout au long de ma thèse.
Les réseaux convolutifs
Les réseaux convolutifs sont très utilisés encore de nos jours, à la fois pour le traitement d’images et l’analyse d’enregistrements sonores. [Fukushima and Miyake, 1982] ont proposé les Convolutional Neural Network (CNN) pour surmonter les limitations du perceptron multi-couche (Multi Layer Perceptron (MLP)). Inspiré par le cortex visuel des animaux, l’idée est que chaque neurone reçoive des signaux provenant de champs réceptifs qui se chevauchent et couvrent l’ensemble du champ « visuel » . En pratique, nous utilisons une quantité définie de champs réceptifs, également appelés filtres. Les nombreux neurones partageront alors les mêmes filtres (ainsi que les poids et le biais de ces derniers). Au fil des années, cette approche a été améliorée et affinée par [Lecun et al., 1998]. Un CNN comporte généralement plusieurs couches de convolutions successives. Entre elles on retrouvera souvent une fonction d’activation puis une couche de pooling dont l’objectif est de sous-échantillonner leur sortie avant de la fournir à la couche suivante. Cette première série de couches permet de réaliser l’extraction des caractéristiques de l’entrée. Ensuite on retrouve le second bloc de couches entièrement connectées qui permettront de faire la classification. L’image 1.2 représente un CNN avec trois couches convolutives suivies de deux couches entièrement connectées. Figure 1.2 – Illustration simplifiée d’un CNN avec trois couches convolutives suivies de deux couches entièrement connectées. Entre chaque couche de convolution ci on retrouvera une fonction d’activation suivi d’un pooling. Les couches li sont des denses. De nos jours, les jeux de données sont de plus en plus grands avec un très grand nombre de catégories. Par conséquent, il est nécessaire d’augmenter les capacités des CNN. Pour cela, on augmente le nombre de couches du modèle, le rendant plus « profond » et, on augmente le nombre de filtres des couches. Avec l’augmentation du nombre de couches et de filtres, le nombre de paramètres entraînables augmente tout aussi rapidement que le MLP. Deux problèmes apparaissent alors : — Le gradient évanescent qui est particulièrement présent dans les réseaux de neurones très profonds. Le gradient d’erreur dans les couches supérieures du modèle est trop petit pour permettre aux paramètres de ces couches d’être mis à jour de manière significative durant l’entraînement, les rendant « fixes » et par conséquent inutiles. — Le sur-apprentissage des réseaux de neurones possédant un trop grand nombre de paramètres comparés à la taille du jeu de données utilisé pour l’entraîner. Pour ce dernier, le modèle sera performant, mais incapable de généraliser et prédire de nouvelles données. Il existe de nombreuses architectures de modèles tel que AlexNet [Krizhevsky et al., 2017], VGG [Simonyan and Zisserman, 2015], ou encore Inception [Szegedy et al., 2014]. Certaines architectures sont construites pour pallier au problème du gradient évanescent, par exemple l’architecture ResNet [He et al., 2015], Wide ResNet [Zagoruyko and Komodakis, 2016], ou DenseNet [Huang et al., 2018]. Dans la section 1.1.2 nous décrivons l’architecture ResNet et WideResNet en détail. Concernant le sur-apprentissage, de nouvelles techniques de régularisation sont apparues au fils des années tel que le weight decay [Krogh and Hertz, 1991], le dropout [Srivastava et al., 2014], la Batch Normalisation [Ioffe and Szegedy, 2015], ou encore l’augmentation de donnée. Ces méthodes sont décrites dans la section 1.1.4.
Les réseaux résiduels
Le problème de gradient évanescent est directement lié au nombre de couches qui composent un réseau de neurones. L’idée derrière les réseaux résiduels est d’insérer des connexions intermédiaires entre deux couches distantes. Ces liaisons skip sont représentées par la figure 1.3. Figure 1.3 – Représentation d’une connexion skip permettant de « sauter » deux couches de convolutions avec leur activation. Il est alors possible de construire des modules contenant n couches de convolutions et de les empiler, permettant la construction de réseaux de neurones plus profonds qu’on nomme alors, Residual Network (ResNet) [He et al., 2015] et peuvent être composés de milliers de couches (1202). Le bloc de droite est utilisé pour augmenter encore la profondeur des réseaux. Cette liaison skip permet de diminuer le nombre de paramètres entraînables et ainsi la complexité du modèle. Les couches de convolutions 1×1 permettent de réduire puis d’augmenter la dimension en entrée et sortie du bloc résiduel, évitant ainsi une explosion du nombre de paramètres entraînables. Ainsi, pour la première couche du module résiduel, si le gradient d’erreur vient du module précédant via une série de multiplications au travers des couches intermédiaires, on retrouve aussi un autre gradient d’erreur, transféré directement à la première couche du module grâce à la connexion skip. De cette façon, on peut éviter le problème du gradient évanescent. Figure 1.4 – Représentation d’un réseau résiduel de 28 couches. B(3, 3) représente un bloc résiduel contenant 2 couches de convolutions ayant un champ réceptif de 3×3. Dans leurs travaux, [Zagoruyko and Komodakis, 2016] proposent d’utiliser Wide ResNet qui est une amélioration du ResNet. Ils montrent qu’augmenter la largeur d’un réseau (nombre de filtres de convolutions) est plus efficace que d’augmenter sa profondeur. Un Wide ResNet profond de 16 couches, mais 8 fois plus large, permettrait alors d’obtenir de meilleures performances qu’un ResNet profond de 110 couches pour la même tâche et sur les même jeux de données. La figure 1.4 permet de représenter un Wide Resnet de 28 couches dont l’architecture sera utilisée pour réaliser plusieurs de nos expériences dans cette thèse.
Les réseaux récurrents
Les CNN sont très performants lorsqu’il s’agit d’apprendre des liens entre une entrée et la sortie attendue. Cependant, ce type de modèle n’est pas bien adapté aux tâches qui nécessitent un contexte passé pour faire des prédictions futures, et lorsque les enregistrements sont de durée variable. C’est pour ce genre de tâches qu’interviennent les réseaux récurrents. Ces derniers prennent en compte, en plus de la donnée d’entrée, l’état dans lequel il se trouvait avant. L’image 1.5 montre une représentation d’un réseau de neurones récurrent avec, À gauche, une cellule récurrente classique dans sa représentation la plus simple, et à droite sa forme dépliée. On peut voir qu’à chaque instant t, la cellule prend en compte, à la fois l’entrée actuelle xt et le contexte des entrées précédentes, ici appelé v. C’est cette structure qui permet aux modèles récurrents de garder en « mémoire » le passé pour pouvoir prédire ce qui va suivre.
Introduction |