La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Récemment publié article, ce qui montre une bonne tendance dans l'apprentissage automatique ces dernières années. En bref : le nombre de startups de machine learning a chuté au cours des deux dernières années.

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?
Bien. Voyons « si la bulle a éclaté », « comment continuer à vivre » et parlons d’où vient ce gribouillis en premier lieu.

Parlons d’abord de ce qui a été le booster de cette courbe. D'où vient-elle? Ils se souviendront probablement de tout victoire machine learning en 2012 au concours ImageNet. Après tout, c'est le premier événement mondial ! Mais en réalité, ce n’est pas le cas. Et la croissance de la courbe commence un peu plus tôt. Je le décomposerais en plusieurs points.

  1. 2008 a vu l’émergence du terme « big data ». De vrais produits ont commencé apparaître depuis 2010. Le Big Data est directement lié à l’apprentissage automatique. Sans Big Data, le fonctionnement stable des algorithmes qui existaient à l’époque est impossible. Et ce ne sont pas des réseaux de neurones. Jusqu’en 2012, les réseaux de neurones étaient l’apanage d’une minorité marginale. Mais ensuite, des algorithmes complètement différents, qui existaient depuis des années, voire des décennies, ont commencé à fonctionner : SVM(1963,1993), Forêt aléatoire (1995), AdaBoost (2003),... Les startups de ces années-là sont avant tout associées au traitement automatique de données structurées : caisses enregistreuses, utilisateurs, publicité, bien plus encore.

    Un dérivé de cette première vague est un ensemble de frameworks tels que XGBoost, CatBoost, LightGBM, etc.

  2. En 2011-2012 réseaux de neurones convolutifs a remporté de nombreux concours de reconnaissance d'images. Leur utilisation effective a été quelque peu retardée. Je dirais que des startups et des solutions extrêmement significatives ont commencé à apparaître en 2014. Il a fallu deux ans pour comprendre que les neurones fonctionnent toujours, pour créer des cadres pratiques pouvant être installés et lancés dans un délai raisonnable, pour développer des méthodes permettant de stabiliser et d'accélérer le temps de convergence.

    Les réseaux convolutifs ont permis de résoudre des problèmes de vision par ordinateur : classification d'images et d'objets dans l'image, détection d'objets, reconnaissance d'objets et de personnes, amélioration d'image, etc., etc.

  3. 2015-2017. L'essor des algorithmes et des projets basés sur les réseaux récurrents ou leurs analogues (LSTM, GRU, TransformerNet, etc.). Des algorithmes de synthèse vocale et des systèmes de traduction automatique performants sont apparus. Ils reposent en partie sur des réseaux convolutifs pour extraire des fonctionnalités de base. En partie parce que nous avons appris à collecter des ensembles de données très volumineux et de qualité.

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

« La bulle a-t-elle éclaté ? Le battage médiatique est-il surchauffé ? Sont-ils morts en tant que blockchain ?
Sinon! Demain, Siri cessera de fonctionner sur votre téléphone, et après-demain, Tesla ne fera plus la différence entre un virage et un kangourou.

Les réseaux de neurones fonctionnent déjà. Ils sont présents dans des dizaines d'appareils. Ils permettent vraiment de gagner de l’argent, de changer le marché et le monde qui vous entoure. Le battage médiatique est un peu différent :

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

