Comment un réseau neuronal SincNet alloue des fréquences importantes dans le son grâce à la propagation arrière

Récemment, un article très intéressant a été publié, «Speaker Recognition from raw waveform with SincNet», qui décrivait l'architecture de bout en bout d'un réseau de neurones pour reconnaître un locuteur par la voix. Une caractéristique clé de cette architecture est les couches convolutives unidimensionnelles spéciales, qui n'ont que deux paramètres avec une interprétation claire. L'interprétation des paramètres d'un réseau neuronal est une question assez difficile, donc cet article a attiré mon intérêt.



Si vous êtes intéressé par la description de l'idée de cet article, et aussi pourquoi cette idée a un sens proche de la construction de spectrogrammes à la craie, alors vous êtes les bienvenus chez cat.


Je note que toutes les images utilisées dans ce post proviennent soit de l'article d'origine, soit peuvent être obtenues à l'aide du Jupyter Notebook stocké dans ce référentiel .


Les auteurs de l'article décrit ont publié le code source du github, il peut être trouvé ici .


Spectrogrammes de craie


Pour comprendre l'essence de cet article, rappelons d'abord ce qu'est un spectrogramme à la craie, comment l'obtenir et quelle est sa signification. Si ce sujet vous est familier, cette partie ne sera pas très intéressante. Il est calculé par le spectrogramme habituel construit à l'aide de la transformée de Fourier de fenêtre:


F(k,m)= sum limitsn=0L−1x[n+m]w[n]e−i2 pi overLkn


L'essence de cette opération est l'application séquentielle de la transformée de Fourier à de courts morceaux du signal de parole, multipliés par une fonction de fenêtre. Le résultat de l'application de la transformation de fenêtre est une matrice, où chaque colonne est le spectre d'une courte section du signal d'origine. Jetez un œil à l'exemple ci-dessous:



Des expériences de scientifiques ont montré que l'oreille humaine est plus sensible aux changements de son à basse fréquence qu'à haute. Autrement dit, si la fréquence du son passe de 100 Hz à 120 Hz, une personne est très susceptible de remarquer ce changement. Mais si la fréquence passe de 10000 Hz à 10020 Hz, il est peu probable que nous puissions saisir ce changement.


À cet égard, une nouvelle unité de mesure de la hauteur du son a été introduite - la craie. Elle est basée sur la perception psycho-physiologique du son par une personne, et elle dépend logarithmiquement de la fréquence:


mel=1127.01048 ln(1+freq over700)



En fait, le spectrogramme de craie est un spectrogramme régulier, où la fréquence est exprimée non pas en Hz, mais en craie. Le passage à la craie s'effectue en appliquant des filtres à craie au spectrogramme d'origine. Les filtres à craie sont des fonctions triangulaires uniformément réparties sur l'échelle de craie. À titre d'exemple, voici 10 filtres à craie (en pratique, ils en prennent plus, ici ils sont peu nombreux pour plus de clarté):



Lorsqu'ils sont traduits en échelle de fréquence, les mêmes filtres ressemblent à ceci:



