Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

For nylig udgivet artiklen, som viser en god tendens inden for maskinlæring de seneste år. Kort sagt: Antallet af maskinlæringsstartups er faldet i de sidste to år.

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?
Godt. Lad os se på "om boblen er sprængt", "hvordan man fortsætter med at leve" og tale om, hvor denne krumspring kommer fra i første omgang.

Lad os først tale om, hvad der var boosteren af ​​denne kurve. Hvor kom hun fra? De vil sikkert huske alt sejr maskinlæring i 2012 ved ImageNet-konkurrencen. Dette er trods alt den første globale begivenhed! Men i virkeligheden er dette ikke tilfældet. Og væksten af ​​kurven begynder lidt tidligere. Jeg vil dele det op i flere punkter.

  1. I 2008 opstod begrebet "big data". Rigtige produkter startede vises siden 2010. Big data er direkte relateret til maskinlæring. Uden big data er den stabile drift af de algoritmer, der eksisterede på det tidspunkt, umulig. Og det er ikke neurale netværk. Indtil 2012 var neurale netværk forbeholdt en marginal minoritet. Men så begyndte helt andre algoritmer at fungere, som havde eksisteret i årevis eller endda årtier: svm(1963,1993), Tilfældig Skov (1995) AdaBoost (2003),... Disse års startups er primært forbundet med automatisk behandling af strukturerede data: kasseapparater, brugere, annoncering, meget mere.

    En afledt af denne første bølge er et sæt rammer som XGBoost, CatBoost, LightGBM osv.

  2. I 2011-2012 konvolutionelle neurale netværk vundet en række konkurrencer om billedgenkendelse. Deres faktiske brug blev noget forsinket. Jeg vil sige, at massivt meningsfulde startups og løsninger begyndte at dukke op i 2014. Det tog to år at fordøje, at neuroner stadig fungerer, at skabe praktiske rammer, der kunne installeres og lanceres inden for rimelig tid, for at udvikle metoder, der ville stabilisere og fremskynde konvergenstiden.

    Konvolutionelle netværk gjorde det muligt at løse computersynsproblemer: klassificering af billeder og objekter i billedet, genkendelse af objekter, genkendelse af objekter og personer, billedforbedring osv. osv.

  3. 2015-2017. Boomet af algoritmer og projekter baseret på tilbagevendende netværk eller deres analoger (LSTM, GRU, TransformerNet, etc.). Velfungerende tale-til-tekst-algoritmer og maskinoversættelsessystemer er dukket op. De er delvist baseret på foldningsnetværk for at udtrække grundlæggende funktioner. Dels på grund af, at vi lærte at samle rigtig store og gode datasæt.

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

"Er boblen sprængt? Er hypen overophedet? Døde de som en blockchain?”
Ellers! I morgen stopper Siri med at arbejde på din telefon, og i overmorgen vil Tesla ikke kende forskel på en tur og en kænguru.

Neurale netværk fungerer allerede. De er i snesevis af enheder. De giver dig virkelig mulighed for at tjene penge, ændre markedet og verden omkring dig. Hypen ser lidt anderledes ud:

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Det er bare, at neurale netværk ikke længere er noget nyt. Ja, mange mennesker har høje forventninger. Men en lang række virksomheder har lært at bruge neuroner og lave produkter baseret på dem. Neuroner giver ny funktionalitet, giver dig mulighed for at skære i job og reducere prisen på tjenester:

  • Produktionsvirksomheder integrerer algoritmer til at analysere produktionslinjefejl.
  • Husdyrbrug køber systemer til at kontrollere køer.
  • Automatiske mejetærskere.
  • Automatiserede callcentre.
  • Filtre i SnapChat. (godt, i det mindste noget nyttigt!)

