Commit 5af9fdf8 authored by Baffert Ambre's avatar Baffert Ambre
Browse files

readme

parent 398e89c5
......@@ -7,8 +7,34 @@ Voici donc l'article choisi : https://arxiv.org/pdf/1608.04363.pdf
L'article présente une méthode afin de classifier des sons urbains et ainsi apprendre à les reconnaître.
## Analyse du papier
Nous avons fait un résumé et une critique de ce papier dans ce [fichier .md](https://gitlab.insa-rouen.fr/mdavid/prj_deep/-/blob/master/recherches.md).
On y retrouve principalement une analyse de la data augmentation faite ainsi que des possibles améliorations à faire.
## Traitement des données
Les données audios seront en faite représentée sous forme d'image (par leur spectre mel). Le problème qui au départ traitait de donnée audio, va finalement se ramener à un problème de classification d'image
Les données audios seront en faite représentées sous forme d'image (par leur spectre mel). Le problème qui au départ traitait de donnée audio, va finalement se ramener à un problème de classification d'image
## Expériences liées au projet
Afin d'expérimenter le domaine du machine Learning, nous avons mener quelques expériences reposant sur les dits de notre article étudié, mais aussi sur la curiosité de notre groupe.
### Expérience 1 : Bbtenir les même résultats que l'article
Notre première expérience est tout d'abord d'obtenir les mêmes résultats qu'énoncés dans l'article, en utilisant l'architecture de réseau décrite et en ne procédant à aucune augmentation des données.
**Résultat** : Nous obtenons les mêmes résultats de l'article.
### Expérience 2 : Tester l'influence de la data-augmentation décrite dans l'article
D'après l'article, plusieurs types d'augmentation peuvent être réalisés sur les données audios : augmentation/réduction des tons, ajout de bruit gaussien, changement de tempo. L'article décrit aussi que certaines de augmentations ne doivent être réalisées seulement sur certaines classes, ce que nous avons essayé de faire. Néanmoins, nous n'avons pas accès aux paramètres des fonctions d'augmentations de l'article, nous avons donc testé à taton.
### Expérience 3 : Tester l'influence des 10 folds
Nous avons voulu voir dans quelle mesure le fait de ne pas réaliser une expérience sur 10 folds pouvaient nuire à la précisions de l'accuracy. Nous avons donc regroupé l'ensemble des sons dans un seul dossier et séparé les sets de training, validation et test en 80% / 10% / 10%.
### Expérience 4 : Utilisation d'autres modèles pour amélioration
## Demo
*ici pourquoi pas mettre un tuto avec un script pour tester notre modèle sur un audio au choix*
Après s'être rendu compte que l'augmentation des données ne permettait pas forcément une amélioration significative de l'accuracy, nous avons cherché à utiliser d'autre architecture pour classifier nos sons urbains.
......@@ -16,9 +16,7 @@ Les chercheurs ont voulu apporter différentes contributions à leurs recherches
- Deuxièmement, proposer une méthode pour créer des données audio augmentées pour régler le problème de la rareté des données et analyser l'influence des différentes augmentations sur les performances de l'architecture CNN proposée.
- Enfin, examiner l'influence de chaque augmentation sur la précision de classification du modèle pour chaque classe.
Ils indiquent que les CNN conviennent, en principe, très bien pour les problèmes de classification de sons environnementaux. D'une part car ils sont capables de capturer des modèles de modulations d'énergie à travers le temps et la fréquence lorsqu'ils sont appliqués à des entrées de type spectogramme. D'autre part, en utilisant des noyaux convolutifs avec un petit champ réceptif, le réseau devrait être capable d'apprendre avec succès et d'identifier des modèles spectro-temporels représentatifs de différentes classes de sons, même si une partie du son est masquée par d'autres sources, comme le bruit par exemple.
Pourtant, l'application des CNNs à la classification des sons environnementaux a été limitée jusqu'à présent. Nous allons donc étudier leur recherche.
Ils indiquent que les CNN conviennent, en principe, très bien pour les problèmes de classification de sons environnementaux. Pourtant, l'application des CNNs à la classification des sons environnementaux a été limitée jusqu'à présent. Nous allons donc étudier leur recherche.
## Data Set
......@@ -31,13 +29,17 @@ L'architecture du modèle est composée de la manière suivante :
- Entrelacée de 2 opérations de pooling,
- Suivi de 2 fully connected (dense) layers.
En entrée du réseau de neurones il y aura des spectogrammes Mel représentant des "morceaux" de fréquence du signal audio. Ils sont pris aléatoirement sur le spectogramme de Mel, ces morceaux seront représentés sur 128 bandes couvrant le spectre audible (20 - 22050 Hz). La fenêtre d'échantillonage est de 23 ms, et la durée des audios sera fixée à 3s.
En entrée du réseau de neurones il y aura des **spectogrammes Mel** représentant des "morceaux" de fréquence du signal audio. Ces morceaux seront donc représentés sur 128 bandes couvrant le spectre audible (20 - 22050 Hz). La fenêtre d'échantillonage est de 23 ms, et la durée des audios sera fixée à 3s.
La sortie du réseau de neurones sera donc une classe, un entier.
#### Spectogramme de Mel
### Spectogramme de Mel
Le spectogramme permet de donner une représentation visuelle de l'audio et notammment de son amplitude.
Ces spectrogrammes sont créés grâce à des Transformées de Fourier. Pour résumé simplement, un spectrogramme mel est un spectrogramme dans lequel les fréquences sont converties en échelle mel. L'**échelle mel** est une unité de hauteur telle que des distances égales de hauteur sonnent à égale distance de l'auditeur car les humains ne perçoivent pas les fréquences sur une échelle linéaire.
Ce type de représentation permet de représenter un audio en empilant les transformées de Fourier. Le spectogramme permet alors de donner une représentation visuelle de l'audio et notammment de son amplitude. L'échelle de Mel permet de mieux représenter les fréquences perceptibles par l'humain. En combinant les deux, on obtient un outil complet et facile à analyser.
On obtient un outil complet et facile à analyser.
<div align="center">
<img height="350" src="img/mel.png">
......@@ -48,11 +50,11 @@ Ce type de représentation permet de représenter un audio en empilant les trans
## Data augmentation
L'augmentation de données peut être décrite comme une application d’une, ou plusieurs, déformations sur un ensemble de données annotées. Ces déformations ne changeront pas la sémantique même de l'échantillon et donc ne changera pas l'étiquette de l'échantillon. Nous aurons donc un nombre augmenté de données à notre disposition pour l'entrainement du modèle. L'objectif est d'entraîner le modèle sur un ensemble de données pour qu'il devienne invariant aux déformations, mieux généralisé et qu'il donne de meilleurs résultats sur de nouveaux échantillons (pas d'*overfit*). Cette technique de data augmentation est énormément utilisé dans le cas des images (application de rotation, translation, effet miroire etc). Dans la cas de l'audio elle à permet une amélioration des résultats dans la classification de musique.
L'augmentation de données peut être décrite comme une application d’une, ou plusieurs, déformations sur un ensemble de données annotées. L'objectif est d'entraîner le modèle sur un ensemble de données pour qu'il devienne invariant aux déformations, mieux généralisé et qu'il donne de meilleurs résultats sur de nouveaux échantillons (pas d'*overfit*). Cette technique de data augmentation est énormément utilisé dans le cas des images (application de rotation, translation, effet miroire etc).
Dans notre cas, l'augmentation d'audio environnementaux est limitée, cette technique à notamment été utilisée dans l'article [[2]](#Paper). Les résultats sont selon eux peu satisfaisants. En effet, elle implique une forte augmentation du temps d'entrainement pour le peu de précision qu'elle permet de gagner. Dans le papier que nous étudions la data augmentation est utilisé avec des méthodes différentes. Nous allons donc nous focaliser sur cela dans cette partie.
Dans notre cas, l'augmentation d'audio environnementaux est limitée, cette technique à notamment été utilisée dans l'article [[2]](#Paper). Les résultats sont selon eux peu satisfaisants. En effet, elle implique une forte augmentation du temps d'entrainement pour le peu de précision qu'elle permet de gagner. Dans le papier que nous étudions la data augmentation est utilisé avec des méthodes différentes.
Les expériences sont réalisées avec **4 types différents de déformation** de l'audio d'origine avant même de réaliser la conversion expliquée auparavant. Il y a donc la création de 5 nouveaux échantillons issue de cette augmentation. Une contrainte forte avant d'appliquer les déformations est de s'assurer de ne pas changer la sémantique du signal. Si un changement se produit alors le réseau apprendrait sur des données totalement biaisées et la précision serait donc impactée. Voici donc les déformations réalisées dans le cadre de ce papier de recherche :
Les expériences sont réalisées avec **4 types différents de déformation** de l'audio d'origine. Une contrainte forte avant d'appliquer les déformations est de s'assurer de ne pas changer la sémantique du signal. Si un changement se produit alors le réseau apprendrait sur des données totalement biaisées et la précision serait donc impactée. Voici donc les déformations réalisées dans le cadre de ce papier de recherche :
- **Time Stretching (TS)**: Augmentation ou réduction de la vitesse de l'audio de base par un facteur multiplicateur.
- **Pitch Shifting (PS)**: Modification de la hauteur du son.
......@@ -63,8 +65,8 @@ Les expériences sont réalisées avec **4 types différents de déformation** d
Chacun des résultats de cet article sont comparés avec deux méthodes, car elles sont évaluées sur la même data set:
- *PiczakCNN* est un réseau de Deep Learning utilisant aussi des CNNs.
- *SKM* est un apprentissage par dictionnaire.
- *PiczakCNN* est un réseau de Deep Learning utilisant aussi des **CNNs**.
- *SKM* est un apprentissage par **dictionnaire**.
Les résultats de *SB-CNN* sont comparables aux deux autres méthodes. En effet l'accuracy moyenne est la suivante :
......@@ -83,10 +85,7 @@ Cependant l'intérêt de cet article réside dans la **data augmentation**. Gr
Nous remarquons donc que la méthode par dictionnaire semble limitée en termes de performance. Le deep learning semble donc avoir une bien meilleure capacité de représentation.
### Avantages et inconvénients de la data augmentation
## Avantages et inconvénients de la data augmentation
<div align="center">
<img height="300" src="img/mat_conf.png">
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment