Il s'agit d'une continuation de la classification des genres musicaux à l'aide du Microsoft Cognitive Toolkit (CNTK).
Dans la partie 2, la classification des genres musicaux sera effectuée en utilisant l'image logarithmique du spectrogramme mel préparée dans la partie 1. On suppose que NVIDIA GPU CUDA est installé.
Dans Reconnaissance vocale: Classification de genre Part1 --GTZAN Genre Collections, nous avons préparé des données d'entraînement et des données de vérification.
Dans la partie 2, nous classerons les genres musicaux à l'aide d'un réseau neuronal convolutif (CNN).
Étant donné que les données audio sont des données de forme d'onde unidimensionnelle, un réseau neuronal convolutif unidimensionnel vient à l'esprit en premier, mais cette fois, nous utiliserons un réseau neuronal convolutif bidimensionnel comme une image en niveaux de gris avec le temps sur l'axe horizontal et la fréquence sur l'axe vertical. [1]
La structure du réseau neuronal convolutif a été simplifiée comme suit. [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 |
Pour la valeur initiale de chaque paramètre, nous avons utilisé la distribution normale de He [[3]](# reference) pour la couche convolutive et la distribution uniforme de Glorot [[4]](# reference) pour la couche entièrement connectée.
La fonction de perte a utilisé l'erreur d'entropie croisée.
Nous avons adopté Stochastic Gradient Decent (SGD) avec Momentum comme algorithme d'optimisation. L'élan a été fixé à 0,9 et la valeur de régularisation L2 a été fixée à 0,0005.
Le taux d'apprentissage cyclique (CLR) [5] est adopté comme taux d'apprentissage, le taux d'apprentissage maximal est de 1e-3, le taux d'apprentissage de base est de 1e-5, la taille du pas est 10 fois le nombre d'époques, La politique a été définie sur triangulaire2.
Comme mesure contre le surapprentissage, Dropout [6] a été appliqué à 0,5 entre les couches entièrement connectées.
La formation du modèle a effectué 25 Epoch avec une formation en mini-lot de taille mini-lot 32.
・ Processeur Intel (R) Core (TM) i7-6700K 4,00 GHz ・ GPU NVIDIA GeForce GTX 1060 6 Go
・ Windows 10 Professionnel 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
Le programme de formation est disponible sur GitHub.
mgcc_training.py
Training loss and error La figure ci-dessous est une visualisation de la fonction de perte et des journaux de taux de fausse reconnaissance pendant l'entraînement. Le graphique de gauche montre la fonction de perte, le graphique de droite montre le taux de fausse reconnaissance, l'axe horizontal montre le nombre d'époques et l'axe vertical montre la valeur et le taux de fausse reconnaissance de la fonction de perte, respectivement.
Validation accuracy and confusion matrix Lorsque les performances ont été évaluées à l'aide des données de test qui ont été séparées lors de la préparation des données de la partie 1, les résultats suivants ont été obtenus.
Validation Accuracy 69.00%
La figure ci-dessous est une visualisation de la matrice mixte des données de vérification. La direction de ligne est la bonne réponse et la direction de colonne est la prédiction.
Speech Recognition : Genre Classification Part1 - GTZAN Genre Collections
Recommended Posts