Men det vigtigste, og ikke det mest indlysende: "Der er ikke flere nye ideer, eller de vil ikke bringe øjeblikkelig kapital." Neurale netværk har løst snesevis af problemer. Og de vil bestemme endnu mere. Alle de åbenlyse ideer, der fandtes, gav anledning til mange startups. Men alt, hvad der var på overfladen, var allerede blevet samlet. I løbet af de sidste to år er jeg ikke stødt på en eneste ny idé til brugen af ​​neurale netværk. Ikke en eneste ny tilgang (nå, ok, der er et par problemer med GAN'er).

Og hver efterfølgende opstart er mere og mere kompleks. Det kræver ikke længere to fyre, der træner en neuron ved hjælp af åbne data. Det kræver programmører, en server, et team af markører, kompleks support osv.

Som følge heraf er der færre startups. Men der er mere produktion. Har du brug for at tilføje nummerpladegenkendelse? Der er hundredvis af specialister med relevant erfaring på markedet. Du kan ansætte nogen, og om et par måneder vil din medarbejder lave systemet. Eller køb færdiglavet. Men laver en ny start?.. Vanvittig!

Du skal oprette et besøgssporingssystem - hvorfor betale for en masse licenser, når du kan lave dine egne på 3-4 måneder, skær det for din virksomhed.

Nu gennemgår neurale netværk den samme vej, som snesevis af andre teknologier har gennemgået.

Kan du huske, hvordan begrebet "websiteudvikler" har ændret sig siden 1995? Markedet er endnu ikke mættet med specialister. Der er meget få fagfolk. Men jeg kan vædde på, at der om 5-10 år ikke vil være meget forskel på en Java-programmør og en neural netværksudvikler. Der vil være nok af begge specialister på markedet.

Der vil simpelthen være en klasse af problemer, der kan løses af neuroner. Der er opstået en opgave - ansæt en specialist.

"Hvad er det næste? Hvor er den lovede kunstige intelligens?”

Men her er der en lille, men interessant misforståelse :)

Den teknologistabel, der eksisterer i dag, vil tilsyneladende ikke føre os til kunstig intelligens. Idéer og deres nyhed har stort set udtømt sig selv. Lad os tale om, hvad der holder det nuværende udviklingsniveau.

Begrænsninger

Lad os starte med selvkørende biler. Det synes klart, at det er muligt at lave helt autonome biler med nutidens teknologi. Men om hvor mange år det vil ske, er ikke klart. Tesla tror, ​​at dette vil ske om et par år -


Der er mange andre specialister, der vurderer, at det er 5-10 år.

Mest sandsynligt, efter min mening, vil byernes infrastruktur om 15 år i sig selv ændre sig på en sådan måde, at fremkomsten af ​​autonome biler bliver uundgåelig og bliver dens fortsættelse. Men dette kan ikke betragtes som intelligens. Moderne Tesla er en meget kompleks pipeline til datafiltrering, søgning og genoptræning. Disse er regler-regler-regler, dataindsamling og filtre over dem (her her Jeg skrev lidt mere om dette, eller se fra dette mærker).

Første problem

Og det er her, vi ser første grundlæggende problem. Big data. Det er præcis det, der fødte den nuværende bølge af neurale netværk og maskinlæring. I dag, for at gøre noget komplekst og automatisk, har du brug for en masse data. Ikke bare meget, men meget, meget. Vi har brug for automatiserede algoritmer til deres indsamling, mærkning og brug. Vi ønsker at få bilen til at se lastbilerne mod solen - vi skal først samle et tilstrækkeligt antal af dem. Vi vil gerne have, at bilen ikke går amok med en cykel boltet til bagagerummet - flere prøver.

Desuden er ét eksempel ikke nok. Hundredvis? Tusinder?

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Andet problem

