Dies ist eine Fortsetzung der Klassifizierung von Musikgenres mit dem Microsoft Cognitive Toolkit (CNTK).
In Teil 2 wird die Klassifizierung des Musikgenres unter Verwendung des in Teil 1 erstellten logarithmischen Mel-Spektrogramms durchgeführt. Es wird davon ausgegangen, dass NVIDIA GPU CUDA installiert ist.
In Spracherkennung: Genreklassifizierung Teil 1 - GTZAN-Genresammlungen haben wir Trainingsdaten und Verifizierungsdaten vorbereitet.
In Teil 2 werden wir Musikgenres mithilfe eines Convolutional Neural Network (CNN) klassifizieren.
Da es sich bei Audiodaten um eindimensionale Wellenformdaten handelt, fällt zunächst ein eindimensionales neuronales Faltungsnetzwerk ein. Dieses Mal verwenden wir jedoch ein zweidimensionales neuronales Faltungsnetzwerk als Graustufenbild mit der Zeit auf der horizontalen Achse und der Frequenz auf der vertikalen Achse. [1]
Die Struktur des Faltungs-Neuronalen Netzwerks wurde wie folgt vereinfacht. [2]
Layer | Filters | Size/Stride | Input | Output |
---|---|---|---|---|
Convolution2D | 64 | 3x3/1 | 1x128x128 | 64x128x128 |
MaxPooling2D | 3x3/2 | 64x128x128 | 64x64x64 | |
Convolution2D | 128 | 3x3/1 | 64x64x64 | 128x64x64 |
MaxPooling2D | 3x3/2 | 128x64x64 | 128x32x32 | |
Convolution2D | 256 | 3x3/1 | 128x32x32 | 256x32x32 |
Dense | 512 | 256x32x32 | 512 | |
Dense | 512 | 512 | 512 | |
Dense | 10 | 512 | 10 | |
Softmax | 10 | 10 |
Für den Anfangswert jedes Parameters verwendeten wir die Normalverteilung von He [[3]](# Referenz) für die Faltungsschicht und die gleichmäßige Verteilung von Glorot [[4]](# Referenz) für die vollständig verbundene Schicht.
Die Verlustfunktion verwendete den Kreuzentropiefehler.
Wir haben Stochastic Gradient Decent (SGD) mit Momentum als Optimierungsalgorithmus übernommen. Das Momentum wurde auf 0,9 festgelegt und der L2-Regularisierungswert wurde auf 0,0005 eingestellt.
Die zyklische Lernrate (CLR) [5] wird als Lernrate verwendet, die maximale Lernrate beträgt 1e-3, die Basislernrate beträgt 1e-5, die Schrittgröße beträgt das 10-fache der Anzahl der Epochen. Die Richtlinie wurde auf triangular2 festgelegt.
Als Maßnahme gegen Überlernen wurde Dropout [6] bei 0,5 zwischen den vollständig verbundenen Schichten angewendet.
Das Modelltraining führte 25 Epochen mit einem Mini-Batch-Training der Mini-Batch-Größe 32 durch.
・ CPU Intel (R) Core (TM) i7-6700K 4,00 GHz ・ GPU NVIDIA GeForce GTX 1060 6 GB
・ Windows 10 Pro 1909 ・ CUDA 10.0 ・ CuDNN 7.6 ・ Python 3.6.6 ・ Cntk-gpu 2.7 ・ Cntkx 0.1.53 ・ Matplotlib 3.3.1 ・ Numpy 1.19.2 ・ Pandas 1.1.2 ・ Scikit-Learn 0.23.2
Das Schulungsprogramm ist auf [GitHub] verfügbar (https://github.com/sho-watari/SpeechRecognition/tree/master/MGCC).
mgcc_training.py
Training loss and error Die folgende Abbildung zeigt die Verlustfunktion und die Protokolle der falschen Erkennungsrate während des Trainings. Das Diagramm links zeigt die Verlustfunktion, das Diagramm rechts zeigt die Falscherkennungsrate, die horizontale Achse zeigt die Anzahl der Epochen und die vertikale Achse zeigt den Wert der Verlustfunktion bzw. die Falscherkennungsrate.
Validation accuracy and confusion matrix Wenn die Leistung unter Verwendung der Testdaten bewertet wurde, die bei der Erstellung der Daten in Teil 1 getrennt wurden, wurden die folgenden Ergebnisse erhalten.
Validation Accuracy 69.00%
Die folgende Abbildung zeigt die gemischte Matrix der Verifizierungsdaten. Die Zeilenrichtung ist die richtige Antwort und die Spaltenrichtung ist die Vorhersage.
Speech Recognition : Genre Classification Part1 - GTZAN Genre Collections
Recommended Posts