L'importance de l'échelle dans l'apprentissage profond
18 avril 2013
Intelligence Artificielle
Introduction et recherche de haute précision
...de certains des tests de performance standard et cela permet aux produits Baidu que vous utilisez probablement de bien mieux fonctionner. Ainsi, après avoir atteint l'étape que je vous ai montrée sur la diapositive précédente, il y a environ deux ans et demi, je me suis assis avec mes étudiants et nous avons passé beaucoup de temps à réfléchir à la question de savoir comment construire un système d'apprentissage de haute précision ? Étant donné où nous en sommes avec la technologie de l'apprentissage profond, comment passer au niveau supérieur ?
L'impact de la quantité de données (Étude Banko et Brill)
Et pour nous inspirer, nous avons commencé à nous pencher sur l'histoire de l'apprentissage automatique. Nous sommes en fait revenus aux années 2000, 2001, quand la plupart des gens faisaient de l'apprentissage supervisé, c'est-à-dire de l'apprentissage à partir de données étiquetées. Et à l'époque, en 2000, 2001, les débats portaient sur les algorithmes d'apprentissage dominants du moment, les algorithmes basés sur la mémoire, Winnow, Perceptron, Naive Bayes, quel était le meilleur algorithme ? Ma réflexion a donc été fortement influencée par une étude réalisée par Banko et Brill en 2001, dans laquelle ils ont pris les principaux algorithmes d'apprentissage de l'époque, des algorithmes d'apprentissage supervisé, et ont mené une étude comparant les effets de l'exécution de différents algorithmes sur différentes quantités de données. Et leur résultat est affiché en haut à droite, où les quatre lignes différentes correspondent à quatre des principaux algorithmes d'apprentissage de l'époque. Et le résultat est très clair, n'est-ce pas ? Plus vous donnez de données aux algorithmes, plus les performances augmentent. Et très souvent, un algorithme supposé inférieur surpassera un algorithme supposé supérieur si vous pouvez donner à l'algorithme supposé inférieur plus de données, pour le mettre à l'échelle de jeux de données plus importants. Ainsi, des résultats comme ceux-ci ont conduit à un dicton dans l'apprentissage automatique selon lequel ce n'est souvent pas celui qui a le meilleur algorithme qui gagne, c'est celui qui a le plus de données.
Apprentissage non supervisé et puissance de calcul
C'était donc le résultat de l'apprentissage supervisé où les données étaient très limitées car l'étiquetage des données demande beaucoup de travail. Qu'en est-il des algorithmes comme le codage parcimonieux où l'on peut apprendre à partir de données non étiquetées ? Avec les algorithmes d'apprentissage de caractéristiques non supervisés comme le codage parcimonieux, nous pouvons apprendre à partir de données non étiquetées, nous avons donc tous accès à une source de données infinie, téléchargez autant de données que vous le souhaitez sur Internet. Et ce n'est donc plus celui qui a le plus de données qui gagne, c'est celui qui a le plus d'ordinateurs, c'est-à-dire celui qui a la capacité de calcul pour traiter les quantités de données essentiellement infinies. Ainsi, l'un de mes étudiants, Adam Coates, a mené une expérience dans laquelle il a pris les principaux algorithmes d'apprentissage, les principaux algorithmes d'apprentissage de caractéristiques non supervisés de l'époque, représentés par les différentes lignes, et les tendances ici sont encore une fois très claires : l'algorithme compte un peu, mais c'est vraiment la capacité à mettre ces algorithmes à l'échelle, plus vous pouvez mettre ces modèles à l'échelle comme indiqué sur l'axe des abscisses, meilleures sont les performances.
Distinction entre données étiquetées et non étiquetées
Compte tenu de ces résultats, nous avons passé beaucoup de temps à réfléchir à la manière dont nous pourrions utiliser les algorithmes d'apprentissage non supervisés, le codage parcimonieux, les algorithmes d'apprentissage profond, et ce qu'il faudrait pour construire des versions à très grande échelle de ces modèles ? J'ai donc passé du temps dans la Silicon Valley, j'ai passé du temps à errer dans la Silicon Valley en essayant de comprendre où je pouvais avoir accès à de nombreux ordinateurs afin de construire des algorithmes d'apprentissage profond de très grande taille. Et je suppose que pour expliquer ce que nous avons fait pour construire des algorithmes d'apprentissage profond de très grande taille, je vais diviser la partie suivante en deux. Il se trouve que lorsque des gens comme moi donnent des conférences sur l'apprentissage profond, l'apprentissage profond combine souvent des données étiquetées et des données non étiquetées, où nous utilisons des données non étiquetées pour apprendre la représentation des caractéristiques, puis nous combinons cela avec des données étiquetées pour aboutir aux prédictions de classification. Ainsi, très souvent, lorsque vous entendez des gens donner des conférences sur l'apprentissage profond, les résultats de l'apprentissage supervisé ou des données étiquetées et ceux de l'apprentissage non supervisé ou des données non étiquetées sont souvent confondus, ce qui rend parfois les résultats très confus. Je vais donc délibérément séparer ces deux choses et parler d'applications où la performance provient de la capacité à exploiter une grande quantité de données étiquetées, puis parler plus tard de résultats où la performance provient de la capacité à exploiter une grande quantité de données non étiquetées.
Infrastructure distribuée et projet chez Google
Je vais commencer par l'apprentissage à partir de données étiquetées. Et donc ce que nous avons fait, c'est que nous avons développé des logiciels, et ainsi en 2011, j'ai lancé un projet chez Google pour profiter de l'infrastructure réseau distribuée de Google pour construire de très, très grands réseaux de neurones, pour construire ces algorithmes d'apprentissage profond en commençant par exploiter des données étiquetées. Étant donné un réseau de neurones comme celui-là, comme l'un des modèles de réseau que vous venez de voir, ce que nous ferions, c'est prendre le modèle et le partitionner de sorte que différentes parties du modèle puissent résider sur différentes machines. Et si vous faites cela, alors parce que le nombre de connexions réseau transversales est relativement faible, la quantité de communication qui doit avoir lieu entre les différentes machines n'est pas excessive. Au sein de chaque machine, nous exploitons ensuite...