Andet problem — visualisering af, hvad vores neurale netværk har forstået. Dette er en meget ikke-triviel opgave. Indtil nu er det få mennesker, der forstår, hvordan man visualiserer dette. Disse artikler er meget nye, disse er blot nogle få eksempler, selvom de er fjerne:
Visualisering besættelse af teksturer. Det viser godt, hvad neuronet har en tendens til at fiksere på + hvad det opfatter som startinformation.

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?
Visualisering Opmærksomhed kl oversættelser. Faktisk kan tiltrækning ofte bruges til netop at vise, hvad der forårsagede en sådan netværksreaktion. Jeg har set sådanne ting til både debugging og produktløsninger. Der er mange artikler om dette emne. Men jo mere komplekse data er, jo sværere er det at forstå, hvordan man opnår robust visualisering.

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Nå, ja, det gode gamle sæt med "se hvad der er inde i nettet filtre" Disse billeder var populære for 3-4 år siden, men alle indså hurtigt, at billederne var smukke, men de havde ikke den store betydning.

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Jeg nævnte ikke snesevis af andre gadgets, metoder, hacks, forskning i, hvordan man viser indersiden af ​​netværket. Virker disse værktøjer? Hjælper de dig med hurtigt at forstå, hvad problemet er og fejlfinde netværket?.. Få den sidste procent? Nå, det er omtrent det samme:

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Du kan se enhver konkurrence på Kaggle. Og en beskrivelse af, hvordan folk træffer endelige beslutninger. Vi stablede 100-500-800 enheder af modeller, og det virkede!

Jeg overdriver selvfølgelig. Men disse tilgange giver ikke hurtige og direkte svar.

Når du har erfaring nok, har kikket rundt i forskellige muligheder, kan du give en dom om, hvorfor dit system har truffet en sådan beslutning. Men det vil være svært at rette op på systemets adfærd. Installer en krykke, flyt tærsklen, tilføj et datasæt, tag et andet backend-netværk.

Tredje problem

Tredje grundlæggende problem — gitter lærer statistik, ikke logik. Statistisk set dette ansigt:

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Logisk set er det ikke meget ens. Neurale netværk lærer ikke noget komplekst, medmindre de er tvunget til det. De lærer altid de enklest mulige tegn. Har du øjne, en næse, et hoved? Så dette er ansigtet! Eller giv et eksempel, hvor øjne ikke betyder et ansigt. Og igen - millioner af eksempler.

Der er masser af plads i bunden

Jeg vil sige, at det er disse tre globale problemer, der i øjeblikket begrænser udviklingen af ​​neurale netværk og maskinlæring. Og hvor disse problemer ikke begrænsede det, er det allerede aktivt brugt.

Dette er enden? Er neurale netværk oppe?

Ukendt. Men det håber alle selvfølgelig ikke.

Der er mange tilgange og retninger til at løse de grundlæggende problemer, som jeg fremhævede ovenfor. Men indtil videre har ingen af ​​disse tilgange gjort det muligt at gøre noget grundlæggende nyt, at løse noget, der endnu ikke er løst. Indtil videre bliver alle grundlæggende projekter udført på grundlag af stabile tilgange (Tesla), eller forbliver testprojekter af institutter eller virksomheder (Google Brain, OpenAI).

Groft sagt er hovedretningen at skabe en eller anden repræsentation på højt niveau af inputdataene. På en måde "hukommelse". Det enkleste eksempel på hukommelse er forskellige "Indlejring" - billedrepræsentationer. Nå, for eksempel, alle ansigtsgenkendelsessystemer. Netværket lærer at opnå en stabil repræsentation fra et ansigt, der ikke afhænger af rotation, belysning eller opløsning. Grundlæggende minimerer netværket metrikken "forskellige ansigter er langt" og "identiske ansigter er tæt på."

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Til en sådan træning er der brug for titusinder og hundredtusindvis af eksempler. Men resultatet bærer nogle af grundprincipperne ved "One-shot Learning". Nu behøver vi ikke hundredvis af ansigter for at huske en person. Kun ét ansigt, og det er alt, hvad vi er Lad os finde ud af det!
Der er kun et problem... Gitteret kan kun lære ret simple objekter. Når man forsøger at skelne ikke ansigter, men for eksempel "mennesker efter tøj" (opgave Genidentifikation) - kvaliteten falder med mange størrelsesordener. Og netværket kan ikke længere lære ret åbenlyse ændringer i vinkler.

