Kürzlich wurde ein sehr interessanter Artikel veröffentlicht, "Sprechererkennung aus rohen Wellenformen mit SincNet", der die End-to-End-Architektur eines neuronalen Netzwerks zum Erkennen eines Sprechers durch Sprache beschreibt. Ein wesentliches Merkmal dieser Architektur sind spezielle eindimensionale Faltungsschichten, die nur zwei Parameter mit einer klaren Interpretation aufweisen. Die Interpretation der Parameter eines neuronalen Netzwerks ist eine ziemlich schwierige Angelegenheit, daher hat dieser Artikel mein Interesse geweckt.
Wenn Sie an der Beschreibung der Idee dieses Artikels interessiert sind und auch wissen, warum diese Idee für die Konstruktion von Kreidespektrogrammen von großer Bedeutung ist, dann sind Sie bei cat willkommen.
Ich stelle fest, dass alle in diesem Beitrag verwendeten Bilder entweder aus dem Originalartikel stammen oder mit dem in diesem Repository gespeicherten Jupyter-Notizbuch erhältlich sind.
Die Autoren des beschriebenen Artikels haben den Quellcode für den Github veröffentlicht, den Sie hier finden .
Kreidespektrogramme
Um das Wesentliche dieses Artikels zu verstehen, erinnern wir uns zunächst daran, was ein Kreidespektrogramm ist, wie man es erhält und welche Bedeutung es hat. Wenn Ihnen dieses Thema vertraut ist, ist dieser Teil nicht sehr interessant. Sie wird nach dem üblichen Spektrogramm berechnet, das mit der Fenster-Fourier-Transformation erstellt wurde:
Das Wesentliche dieser Operation ist die sequentielle Anwendung der Fourier-Transformation auf kurze Teile des Sprachsignals multipliziert mit einer Fensterfunktion. Das Ergebnis der Anwendung der Fenstertransformation ist eine Matrix, in der jede Spalte das Spektrum eines kurzen Abschnitts des ursprünglichen Signals darstellt. Schauen Sie sich das folgende Beispiel an:
Experimente von Wissenschaftlern haben gezeigt, dass das menschliche Ohr bei niedrigen Frequenzen empfindlicher auf Schalländerungen reagiert als bei hohen. Das heißt, wenn sich die Schallfrequenz von 100 Hz auf 120 Hz ändert, ist es sehr wahrscheinlich, dass eine Person diese Änderung bemerkt. Wenn sich die Frequenz jedoch von 10000 Hz auf 10020 Hz ändert, ist es unwahrscheinlich, dass wir diese Änderung erfassen können.
In diesem Zusammenhang wurde eine neue Maßeinheit für die Tonhöhe eingeführt - Kreide. Es basiert auf der psychophysiologischen Wahrnehmung von Schall durch eine Person und hängt logarithmisch von der Frequenz ab:
Tatsächlich ist das Kreidespektrogramm ein reguläres Spektrogramm, bei dem die Frequenz nicht in Hz, sondern in Kreide ausgedrückt wird. Der Übergang zur Kreide erfolgt durch Anwenden von Kreidefiltern auf das ursprüngliche Spektrogramm. Kreidefilter sind Dreiecksfunktionen, die gleichmäßig auf der Kreideskala verteilt sind. Als Beispiel hier sind 10 Kreidefilter (in der Praxis nehmen sie mehr, hier sind sie der Klarheit halber nur wenige):
In eine Frequenzskala übersetzt sehen dieselben Filter folgendermaßen aus:
Jede Spalte des anfänglichen Spektrogramms wird skalar mit jedem Kreidefilter (auf der Frequenzskala) multipliziert, wonach ein Zahlenvektor erhalten wird, dessen Größe der Anzahl der Filter entspricht. Das folgende Bild zeigt eine der Spalten des Spektrogramms (die Amplitudenwerte werden zur Verdeutlichung in eine logarithmische Skala umgewandelt, was im Bild farblich codiert ist, wird entlang der Ordinate angezeigt) und zwei Kreidefilter, mit denen ein Kreidespektrogramm erstellt werden kann:
Infolge solcher Transformationen bleiben die Werte aus den niedrigen Frequenzen des Spektrogramms im Kreidespektrum nahezu unverändert, und bei hohen Frequenzen werden die Werte aus einem größeren Bereich gemittelt. Als Beispiel schlage ich vor, das Kreidespektrogramm zu betrachten, das aus dem vorherigen Spektrogramm unter Verwendung von 64 Kreidefiltern erstellt wurde:
Zusammenfassend lässt sich sagen, dass im Kreidespektrogramm mehr Informationen gespeichert sind, die von der Person gut wahrgenommen und differenziert werden als im üblichen Spektrogramm. Mit anderen Worten, diese Darstellung des Klangs konzentriert sich mehr auf niedrige Frequenzen und weniger auf hohe.
Was hat SincNet damit zu tun?
Denken Sie daran, dass die Kreideskala auf der Grundlage der psycho-physischen Wahrnehmung von Schall durch den Menschen erstellt wurde. Aber was ist, wenn wir andere Frequenzbänder wählen möchten, die uns für eine bestimmte Aufgabe mehr interessieren als die anderen? Wie wähle ich den besten Filtersatz aus, um ein Problem zu lösen?
Die von den Autoren vorgeschlagene Architektur löst genau dieses Problem.
Die Autoren betrachten die folgende Funktion als Filter:
in dieser Formel ist eine rechteckige Funktion . Ein solches Filter stellt den Frequenzbereich von ein vorher . Hier ist ihr Zeitplan:
Mit der inversen Fourier-Transformation für diese Funktion können Sie ihr Analogon im Zeitbereich erhalten:
Funktion - Dies ist die Impulsantwort eines idealen Bandpassfilters, der in der Praxis nicht implementiert werden kann. Deshalb kürzen die Autoren diese Funktion mit einem Hamming-Fenster . In der digitalen Signalverarbeitung wird dieser Ansatz als Fenstersynthese bezeichnet.
Fenster abgeschnittene Funktionsoption Die Autoren schlagen vor, als Vorlage für alle Windungen zu verwenden, die auf rohe Audiodaten angewendet werden. Diese Funktion ist durch Parameter unterscheidbar. und Dies bedeutet, dass damit Netzwerkparameter durch die Methode der Rückübertragung von Fehlern optimiert werden können.
Durch den Faltungssatz die Faltung des ursprünglichen Signals mit der Funktion äquivalent zum Multiplizieren des Spektrums des ursprünglichen Signals mit einer Funktion . Grob gesagt, eine Faltung des ursprünglichen Signals mit der Funktion durchführen Wir "lenken" die Aufmerksamkeit des neuronalen Netzwerks auf einen bestimmten Frequenzbereich in dem betrachteten Signal.
Natürlich wird die Fourier-Transformation hier nicht angewendet, und die spezifischen Werte des Spektrums im Bereich werden nicht explizit an die neuronalen Netze gemeldet. . Offensichtlich ist die Aufgabe des Extrahierens der spektralen Eigenschaften den folgenden Blöcken zugeordnet, die sich im neuronalen Netzwerk befinden.
Von den Vorteilen dieses Ansatzes stellen die Autoren Folgendes fest:
- Schnelle Konvergenz
- Eine viel kleinere Anzahl von Parametern. In einem klassischen Faltungsblock entspricht die Anzahl der Parameter der Länge der Faltung. Bei dem beschriebenen Ansatz hängt die Anzahl der Parameter nicht von der Länge der Faltung ab und ist gleich 2
- Interpretierbarkeit von Parametern
Schlussfolgerungen
Es gibt viele Filter, mit denen Spektrogramme konvertiert werden. Zum Beispiel gibt es neben den beschriebenen Kreidefiltern auch Rindenfilter (Sie können hier und hier lesen). Zumindest ist die Rinde auch ein psychophysischer Wert, der "für einen Mann" ausgewählt wurde.
In ihrer Studie schlugen die Autoren eine Methode vor, mit der das neuronale Netzwerk abhängig vom Datensatz unabhängig die am besten geeigneten Frequenzbereiche im Lernprozess auswählen kann. Für mich ist dies dem Prozess der Erstellung eines Kreidespektrogramms sehr ähnlich, bei dem niedrigen Frequenzen eine höhere Priorität eingeräumt wird. Hier sind nur Kreidespektrogramme, die auf der Grundlage der menschlichen Wahrnehmung von Schall erfunden wurden, und bei der vorgeschlagenen Methode entscheidet das neuronale Netzwerk selbst, was wichtig ist und was nicht.