Deep Neural Networks et GPU

Les résultats d'une recherche sur Internet concernant les notions « Intelligence artificielle (IA, ou AI pour "Artificial Intelligence")» ou « Deep Learning (DL) » sont étonnants. Le terme « Deep Learning » implique l'utilisation de « Deep Neural Networks (DNN)». Ces architectures DNN constituent le pilier des systèmes AI et permettent d'obtenir les résultats récemment mentionnés par les médias. 

Voici quelques exemples de résultats révolutionnaires qui ont été obtenus à l'aide de technologies reposants sur les DNN :

Deep Neural Networks - MNIST & CIFAR 10
MNIST & CIFAR 10

Reconnaissance d’images et de caractères

La référence standard pour la reconnaissance des caractères est le jeu de données MNIST. Celui-ci contient 60.000 chiffres de 0 à 9 écrits à la main et qui ont été scannés comme images de niveaux de gris de 28x28 pixels. Grâce à MNIST, les meilleures topologies DNN atteignent un taux de reconnaissance supérieur à celui de l'être humain (super humain). Avec deux réseaux ou plus, le Benchmark de reconnaissance d’images CIFAR 10, entre également dans l'univers du super humain.

Détection du cancer de la peau en dermatologie
Détection du cancer de la peau en dermatologie

Diagnostic medical

Dans le domaine du diagnostic médical, les architectures DNN basées sur la reconnaissance d'images atteignent des résultats de même qualité que ceux obtenus par des experts humains. Ceci annonce une révolution dans la classification automatique de l'analyse médicale d'images.

NVIDIA BB8 – Un véhicule prototype pour la conduit autonome
NVIDIA BB8 – Un véhicule prototype pour la conduit autonome

Conduite autonome

Les véhicules autonomes font la une de nombreux médias traitant de l'IA. Véhicules agricoles, avions et navires y sont traités sur le même pied d'égalité, bien que la voiture autonome soit le sujet favori. L'approche programmatique classique de cette tâche atteint rapidement ses limites car le programmeur ne peut pas anticiper toutes les situations possibles auxquelles un véhicule autonome est confronté dans son fonctionnement quotidien. C'est pourquoi, la recherche se poursuit actuellement fiévreusement pour faire intervenir les DNN dans ce domaine. Le véhicule test Nvidia BB8 est l'un de ces développements. Dans un mode d'apprentissage, le véhicule est confronté à des situations de conduite quotidiennes et apprend comme un conducteur humain à maîtriser ces situations. A cet effet, il utilise de manière très efficace les capteurs intégrés dans le véhicule et a déjà surmonté les épreuves de parcours comprenant des obstacles complexes, des chantiers, etc.

Source


Les réseaux neuronaux s’inspirent des neurones biologiques et de la manière dont ils sont interconnectés les uns avec les autres. Ils utilisent une architecture parallèle, qui est composée de couches distinctes de neurons, chaque couche étant connectée à la précédente et à la suivante. Dans une architecture « Deep Neural Network” (DNN), le nombre de ces couches peut se situer dans une fourchette allant de 10 à plus de 100. L’investissement en développement vise à créer une matrice pondérée pour l’ensemble du réseau, qui minimise les erreurs sur les données d’apprentissage et les données en temps réel.  Une simulation biologique réaliste, comme dans le modèle de Hodgkin-Huxley nécessiterait une performance qui dépasserait de loin les performances hardware disponibles actuelelment et à moyen terme.

Dans un DNN, l’apprentissage se fait en utilisant l’algorithme de rétropropagation, qui est la découverte essentielle qui a permis de rendre les DNN utilisables pour des applications du monde concret.

Deep Neural Networks - Artificial Neural Network

L'apprentissage d'un DNN requiert d'énormes puissances de calcul, en particulier dans le domaine de la virgule flottante. Chaque passage sur le jeu complet de données d'apprentissage est désigné comme époque. L'apprentissage raisonnable pour un DNN peut exiger plusieurs centaines d'époques afin de réduire l'erreur sur une valeur souhaitée. Un système typique à deux unités processeurs, contenant de 16 à 44 cœurs, s'avère rapidement être insuffisant pour un apprentissage devant maîtriser un jeu volumineux de données. Citons par exemple les images à haute résolution de caméras installées dans les prototypes de véhicule autonome. 