Og det er også sjovt at lære fra millioner af eksempler.

Der arbejdes på at reducere valgene markant. For eksempel kan man straks genkalde et af de første værker på OneShot Learning fra Google:

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Der findes mange sådanne værker f.eks 1 eller 2 eller 3.

Der er et minus - normalt fungerer træning godt på nogle simple "MNIST"-eksempler. Og når du går videre til komplekse opgaver, har du brug for en stor database, en model af objekter eller en form for magi.
Generelt er arbejde med One-Shot træning et meget interessant emne. Du finder mange ideer. Men for det meste forstyrrer de to problemer, som jeg nævnte (fortræning på et enormt datasæt / ustabilitet på komplekse data) i høj grad indlæringen.

På den anden side nærmer GAN'er - generative modstridende netværk - emnet Embedding. Du har sikkert læst en masse artikler om Habré om dette emne. (1, 2,3)
Et træk ved GAN er dannelsen af ​​et internt tilstandsrum (i det væsentlige den samme indlejring), som giver dig mulighed for at tegne et billede. Det kan være person, måske aktivitet.

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Problemet med GAN er, at jo mere komplekst det genererede objekt er, jo sværere er det at beskrive det i "generator-diskriminator"-logik. Som følge heraf er de eneste rigtige applikationer af GAN, man hører om, DeepFake, som igen manipulerer ansigtsrepræsentationer (som der er en enorm base for).

Jeg har set meget få andre nyttige anvendelser. Normalt en form for trick, der involverer færdiggørelse af tegninger af billeder.

Og igen. Ingen har nogen idé om, hvordan dette vil give os mulighed for at bevæge os ind i en lysere fremtid. At repræsentere logik/rum i et neuralt netværk er godt. Men vi har brug for et stort antal eksempler, vi forstår ikke, hvordan neuronen repræsenterer dette i sig selv, vi forstår ikke, hvordan man får neuronen til at huske en virkelig kompleks idé.

Forstærkning læring - det er en tilgang fra en helt anden retning. Du husker sikkert, hvordan Google slog alle i Go. Seneste sejre i Starcraft og Dota. Men her er alt langt fra så rosenrødt og lovende. Han taler bedst om RL og dens kompleksitet denne artikel.

For kort at opsummere hvad forfatteren skrev:

  • Modeller ud af æsken passer ikke/fungerer dårligt i de fleste tilfælde
  • Praktiske problemer er lettere at løse på andre måder. Boston Dynamics bruger ikke RL på grund af dets kompleksitet/uforudsigelighed/beregningsmæssige kompleksitet
  • For at RL skal fungere, har du brug for en kompleks funktion. Det er ofte svært at skabe/skrive
  • Svært at træne modeller. Du skal bruge meget tid på at pumpe op og komme ud af det lokale optima
  • Som følge heraf er det svært at gentage modellen, modellen er ustabil med de mindste ændringer
  • Overpasser ofte nogle tilfældige mønstre, endda en tilfældig talgenerator

Det centrale er, at RL endnu ikke fungerer i produktionen. Google har nogle eksperimenter ( 1, 2 ). Men jeg har ikke set et eneste produktsystem.

Hukommelse. Ulempen ved alt beskrevet ovenfor er mangel på struktur. En af tilgangene til at forsøge at rydde op i alt dette er at give det neurale netværk adgang til separat hukommelse. Så hun kan optage og omskrive resultaterne af sine trin der. Derefter kan det neurale netværk bestemmes af den aktuelle hukommelsestilstand. Dette minder meget om klassiske processorer og computere.