C’est juste que les réseaux de neurones ne sont plus quelque chose de nouveau. Oui, beaucoup de gens ont des attentes élevées. Mais un grand nombre d’entreprises ont appris à utiliser les neurones et à fabriquer des produits basés sur ceux-ci. Les neurones apportent de nouvelles fonctionnalités, permettent de supprimer des emplois et de réduire le prix des services :

  • Les entreprises manufacturières intègrent des algorithmes pour analyser les défauts sur la chaîne de production.
  • Les fermes d'élevage achètent des systèmes pour contrôler les vaches.
  • Moissonneuses-batteuses automatiques.
  • Centres d'appels automatisés.
  • Filtres dans SnapChat. (enfin, au moins quelque chose d'utile !)

Mais l’essentiel, et pas le plus évident : « Il n’y a plus d’idées nouvelles, ou elles n’apporteront pas de capital instantané ». Les réseaux de neurones ont résolu des dizaines de problèmes. Et ils décideront encore plus. Toutes les idées évidentes qui existaient ont donné naissance à de nombreuses startups. Mais tout ce qui se trouvait à la surface avait déjà été collecté. Au cours des deux dernières années, je n'ai découvert aucune nouvelle idée concernant l'utilisation des réseaux de neurones. Pas une seule nouvelle approche (enfin, ok, il y a quelques problèmes avec les GAN).

Et chaque démarrage ultérieur est de plus en plus complexe. Il n’est plus nécessaire que deux gars entraînent un neurone à l’aide de données ouvertes. Cela nécessite des programmeurs, un serveur, une équipe de marqueurs, un support complexe, etc.

Résultat : il y a moins de startups. Mais il y a plus de production. Besoin d'ajouter la reconnaissance de plaque d'immatriculation ? Il existe sur le marché des centaines de spécialistes possédant une expérience pertinente. Vous pouvez embaucher quelqu'un et dans quelques mois, votre employé fabriquera le système. Ou achetez du tout fait. Mais créer une nouvelle startup ?.. Fou !

Vous devez créer un système de suivi des visiteurs - pourquoi payer pour un tas de licences alors que vous pouvez créer le vôtre en 3-4 mois, l'affiner pour votre entreprise.

Aujourd’hui, les réseaux de neurones suivent le même chemin que des dizaines d’autres technologies.

Vous souvenez-vous de l’évolution du concept de « développeur de sites Web » depuis 1995 ? Le marché n'est pas encore saturé de spécialistes. Il y a très peu de professionnels. Mais je peux parier que dans 5 à 10 ans, il n'y aura plus beaucoup de différence entre un programmeur Java et un développeur de réseaux neuronaux. Il y aura suffisamment de ces deux spécialistes sur le marché.

Il y aura simplement une classe de problèmes qui pourront être résolus par les neurones. Une tâche s'est présentée : embauchez un spécialiste.

"Et après? Où est l’intelligence artificielle promise ?

Mais il y a ici un petit malentendu intéressant :)

Apparemment, la pile technologique qui existe aujourd’hui ne nous mènera pas à l’intelligence artificielle. Les idées et leur nouveauté se sont largement épuisées. Parlons de ce qui maintient le niveau de développement actuel.

Restrictions

Commençons par les voitures autonomes. Il semble clair qu’il est possible de fabriquer des voitures entièrement autonomes avec la technologie actuelle. Mais on ne sait pas exactement dans combien d’années cela se produira. Tesla pense que cela se produira dans quelques années -


Il y en a bien d'autres experts, qui l'estiment à 5-10 ans.

