Vive la discrimination !
Je cherche toujours, pour mon projet d'algorithme de classification audio, la meilleure technique de discrimination entre plusieurs catégories.
Jusque là, j'utilisais un réseau de neurones. J'avais choisi cette technique principalement parce qu'elle est une des plus connues parmis les différentes méthodes d'apprentissage automatique. J'ai voulu écrire ma propre implémentation, histoire de comprendre vraiment comment ça fonctionne, et ne pas utiliser une bibliothèque préexistante comme une sorte de boîte noire magique. Je ne regrette pas ce choix, mais il a une contrepartie : maintenant, quand mon réseau ne s'entraîne pas bien, je ne sais pas si c'est à cause de la complexité du problème que je lui soumets, ou parce que mon algo d'entraînement est mauvais. L'entrainement de ce genre de bête est déjà suffisament hasardeux avec un algo fiable pour que cette difficulté supplémentaire soit de trop.
J'aimerais bien faire une expérience : collecter des extraits de radio de plusieurs pays différents, où on parle des langues que je ne connais vraiment pas, et voir si je peux distinguer les publicités du reste. L'idéal serait de faire le test avec plusieurs personnes, et d'avoir un moyen de savoir si les intuitions des gens sont vraies (trouver quelqu'un qui connait cette langue, en fait). Ce genre d'expérience pourrait aider à comprendre quels critères simples peuvent être utilisés pour faire un bon algorithme de discrimination. Ou au contraire, montrer que mon projet est irréalisable, si la distinction n'est pas possible sans comprendre le sens des phrases.
J'ai aussi découvert d'autres techniques de classification. Je connaissais déjà les machines à vecteurs de support : je ne pense pas qu'ils ajoutent grand-chose dans mon cas. On m'a conseillé l'analyse en composantes principales, mais ce n'est pas en tant que tel une méthode de classification, et les fondements mathématiques sous-jacents ne répondent pas à mon problème. Les méthodes qui utilisent des arbres de décision me semblent intéressantes : elles sont plus simples à analyser que les autres, à mon avis. On a moins cet effet
Il faut aussi envisager d'autres techniques, qui peuvent rapporter gros. Je pense surtout à l'utilisation de
La suite du développement sera donc probablement orientée dans cette direction : implémenter un système de signature audio, simple et sans prétention, qui soit juste assez fiable pour reconnaître un petit ensemble de jingles pour une radio donnée. Si ça fonctionne, le résultat final peut être beaucoup plus fiable qu'avec un algorithme de classification générique.