Den mest berømte og populære artiklen — fra DeepMind:

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Det ser ud til, at dette er nøglen til at forstå intelligens? Men sandsynligvis ikke. Systemet kræver stadig en enorm mængde data til træning. Og det fungerer hovedsageligt med strukturerede tabeldata. Desuden når Facebook besluttede et lignende problem, så tog de vejen "skruehukommelse, bare gør neuronen mere kompliceret, og få flere eksempler - og det vil lære af sig selv."

Afvikling. En anden måde at skabe en meningsfuld hukommelse på er at tage de samme indlejringer, men under træningen skal du introducere yderligere kriterier, der giver dig mulighed for at fremhæve "betydninger" i dem. For eksempel vil vi træne et neuralt netværk til at skelne mellem menneskelig adfærd i en butik. Hvis vi fulgte standardstien, skulle vi lave et dusin netværk. Den ene leder efter en person, den anden bestemmer, hvad han laver, den tredje er hans alder, den fjerde er hans køn. Separat logik ser på den del af butikken, hvor den gør/er uddannet til at gøre dette. Den tredje bestemmer dens bane osv.

Eller, hvis der var en uendelig mængde data, så ville det være muligt at træne ét netværk til alle mulige resultater (naturligvis kan en sådan række af data ikke indsamles).

Disentanglement-tilgangen fortæller os – lad os træne netværket, så det selv kan skelne mellem begreber. Så det ville danne en indlejring baseret på videoen, hvor ét område ville bestemme handlingen, man ville bestemme positionen på gulvet i tide, man ville bestemme personens højde, og man ville bestemme personens køn. Samtidig vil jeg, når jeg træner, næsten ikke tilskynde netværket med sådanne nøglebegreber, men derimod at fremhæve og gruppere områder. Der er en del sådanne artikler (nogle af dem 1, 2, 3) og generelt er de ret teoretiske.

Men denne retning bør, i det mindste teoretisk, dække de problemer, der er nævnt i begyndelsen.

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Billednedbrydning i henhold til parametrene "vægfarve/gulvfarve/objektform/objektfarve/etc."

Er maskinlæringsboblen sprunget, eller er det begyndelsen på en ny daggry?

Nedbrydning af et ansigt i henhold til parametrene "størrelse, øjenbryn, orientering, hudfarve osv."

Andre

Der er mange andre, ikke så globale, områder, som giver dig mulighed for på en eller anden måde at reducere databasen, arbejde med mere heterogene data osv.

Opmærksomhed. Det giver nok ikke mening at adskille dette som en separat metode. Bare en tilgang, der forbedrer andre. Mange artikler er dedikeret til ham (1,2,3). Pointen med Attention er at forbedre netværkets respons specifikt på væsentlige genstande under træning. Ofte ved en form for ekstern målbetegnelse, eller et lille eksternt netværk.

3D simulering. Hvis du laver en god 3D-motor, kan du ofte dække 90% af træningsdataene med den (jeg så endda et eksempel, hvor næsten 99% af dataene var dækket af en god motor). Der er mange ideer og hacks til, hvordan man får et netværk trænet på en 3D-motor til at fungere ved hjælp af rigtige data (finjustering, stiloverførsel osv.). Men ofte er det flere størrelsesordener sværere at lave en god motor end at indsamle data. Eksempler når motorer blev lavet:
Robottræning (Google, braindagen)
uddannelse anerkendelse varer i butikken (men i de to projekter vi lavede, kunne vi sagtens undvære det).
Træning hos Tesla (igen, videoen ovenfor).

Fund

Hele artiklen er på en måde konklusioner. Det vigtigste budskab, jeg ville fremsætte, var sandsynligvis "gratiserne er forbi, neuroner giver ikke længere simple løsninger." Nu skal vi arbejde hårdt for at træffe komplekse beslutninger. Eller arbejde hårdt med kompleks videnskabelig forskning.

Generelt kan emnet diskuteres. Måske har læserne flere interessante eksempler?

Kilde: www.habr.com

Tilføj en kommentar