Classez un jeu de données audio à l'aide de l'apprentissage par transfert
Parfois, la quantité de données disponibles pour entraîner un réseau est insuffisante pour la tâche à accomplir. Une solution possible à ce problème est l'apprentissage par transfert. Au lieu d'entraîner un réseau depuis le début, il est possible de se fonder sur un réseau qui a déjà été entraîné à une tâche différente mais connexe.
Téléchargez le jeu de données ESC-50.
Importez les métadonnées. Le jeu de données est une collection étiquetée de 2000 enregistrements de sons ambiants. Les fichiers des enregistrements durent cinq secondes et sont organisés en 50 classes sémantiques.
Inspectez un échantillon des métadonnées.
Divisez le jeu de données en sous-ensembles d'entraînement et de test.
Parcourez les classes disponibles.
Créez un réseau d'extracteurs d'éléments en découpant les couches du classifieur dans le réseau AudioIdentify.
Créez un réseau de classifieurs linéaires simples qui seront attachés à l'extracteur de caractéristiques.
Au lieu de recalculer le réseau complet et de spécifier une option LearningRateMultipliers dans NetTrain pour entraîner uniquement les couches de classification, vous pouvez pré-calculer les résultats du réseau extracteur et entraînez le classifieur. Cela permet d'éviter une évaluation redondante de l'ensemble du réseau.
Entraînez le réseau de classifieurs à l'aide de NetTrain.
Joignez le réseau d'extracteurs de caractéristiques et le classifieur entraîné à l'aide de NetJoin.
À l'aide de ClassifierMeasurements, calculez l'exactitude des données de test et représentez graphiquement la matrice de confusion des quatre classes les plus mauvaises.