Chaque colonne du spectrogramme initial est multipliée de façon scalaire par chaque filtre à craie (situé sur l'échelle de fréquence), après quoi un vecteur de nombres est obtenu qui est de taille égale au nombre de filtres. L'image ci-dessous montre l'une des colonnes du spectrogramme (les valeurs d'amplitude sont converties en une échelle logarithmique pour plus de clarté, ce qui est codé en couleur dans l'image est affiché le long des ordonnées) et deux filtres à craie avec lesquels construire un spectrogramme à la craie:



À la suite de ces transformations, les valeurs des basses fréquences du spectrogramme restent presque inchangées dans le spectre de la craie, et aux hautes fréquences, les valeurs sont moyennées à partir d'une plage plus large. À titre d'exemple, je propose d'examiner le spectrogramme de craie construit à partir du spectrogramme précédent en utilisant 64 filtres de craie:



Résumant tout ce qui précède: plus d'informations sont stockées sur le spectrogramme de craie, qui est bien perçu et distingué par la personne que sur le spectrogramme habituel. En d'autres termes, cette représentation du son est plus focalisée sur les basses fréquences, et moins sur les hautes.


Qu'est-ce que SincNet a à voir avec cela?


Rappelons que l'échelle de craie a été créée sur la base de la perception psychophysique humaine du son. Mais que se passe-t-il si nous voulons choisir d'autres bandes de fréquences qui nous intéressent plus que les autres dans une tâche particulière? Comment choisir le meilleur ensemble de filtres pour résoudre un problème?


L'architecture proposée par les auteurs résout précisément ce problème.


Les auteurs considèrent la fonction suivante comme un filtre:


G(f,f1,f2)=rect(f over2f2)−rect(f over2f1)


rect(t)dans cette formule est une fonction rectangulaire . Un tel filtre définit la plage de fréquences de f1avant f2. Voici son emploi du temps:



En utilisant la transformée de Fourier inverse pour cette fonction, vous pouvez obtenir son analogue dans le domaine temporel:


g(n,f1,f2)=2f2sinc(2 pif2n)−2f1sinc(2 pif1n)


sinc(t)=sin(t) overt



Fonction g(t)- C'est la réponse impulsionnelle d'un filtre passe-bande idéal qui ne peut pas être implémenté en pratique, c'est pourquoi les auteurs tronquent cette fonction avec une fenêtre de Hamming . Dans le traitement numérique du signal, cette approche est appelée synthèse de fenêtres.


Option de fonction tronquée de fenêtre gles auteurs suggèrent d'utiliser comme modèle pour toutes les circonvolutions appliquées aux données audio brutes. Cette fonction est différenciable par paramètres. f1et f2, ce qui signifie qu'il peut être utilisé pour optimiser les paramètres du réseau par la méthode de rétro-propagation des erreurs.


Par théorème de convolution, convolution du signal d'origine avec la fonction géquivaut à multiplier le spectre du signal d'origine par une fonction G. En gros, effectuer une convolution du signal d'origine avec la fonction g, nous «attirons l'attention» du réseau neuronal sur une plage de fréquences donnée dans le signal considéré.


Bien sûr, la transformée de Fourier n'est pas appliquée ici, et les valeurs spécifiques du spectre dans la gamme ne sont pas explicitement rapportées aux réseaux de neurones. [f1;f2]. Apparemment, la tâche d'extraction des caractéristiques spectrales est assignée aux blocs suivants situés dans le réseau neuronal.


Parmi les avantages de cette approche, les auteurs notent ce qui suit:


  1. Convergence rapide
  2. Un nombre beaucoup plus petit de paramètres. Dans un bloc convolutionnel classique, le nombre de paramètres est égal à la longueur de la convolution. Avec l'approche décrite, le nombre de paramètres ne dépend pas de la longueur de la convolution et est égal à 2
  3. Interprétabilité des paramètres

Conclusions


Il existe de nombreux filtres avec lesquels les spectrogrammes sont convertis. Par exemple, en plus des filtres à craie décrits, il existe également des filtres à écorce (vous pouvez lire ici et ici ). Au moins, l'écorce est également une valeur psychophysique, choisie "pour un homme".


Dans leur étude, les auteurs ont proposé une méthode par laquelle le réseau neuronal peut sélectionner indépendamment les gammes de fréquences les plus appropriées dans le processus d'apprentissage, en fonction de l'ensemble de données. Pour moi, cela ressemble beaucoup au processus de construction d'un spectrogramme à la craie, dans lequel une priorité plus élevée est accordée aux basses fréquences. Voici juste des spectrogrammes à la craie inventés sur la base de la perception humaine du son, et dans la méthode proposée, le réseau neuronal décide lui-même de ce qui est important et de ce qui ne l'est pas.

Source: https://habr.com/ru/post/fr462527/


All Articles