Microsoft publie sa solution d'apprentissage profond
Pour la reconnaissance vocale, CNTK dépasse en rapidité les logiciels existants

Le , par dourouc05, Responsable Qt
Il y a peu, Google a mis à disposition des développeurs TensorFlow, sa solution d’apprentissage profond, une technique d’apprentissage automatique qui exploite principalement des réseaux neuronaux de très grande taille : l’idée est de laisser l’ordinateur trouver lui-même, dans sa phase d’apprentissage, des abstractions de haut niveau par rapport aux données disponibles. Par exemple, pour reconnaître des chiffres dans des images, ces techniques détermineront une manière d’analyser l’image, d’en récupérer les éléments intéressants, en plus de la manière de traiter ces caractéristiques et d’en inférer le chiffre qui correspond à l’image.

Microsoft vient tout juste d’annoncer sa solution concurrente, nommée CNTK (computational network toolkit), elle aussi disponible gratuitement sous une licence libre de type MIT sur GitHub. Cette annonce poursuit la série d’ouvertures de code annoncées par Microsoft dernièrement, comme ChakraCore, son moteur JavaScript.

Ces développements ont eu lieu dans le cadre de la recherche sur la reconnaissance vocale : les équipes de Microsoft estimaient que les solutions actuelles avaient tendance à les ralentir dans leurs avancées. Quelques chercheurs se sont lancés dans l’aventure d’écrire eux-mêmes un code de réseaux neuronaux très efficace, accéléré par GPU… et leurs efforts ont porté leurs fruits, puisque, selon leurs tests, CNTK est plus efficace que Theano, TensorFlow, Torch7 ou Caffe, les solutions les plus avancées dans le domaine du logiciel libre.



Microsoft n’est pas la seule société à beaucoup parier sur les GPU : NVIDIA également croit fort aux GPU pour accélérer l’apprentissage profond. Pour la sortie de la dernière version de CUDA, la solution de NVIDIA pour le calcul sur GPU, leur bibliothèque cuDNN proposait un gain d’un facteur deux pour l’apprentissage d’un réseau.

L’avantage des GPU dans le domaine est multiple. Tout d’abord, leur architecture s’adapte bien au type de calculs à effectuer. Ensuite, ils proposent une grande puissance de calcul pour un prix raisonnable : pour obtenir la même rapidité avec des processeurs traditionnels (CPU), il faudrait débourser des milliers d’euros, par rapport à une carte graphique à plusieurs centaines d’euros à ajouter dans une machine existante. Ainsi, les moyens à investir pour commencer à utiliser les techniques d’apprentissage profond sont relativement limités. Cependant, la mise à l’échelle est plus difficile : l’apprentissage sur plusieurs GPU en parallèle est relativement difficile, toutes les bibliothèques ne le permettent pas. Pour réaliser de véritables progrès algorithmiques, il faut sortir le carnet de chèques, avec des grappes de machines, nettement moins abordables.

Source : Microsoft releases CNTK, its open source deep learning toolkit, on GitHub.

Et vous ?

Qu'en pensez-vous ?

Ce contenu a été publié dans HPC et calcul scientifique, Matériel par dourouc05.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Matthieu Vergne Matthieu Vergne - Expert confirmé https://www.developpez.com
le 25/01/2016 à 21:13
Citation Envoyé par dourouc05  Voir le message
Qu'en pensez-vous ?

Pas grand chose. D'un point de vue avancée, c'est un "simple" transfert CPU -> GPU (simple car plein de choses sont déjà passé par ce processus, y'a rien de nouveau ici). Ce qui me semble important de noter c'est la disponibilité en open source, donc à voir ce que les gens en feront. Donc c'est bien de le faire savoir, mais y'a pas grand chose à en penser à mon avis : c'est à l'utilisation que se fera la différence.

En plus c'est du C++, donc ça m'intéresse pas. {^.^}~
Avatar de - https://www.developpez.com
le 25/01/2016 à 22:27
Citation Envoyé par Matthieu Vergne  Voir le message
En plus c'est du C++, donc ça m'intéresse pas. {^.^}~

Merci pour cette remarque trollesque et inintéressante.
En plus, ce n'est pas complètement exact : le logiciel est effectivement codé en C++ (cela arrive parfois pour de la prog HPC/GPU...) il mais peut-être utilisé avec d'autres langages (https://github.com/Microsoft/CNTK/tr...ation/Tutorial) :
Models can be described and modified with
- C++ code
- Network definition language (NDL) and model editing language (MEL)
- Brain Script (beta)
- Python and C# (planned)

Avatar de Conan Lord Conan Lord - Membre émérite https://www.developpez.com
le 26/01/2016 à 14:14
Je ne connais pas bien les technologies d'apprentissage. Parle-t-on ici de la phase d'apprentissage dans laquelle le moteur speech to text "intègre" le corpus global pour définir des règles, ou de la phase dans laquelle le moteur speech to text intègre le corpus fourni par l'utilisateur pour le comparer au corpus global et définir des règles spécifiques à l'utilisateur ?
Avatar de Matthieu Vergne Matthieu Vergne - Expert confirmé https://www.developpez.com
le 26/01/2016 à 16:41
Citation Envoyé par groharpon42  Voir le message
Merci pour cette remarque trollesque et inintéressante.

Oui, c'était le but. Je te remercie d'y rajouter ta propre couche. {^_^}

Faut dire que ces derniers temps (~1,5 mois) je me suis beaucoup retenu de participer sur DVP (entre autres choses) pour respecter des contraintes pro, donc maintenant je me lâche un peu. J'espère que vous m'en voudrez pas trop. {^_°}
Contacter le responsable de la rubrique Accueil