Très probablement, à mon avis, dans 15 ans, l'infrastructure des villes elle-même changera de telle manière que l'émergence de voitures autonomes deviendra inévitable et en deviendra une continuation. Mais cela ne peut pas être considéré comme de l’intelligence. La Tesla moderne est un pipeline très complexe pour le filtrage, la recherche et le recyclage des données. Ce sont des règles-règles-règles, une collecte de données et des filtres sur celles-ci (ici ici J'ai écrit un peu plus à ce sujet, ou je regarde depuis cette Des marques).

Premier problème

Et c'est là que nous voyons premier problème fondamental. Big Data. C’est exactement ce qui a donné naissance à la vague actuelle de réseaux de neurones et d’apprentissage automatique. De nos jours, pour faire quelque chose de complexe et automatique, il faut beaucoup de données. Pas seulement beaucoup, mais beaucoup, beaucoup. Nous avons besoin d’algorithmes automatisés pour leur collecte, leur marquage et leur utilisation. Nous voulons que la voiture voie les camions face au soleil - nous devons d'abord en collecter un nombre suffisant. Nous voulons que la voiture ne devienne pas folle avec un vélo boulonné au coffre - plus d'échantillons.

De plus, un exemple ne suffit pas. Des centaines ? Milliers?

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Deuxième problème

Deuxième problème — visualisation de ce que notre réseau de neurones a compris. Il s'agit d'une tâche très non triviale. Jusqu’à présent, peu de gens comprennent comment visualiser cela. Ces articles sont très récents, ce ne sont que quelques exemples, même lointains :
Visualisation obsession des textures. Cela montre bien ce sur quoi le neurone a tendance à se fixer + ce qu'il perçoit comme information de départ.

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?
Visualisation Attention à traductions. En fait, l’attraction peut souvent être utilisée précisément pour montrer ce qui a provoqué une telle réaction du réseau. J'ai vu de telles choses pour le débogage et les solutions produit. Il existe de nombreux articles sur ce sujet. Mais plus les données sont complexes, plus il est difficile de comprendre comment obtenir une visualisation robuste.

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Eh bien, oui, le bon vieux jeu de « regardez ce qu'il y a à l'intérieur du maillage dans filtres" Ces images étaient populaires il y a 3 ou 4 ans, mais tout le monde s’est vite rendu compte que les images étaient belles, mais qu’elles n’avaient pas beaucoup de sens.

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Je n'ai pas mentionné des dizaines d'autres gadgets, méthodes, hacks, recherches sur la façon d'afficher l'intérieur du réseau. Ces outils fonctionnent-ils ? Vous aident-ils à comprendre rapidement quel est le problème et à déboguer le réseau ? Obtenez le dernier pourcentage ? Eh bien, c'est à peu près la même chose :

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Vous pouvez regarder n’importe quelle compétition sur Kaggle. Et une description de la façon dont les gens prennent les décisions finales. Nous avons empilé 100-500-800 unités de modèles et ça a fonctionné !

J'exagère, bien sûr. Mais ces approches n’apportent pas de réponses rapides et directes.

Ayant suffisamment d'expérience, après avoir examiné différentes options, vous pouvez donner un verdict sur les raisons pour lesquelles votre système a pris une telle décision. Mais il sera difficile de corriger le comportement du système. Installez une béquille, déplacez le seuil, ajoutez un ensemble de données, prenez un autre réseau backend.

Troisième problème

Troisième problème fondamental — les grilles enseignent les statistiques, pas la logique. Statistiquement, ceci face:

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Logiquement, ce n’est pas très similaire. Les réseaux de neurones n’apprennent rien de complexe à moins d’y être forcés. Ils enseignent toujours les signes les plus simples possibles. Avez-vous des yeux, un nez, une tête ? Voilà donc le visage ! Ou donnez un exemple où les yeux ne signifient pas un visage. Et encore une fois - des millions d'exemples.

Il y a beaucoup de place en bas

Je dirais que ce sont ces trois problèmes globaux qui limitent actuellement le développement des réseaux de neurones et du machine learning. Et là où ces problèmes ne l’ont pas limité, il est déjà activement utilisé.

C'est la fin? Les réseaux de neurones sont-ils opérationnels ?

Inconnu. Mais bien sûr, tout le monde ne l’espère pas.

Il existe de nombreuses approches et directions pour résoudre les problèmes fondamentaux que j'ai soulignés ci-dessus. Mais jusqu’à présent, aucune de ces approches n’a permis de faire quelque chose de fondamentalement nouveau, de résoudre ce qui n’a pas encore été résolu. Jusqu'à présent, tous les projets fondamentaux sont réalisés sur la base d'approches stables (Tesla) ou restent des projets tests d'instituts ou d'entreprises (Google Brain, OpenAI).

En gros, l’objectif principal est de créer une représentation de haut niveau des données d’entrée. En un sens, « mémoire ». L'exemple le plus simple de mémoire est celui des diverses représentations d'images « Embedding ». Eh bien, par exemple, tous les systèmes de reconnaissance faciale. Le réseau apprend à obtenir d'un visage une représentation stable qui ne dépend pas de la rotation, de l'éclairage ou de la résolution. Essentiellement, le réseau minimise la métrique « différents visages sont éloignés » et « les visages identiques sont proches ».

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Pour une telle formation, des dizaines et des centaines de milliers d'exemples sont nécessaires. Mais le résultat porte quelques rudiments du « One-shot Learning ». Désormais, nous n’avons plus besoin de centaines de visages pour nous souvenir d’une personne. Juste un visage et c'est tout ce que nous sommes découvrons-le!
Il y a juste un problème... La grille ne peut apprendre que des objets assez simples. Lorsqu'on essaie de distinguer non pas des visages, mais, par exemple, « des personnes par des vêtements » (tâche Ré-identification) - la qualité chute de plusieurs ordres de grandeur. Et le réseau ne peut plus apprendre des changements d’angles assez évidents.

Et apprendre de millions d’exemples est aussi plutôt amusant.

Des travaux sont en cours pour réduire considérablement les élections. Par exemple, on peut immédiatement rappeler l'un des premiers travaux sur Apprentissage OneShot de google:

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Il existe de nombreuses œuvres de ce type, par exemple 1 ou 2 ou 3.

Il y a un inconvénient : généralement, la formation fonctionne bien sur quelques exemples simples « MNIST ». Et lorsque vous passez à des tâches complexes, vous avez besoin d'une grande base de données, d'un modèle d'objets ou d'une sorte de magie.
De manière générale, travailler sur la formation One-Shot est un sujet très intéressant. Vous trouvez beaucoup d'idées. Mais pour la plupart, les deux problèmes que j'ai listés (pré-entraînement sur un énorme jeu de données / instabilité sur des données complexes) interfèrent grandement avec l'apprentissage.

D’autre part, les GAN – réseaux contradictoires génératifs – abordent le thème de l’intégration. Vous avez probablement lu de nombreux articles sur Habré sur ce sujet. (1, 2,3)
Une caractéristique du GAN est la formation d'un espace d'état interne (essentiellement le même intégration), qui vous permet de dessiner une image. Ça peut être visages, peut être actes.

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Le problème du GAN est que plus l’objet généré est complexe, plus il est difficile de le décrire dans une logique « générateur-discriminateur ». En conséquence, les seules applications réelles du GAN dont on entend parler sont DeepFake, qui, encore une fois, manipule les représentations faciales (pour lesquelles il existe une base énorme).

J'ai vu très peu d'autres utilisations utiles. Il s'agit généralement d'une sorte de supercherie impliquant la finition de dessins d'images.

Et encore. Personne n’a la moindre idée de la façon dont cela nous permettra d’avancer vers un avenir meilleur. Représenter la logique/l'espace dans un réseau de neurones est une bonne chose. Mais nous avons besoin d’un grand nombre d’exemples, nous ne comprenons pas comment le neurone représente cela en lui-même, nous ne comprenons pas comment faire en sorte que le neurone se souvienne d’une idée vraiment complexe.

Apprentissage par renforcement - c'est une approche venant d'une direction complètement différente. Vous vous souvenez sûrement de la façon dont Google a battu tout le monde au Go. Victoires récentes à Starcraft et Dota. Mais ici, tout est loin d’être aussi rose et prometteur. Il parle mieux de RL et de ses complexités Cet article.

Pour résumer brièvement ce que l'auteur a écrit :

  • Les modèles prêts à l'emploi ne s'adaptent pas/fonctionnent mal dans la plupart des cas
  • Les problèmes pratiques sont plus faciles à résoudre par d’autres moyens. Boston Dynamics n'utilise pas RL en raison de sa complexité/imprévisibilité/complexité informatique
  • Pour que RL fonctionne, vous avez besoin d’une fonction complexe. Il est souvent difficile de créer/écrire
  • Difficile de former des modèles. Il faut passer beaucoup de temps pour faire le plein et sortir des optima locaux
  • De ce fait, il est difficile de répéter le modèle, le modèle est instable au moindre changement
  • Surajuste souvent certains modèles aléatoires, même un générateur de nombres aléatoires

Le point clé est que RL ne fonctionne pas encore en production. Google a quelques expériences ( 1, 2 ). Mais je n'ai pas vu un seul système de produits.

Mémoire. L’inconvénient de tout ce qui est décrit ci-dessus est le manque de structure. Une des approches pour tenter de mettre de l’ordre dans tout cela est de fournir au réseau neuronal un accès à une mémoire séparée. Pour qu'elle puisse y enregistrer et réécrire le résultat de ses démarches. Le réseau neuronal peut alors être déterminé par l’état actuel de la mémoire. Ceci est très similaire aux processeurs et ordinateurs classiques.

Le plus célèbre et le plus populaire article - de DeepMind :

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Il semble que ce soit la clé pour comprendre l’intelligence ? Mais probablement pas. Le système nécessite encore une énorme quantité de données pour la formation. Et cela fonctionne principalement avec des données tabulaires structurées. De plus, lorsque Facebook décidé un problème similaire, puis ils ont choisi le chemin « vissez la mémoire, compliquez simplement le neurone et ayez plus d'exemples - et il apprendra tout seul ».

Démêlage. Une autre façon de créer une mémoire significative est de prendre les mêmes intégrations, mais pendant la formation, d'introduire des critères supplémentaires qui vous permettraient d'y mettre en évidence des « significations ». Par exemple, nous souhaitons entraîner un réseau de neurones pour distinguer les comportements humains dans un magasin. Si nous suivions le chemin standard, nous devrions créer une douzaine de réseaux. L'un cherche une personne, le second détermine ce qu'il fait, le troisième est son âge, le quatrième est son sexe. Une logique distincte examine la partie du magasin où elle est/est formée pour ce faire. Le troisième détermine sa trajectoire, etc.

Ou bien, s’il existait une quantité infinie de données, il serait alors possible de former un seul réseau pour tous les résultats possibles (une telle gamme de données ne peut évidemment pas être collectée).

L'approche de démêlage nous dit : formons le réseau pour qu'il puisse lui-même distinguer les concepts. De manière à former un encastrement basé sur la vidéo, où une zone déterminerait l’action, une autre déterminerait la position sur le sol dans le temps, une autre déterminerait la taille de la personne et une autre déterminerait son sexe. En même temps, lors de la formation, j'aimerais quasiment ne pas proposer au réseau de tels concepts clés, mais plutôt qu'il mette en évidence et regrouper des domaines. Il existe de nombreux articles de ce type (certains d'entre eux 1, 2, 3) et en général ils sont assez théoriques.

Mais cette orientation, du moins en théorie, devrait couvrir les problèmes évoqués au début.

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Décomposition de l'image selon les paramètres « couleur du mur/couleur du sol/forme de l'objet/couleur de l'objet/etc.»

La bulle du machine learning a-t-elle éclaté ou est-ce le début d’une nouvelle aube ?

Décomposition d'un visage selon les paramètres « taille, sourcils, orientation, couleur de peau, etc. »

autre

Il existe de nombreux autres domaines, pas si globaux, qui permettent de réduire d'une manière ou d'une autre la base de données, de travailler avec des données plus hétérogènes, etc.

Attention. Cela n’a probablement pas de sens de séparer cela en tant que méthode distincte. Juste une approche qui valorise les autres. De nombreux articles lui sont consacrés (1,2,3). Le point d’attention est d’améliorer la réponse du réseau spécifiquement aux objets significatifs pendant la formation. Souvent par une sorte de désignation de cible externe ou par un petit réseau externe.

Simulation 3D. Si vous créez un bon moteur 3D, vous pouvez souvent couvrir 90 % des données d'entraînement avec (j'ai même vu un exemple où près de 99 % des données étaient couvertes par un bon moteur). Il existe de nombreuses idées et astuces pour faire fonctionner un réseau formé sur un moteur 3D à partir de données réelles (réglage fin, transfert de style, etc.). Mais souvent, créer un bon moteur est plusieurs fois plus difficile que de collecter des données. Exemples de fabrication de moteurs :
Formation de robots (google, jardin d'idées)
formation reconnaissance marchandises dans le magasin (mais dans les deux projets que nous avons réalisés, nous pourrions facilement nous en passer).
Formation chez Tesla (encore une fois, la vidéo ci-dessus).

résultats

L’article dans son ensemble n’est, en un sens, que des conclusions. Le principal message que je voulais faire passer était probablement « les cadeaux sont terminés, les neurones ne fournissent plus de solutions simples ». Nous devons maintenant travailler dur pour prendre des décisions complexes. Ou travaillez dur en effectuant des recherches scientifiques complexes.

En général, le sujet est discutable. Peut-être que les lecteurs ont des exemples plus intéressants ?

Source: habr.com

Ajouter un commentaire