Ces limitations ont entraînés le développement de codes de programmes DNN qui utilisent la pile de logiciels Nvidia CUDA. Les opérations d'algèbre linéaire, en particulier, y sont judicieusement délocalisées sur des GPU. Le terme correct devrait être « GPGPU » qui signifie « General Purpose Graphical Processing Unit », mais la règle s'attarde uniquement au terme « GPU ».


La pile de logiciels CUDA a été complétée dernièrement par des bibliothèques spéciales pour DNN. La topologie parallèle de DNN permet une modélisation efficace de tâches de calcul sur l'architecture d'un GPU avec ses milliers d'unités. La puissance de calcul par rapport à une configuration typique à deux CPU peut s'améliorer de 10 à 15 fois. Des serveurs haut de gamme à deux CPU peuvent aujourd'hui accueillir de 4 à 8 GPU, des cartes Tesla ou GeForce basées sur Nvidia Pascal. Grâce à cela, un système peut atteindre des puissances de virgule flottante en simple précision (32 bits) de l'ordre de 100 TFlops. 

La position dominante sur le marché de Nvidia dans le domaine de l'informatique GPU sera bientôt défiée par l'annonce de la série GPU « Instinct » d'AMD. Ces GPU devraient être disponibles sur le marché en 2017. 

La génération suivante des processeurs Xeon Phi, baptisés sous le nom de « Knights Landing » dispose de 76 cœurs de type « Silvermont » sur une puce. En plus de la carte PCIe, une version « socket » est disponible qui remplace le processeur Xeon habituel sur la carte mère. Cette version offre le gros avantage que tous les emplacements DIMM de la carte mère sont à la disposition du Xeon Phi. Cela permet de contourner la contrainte de la taille de stockage des cartes PCIe qui se situe entre 12 Go et 24 Go.

Deep Neural Networks - NVIDIA Deep Learning SDK
NVIDIA Deep Learning SDK

L'utilisation de FPGA (Filed Programmable Gate Array) est un pas technologique supplémentaire pour les DNN. Les FPGA peuvent être configurés par logiciel et permettent ainsi d'utiliser des topologies qui sont spécialement adaptées à une tâche DNN. L'acquisition d'Altera par Intel porte ses premiers fruits dans les processeurs Xeon qui ont intégrés un FPGA en tant que modules multi-puces. 

Les grands fournisseurs de services Cloud tels que Google et Microsoft développent leur propre accélérateur DNN, basé sur des FPGA ou ASIC. Le processeur TPU (Tensor Processing Unit) de Google en est un exemple. Ces accélérateurs spécialement conçus pour les DNN permettent d'optimiser la performance par watt dont les grands centres informatiques ont tant besoin. A l'autre extrême, les FPGA peuvent faire mouche dans des applications du domaine de l'intégration et des capteurs afin d'optimiser le temps de vie des batteries.  Le domaine de l’IoT bénéficie particulièrement de ce développement particulier, comme les DNN peuvent être intégrés dans des périphériques « Endpoint » conjointement aux capteurs. Ce qui permet un premier traitement directement après la couche des capteurs.

En 2017, ces tendances se manifesteront davantage encore par l'intérêt croissant à l'égard des DNN.

Plus d'information

Le besoin en performance de calcul dans la recherche scientifique et industrielle ne cesse de croître.

L'« Apprentissage automatique » (« Machine Learning » en anglais) comporte de nos jours un grand nombre de différentes techniques qui puisent leur origine dans les domaines de la statique, de la neurobiologie et de l'informatique. Les réseaux neuronaux dont la structure s'appuie sur le modèle biologique constituent un domaine très prometteur.

Comment puis-je vous aider?

Sales

United Kingdom

Tel.: +44(0)1295814500
Fax: +44(0)1295812731