Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Nylig utgitt artikkel, som viser en god trend innen maskinlæring de siste årene. Kort sagt: Antallet maskinlæringsoppstarter har falt de siste to årene.

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?
Vi vil. La oss se på "om boblen har sprukket", "hvordan fortsette å leve" og snakke om hvor denne krøllet kommer fra i utgangspunktet.

Først, la oss snakke om hva som var boosteren til denne kurven. Hvor kom hun fra? De vil nok huske alt seier maskinlæring i 2012 ved ImageNet-konkurransen. Tross alt er dette den første globale begivenheten! Men i virkeligheten er dette ikke tilfelle. Og veksten av kurven begynner litt tidligere. Jeg vil dele det opp i flere punkter.

  1. I 2008 kom begrepet «big data». Virkelige produkter startet vises siden 2010. Big data er direkte relatert til maskinlæring. Uten big data er stabil drift av algoritmene som eksisterte på den tiden umulig. Og dette er ikke nevrale nettverk. Fram til 2012 var nevrale nettverk forbeholdt en marginal minoritet. Men så begynte helt andre algoritmer å fungere, som hadde eksistert i årevis, eller til og med tiår: svm(1963,1993), Tilfeldig skog (1995) AdaBoost (2003),... Startups fra disse årene er først og fremst knyttet til automatisk behandling av strukturerte data: kasseapparater, brukere, reklame, mye mer.

    Et derivat av denne første bølgen er et sett med rammer som XGBoost, CatBoost, LightGBM, etc.

  2. I 2011-2012 konvolusjonelle nevrale nettverk vunnet en rekke bildegjenkjenningskonkurranser. Deres faktiske bruk ble noe forsinket. Jeg vil si at massivt meningsfulle oppstarter og løsninger begynte å dukke opp i 2014. Det tok to år å fordøye at nevroner fortsatt fungerer, å lage praktiske rammer som kunne installeres og lanseres på rimelig tid, for å utvikle metoder som ville stabilisere og fremskynde konvergenstiden.

    Konvolusjonelle nettverk gjorde det mulig å løse problemer med datasyn: klassifisering av bilder og objekter i bildet, gjenkjenning av objekter, gjenkjenning av objekter og mennesker, bildeforbedring, etc., etc.

  3. 2015-2017. Bommen av algoritmer og prosjekter basert på tilbakevendende nettverk eller deres analoger (LSTM, GRU, TransformerNet, etc.). Velfungerende tale-til-tekst-algoritmer og maskinoversettelsessystemer har dukket opp. De er delvis basert på konvolusjonelle nettverk for å trekke ut grunnleggende funksjoner. Delvis på grunn av at vi lærte å samle virkelig store og gode datasett.

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

«Har boblen sprukket? Er hypen overopphetet? Døde de som en blokkjede?»
Ellers! I morgen slutter Siri å jobbe på telefonen din, og i overmorgen vet ikke Tesla forskjellen mellom en sving og en kenguru.

Nevrale nettverk fungerer allerede. De er i dusinvis av enheter. De lar deg virkelig tjene penger, endre markedet og verden rundt deg. Hypen ser litt annerledes ut:

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Det er bare det at nevrale nettverk ikke lenger er noe nytt. Ja, mange har høye forventninger. Men et stort antall selskaper har lært å bruke nevroner og lage produkter basert på dem. Nevroner gir ny funksjonalitet, lar deg kutte jobber og redusere prisen på tjenester:

  • Produksjonsselskaper integrerer algoritmer for å analysere feil på produksjonslinjen.
  • Husdyrgårder kjøper systemer for å kontrollere kyr.
  • Automatiske skurtreskere.
  • Automatiserte Call Centers.
  • Filtre i SnapChat. (vel, i det minste noe nyttig!)

Men det viktigste, og ikke det mest åpenbare: "Det er ikke flere nye ideer, eller de vil ikke bringe øyeblikkelig kapital." Nevrale nettverk har løst dusinvis av problemer. Og de vil bestemme enda mer. Alle de åpenbare ideene som fantes ga opphav til mange startups. Men alt som var på overflaten var allerede samlet. I løpet av de siste to årene har jeg ikke kommet over en eneste ny idé for bruk av nevrale nettverk. Ikke en eneste ny tilnærming (vel, ok, det er noen problemer med GAN-er).

Og hver påfølgende oppstart blir mer og mer kompleks. Det krever ikke lenger to karer som trener en nevron ved hjelp av åpne data. Det krever programmerere, en server, et team med markører, kompleks støtte, etc.

Som et resultat er det færre oppstarter. Men det er mer produksjon. Trenger du å legge til skiltgjenkjenning? Det finnes hundrevis av spesialister med relevant erfaring på markedet. Du kan ansette noen og i løpet av et par måneder vil din ansatte lage systemet. Eller kjøp ferdig. Men gjør en ny oppstart?.. Galt!

Du må lage et besøkssporingssystem – hvorfor betale for en haug med lisenser når du kan lage din egen på 3-4 måneder, skjerpe det for virksomheten din.

Nå går nevrale nettverk gjennom den samme veien som dusinvis av andre teknologier har gått gjennom.

Husker du hvordan konseptet "nettstedsutvikler" har endret seg siden 1995? Markedet er ennå ikke mettet med spesialister. Det er svært få fagfolk. Men jeg kan satse på at om 5-10 år vil det ikke være stor forskjell mellom en Java-programmerer og en nevrale nettverksutvikler. Det vil være nok av begge spesialistene på markedet.

Det vil ganske enkelt være en klasse med problemer som kan løses av nevroner. En oppgave har dukket opp - ansett en spesialist.

"Hva blir det neste? Hvor er den lovede kunstige intelligensen?»

Men her er det en liten, men interessant misforståelse :)

Teknologistabelen som eksisterer i dag, vil tilsynelatende ikke føre oss til kunstig intelligens. Ideer og deres nyhet har stort sett uttømt seg selv. La oss snakke om hva som holder det nåværende utviklingsnivået.

Restriksjoner

La oss starte med selvkjørende biler. Det virker klart at det er mulig å lage helt autonome biler med dagens teknologi. Men om hvor mange år dette vil skje, er ikke klart. Tesla tror dette vil skje om et par år -


Det er mange andre spesialister, som anslår det til 5-10 år.

Mest sannsynlig, etter min mening, vil infrastrukturen til byer i seg selv endre seg på en slik måte om 15 år at fremveksten av autonome biler vil bli uunngåelig og vil bli dens fortsettelse. Men dette kan ikke betraktes som intelligens. Moderne Tesla er en svært kompleks pipeline for datafiltrering, søking og omskolering. Dette er regler-regler-regler, datainnsamling og filtre over dem (her her Jeg skrev litt mer om dette, eller se fra dette merker).

Det første problemet

Og det er her vi ser første grunnleggende problem. Stor Data. Det er nettopp dette som fødte den nåværende bølgen av nevrale nettverk og maskinlæring. I dag, for å gjøre noe komplekst og automatisk, trenger du mye data. Ikke bare mye, men veldig, veldig mye. Vi trenger automatiserte algoritmer for innsamling, merking og bruk. Vi ønsker å få bilen til å se lastebilene mot solen – vi må først samle et tilstrekkelig antall av dem. Vi vil at bilen ikke skal gå amok med en sykkel boltet til bagasjerommet – flere prøver.

Dessuten er ett eksempel ikke nok. Hundrevis? Tusenvis?

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Andre problem

Andre problem — visualisering av hva vårt nevrale nettverk har forstått. Dette er en veldig ikke-triviell oppgave. Til nå er det få som forstår hvordan man visualiserer dette. Disse artiklene er helt nye, dette er bare noen få eksempler, selv om de er fjerne:
Visualisering besettelse av teksturer. Den viser godt hva nevronet har en tendens til å fiksere seg på + hva det oppfatter som startinformasjon.

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?
Visualisering Oppmerksomhet kl oversettelser. Faktisk kan tiltrekning ofte brukes nettopp for å vise hva som forårsaket en slik nettverksreaksjon. Jeg har sett slike ting for både feilsøking og produktløsninger. Det er mange artikler om dette emnet. Men jo mer komplekse dataene er, desto vanskeligere er det å forstå hvordan man oppnår robust visualisering.

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Vel, ja, det gode gamle settet med "se hva som er inne i nettet i filtre" Disse bildene var populære for 3-4 år siden, men alle skjønte raskt at bildene var vakre, men de hadde ikke mye mening.

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Jeg nevnte ikke dusinvis av andre gadgets, metoder, hacks, forskning på hvordan du viser innsiden av nettverket. Fungerer disse verktøyene? Hjelper de deg raskt å forstå hva problemet er og feilsøke nettverket?.. Få den siste prosenten? Vel, det er omtrent det samme:

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Du kan se hvilken som helst konkurranse på Kaggle. Og en beskrivelse av hvordan folk tar endelige avgjørelser. Vi stablet 100-500-800 enheter med modeller og det fungerte!

Jeg overdriver, selvfølgelig. Men disse tilnærmingene gir ikke raske og direkte svar.

Med nok erfaring, etter å ha kikket rundt forskjellige alternativer, kan du gi en dom om hvorfor systemet ditt tok en slik avgjørelse. Men det vil være vanskelig å korrigere oppførselen til systemet. Installer en krykke, flytt terskelen, legg til et datasett, ta et annet backend-nettverk.

Tredje problem

Tredje grunnleggende problem — rutenett lærer statistikk, ikke logikk. Statistisk sett dette ansikt:

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Logisk sett er det ikke veldig likt. Nevrale nettverk lærer ikke noe komplekst med mindre de blir tvunget til det. De lærer alltid de enkleste tegnene som mulig. Har du øyne, nese, hode? Så dette er ansiktet! Eller gi et eksempel der øyne ikke betyr et ansikt. Og igjen - millioner av eksempler.

Det er god plass på bunnen

Jeg vil si at det er disse tre globale problemene som for tiden begrenser utviklingen av nevrale nettverk og maskinlæring. Og der disse problemene ikke begrenset det, er det allerede aktivt brukt.

Dette er slutten? Er nevrale nettverk oppe?

Ukjent. Men selvfølgelig håper alle ikke det.

Det er mange tilnærminger og veier for å løse de grunnleggende problemene som jeg fremhevet ovenfor. Men så langt har ingen av disse tilnærmingene gjort det mulig å gjøre noe fundamentalt nytt, å løse noe som ennå ikke er løst. Så langt blir alle grunnleggende prosjekter utført på grunnlag av stabile tilnærminger (Tesla), eller forblir testprosjekter fra institutter eller selskaper (Google Brain, OpenAI).

Grovt sett er hovedretningen å lage en viss representasjon på høyt nivå av inngangsdataene. På en måte "minne". Det enkleste eksemplet på minne er forskjellige "Innebygging" - bilderepresentasjoner. Vel, for eksempel alle ansiktsgjenkjenningssystemer. Nettverket lærer å få en stabil representasjon fra et ansikt som ikke er avhengig av rotasjon, belysning eller oppløsning. I hovedsak minimerer nettverket metrikken "forskjellige ansikter er langt" og "identiske ansikter er nære."

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

For slik opplæring trengs titalls og hundretusener av eksempler. Men resultatet bærer noen av rudimentene til "One-shot Learning". Nå trenger vi ikke hundrevis av ansikter for å huske en person. Bare ett ansikt og det er alt vi er la oss finne det ut!
Det er bare ett problem... Rutenettet kan bare lære ganske enkle objekter. Når du prøver å skille ikke ansikter, men for eksempel "mennesker etter klær" (oppgave Re-identifikasjon) - kvaliteten faller med mange størrelsesordener. Og nettverket kan ikke lenger lære ganske åpenbare endringer i vinkler.

Og å lære fra millioner av eksempler er også litt morsomt.

Det jobbes med å redusere valgene betraktelig. For eksempel kan man umiddelbart huske et av de første verkene på OneShot Learning fra Google:

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Det finnes mange slike verk, for eksempel 1 eller 2 eller 3.

Det er ett minus - vanligvis fungerer trening bra på noen enkle "MNIST"-eksempler. Og når du går videre til komplekse oppgaver, trenger du en stor database, en modell av objekter eller en slags magi.
Generelt er arbeid med One-Shot-trening et veldig interessant tema. Du finner mange ideer. Men for det meste forstyrrer de to problemene jeg listet opp (foropplæring på et stort datasett / ustabilitet på komplekse data) i stor grad med læring.

På den annen side nærmer GAN-er – generative motstandsnettverk – temaet innebygging. Du har sikkert lest en haug med artikler om Habré om dette emnet. (1, 2,3)
En funksjon ved GAN er dannelsen av et internt tilstandsrom (i hovedsak den samme innebyggingen), som lar deg tegne et bilde. Det kan bli person, kan være handlinger.

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Problemet med GAN er at jo mer komplekst det genererte objektet er, desto vanskeligere er det å beskrive det i "generator-diskriminator"-logikk. Som et resultat er de eneste virkelige anvendelsene av GAN som man hører om DeepFake, som igjen manipulerer ansiktsrepresentasjoner (som det er en enorm base for).

Jeg har sett veldig få andre nyttige bruksområder. Vanligvis en slags lureri som involverer etterbehandling av tegninger av bilder.

Og igjen. Ingen har noen anelse om hvordan dette vil tillate oss å gå inn i en lysere fremtid. Å representere logikk/rom i et nevralt nettverk er bra. Men vi trenger et stort antall eksempler, vi forstår ikke hvordan nevronet representerer dette i seg selv, vi forstår ikke hvordan vi kan få nevronet til å huske en veldig kompleks idé.

Forsterkningslæring – dette er en tilnærming fra en helt annen retning. Du husker sikkert hvordan Google slo alle i Go. Nylige seire i Starcraft og Dota. Men her er alt langt fra så rosenrødt og lovende. Han snakker best om RL og dens kompleksitet denne artikkelen.

For å kort oppsummere hva forfatteren skrev:

  • Modeller ut av esken passer ikke / fungerer dårlig i de fleste tilfeller
  • Praktiske problemer er lettere å løse på andre måter. Boston Dynamics bruker ikke RL på grunn av kompleksiteten/uforutsigbarheten/beregningskompleksiteten
  • For at RL skal fungere, trenger du en kompleks funksjon. Det er ofte vanskelig å lage/skrive
  • Vanskelig å trene modeller. Du må bruke mye tid på å pumpe opp og komme deg ut av lokal optima
  • Som et resultat er det vanskelig å gjenta modellen, modellen er ustabil med de minste endringer
  • Overpasser ofte noen slags venstreorienterte mønstre, opp til en tilfeldig tallgenerator

Det sentrale er at RL ennå ikke fungerer i produksjon. Google har noen eksperimenter ( 1, 2 ). Men jeg har ikke sett et eneste produktsystem.

Minne. Ulempen med alt beskrevet ovenfor er mangel på struktur. En av tilnærmingene for å prøve å rydde opp i alt dette er å gi det nevrale nettverket tilgang til separat minne. Slik at hun kan registrere og skrive om resultatene av trinnene hennes der. Deretter kan det nevrale nettverket bestemmes av den nåværende minnetilstanden. Dette ligner veldig på klassiske prosessorer og datamaskiner.

Den mest kjente og populære artikkel — fra DeepMind:

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Det ser ut til at dette er nøkkelen til å forstå intelligens? Men sannsynligvis ikke. Systemet krever fortsatt en enorm mengde data for trening. Og det fungerer hovedsakelig med strukturerte tabelldata. Dessuten når Facebook besluttet et lignende problem, så tok de veien "skru minne, bare gjør nevronet mer komplisert, og ha flere eksempler - og det vil lære av seg selv."

Utvikling. En annen måte å skape et meningsfylt minne på er å ta de samme innebyggingene, men under trening, introduser ytterligere kriterier som vil tillate deg å fremheve "betydninger" i dem. For eksempel ønsker vi å trene et nevralt nettverk for å skille mellom menneskelig atferd i en butikk. Hvis vi fulgte standardveien, måtte vi lage et dusin nettverk. Den ene leter etter en person, den andre bestemmer hva han gjør, den tredje er hans alder, den fjerde er hans kjønn. Separat logikk ser på den delen av butikken der den gjør/er opplært til å gjøre dette. Den tredje bestemmer banen, etc.

Eller, hvis det var en uendelig mengde data, ville det være mulig å trene ett nettverk for alle mulige utfall (selvfølgelig kan en slik rekke data ikke samles inn).

Disentanglement-tilnærmingen forteller oss – la oss trene nettverket slik at det selv kan skille mellom konsepter. Slik at det ville danne en innbygging basert på videoen, hvor ett område ville bestemme handlingen, man ville bestemme posisjonen på gulvet i tide, man ville bestemme personens høyde, og man ville bestemme personens kjønn. Samtidig vil jeg ved trening nesten ikke spørre nettverket om slike nøkkelbegreper, men heller at det skal fremheve og gruppere områder. Det er ganske mange slike artikler (noen av dem 1, 2, 3) og generelt er de ganske teoretiske.

Men denne retningen, i det minste teoretisk, bør dekke problemene som er oppført i begynnelsen.

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Bildedekomponering i henhold til parametrene "veggfarge/gulvfarge/objektform/objektfarge/etc."

Har maskinlæringsboblen sprukket, eller er det begynnelsen på en ny daggry?

Dekomponering av et ansikt i henhold til parametrene "størrelse, øyenbryn, orientering, hudfarge, etc."

Andre

Det er mange andre, ikke så globale, områder som lar deg på en eller annen måte redusere databasen, jobbe med mer heterogene data osv.

Oppmerksomhet. Det gir nok ikke mening å skille dette ut som en egen metode. Bare en tilnærming som forbedrer andre. Mange artikler er dedikert til ham (1,2,3). Poenget med oppmerksomhet er å forbedre nettverkets respons spesifikt på viktige objekter under trening. Ofte med en slags ekstern målbetegnelse, eller et lite eksternt nettverk.

3D-simulering. Hvis du lager en god 3D-motor, kan du ofte dekke 90 % av treningsdataene med den (jeg så til og med et eksempel hvor nesten 99 % av dataene ble dekket av en god motor). Det er mange ideer og hacks om hvordan du kan få et nettverk trent på en 3D-motor til å fungere ved å bruke ekte data (finjustering, stiloverføring, etc.). Men ofte er det flere størrelsesordener vanskeligere å lage en god motor enn å samle inn data. Eksempler når motorer ble laget:
Robottrening (google, braindagen)
trening Anerkjennelse varer i butikken (men i de to prosjektene vi gjorde kunne vi lett klare oss uten).
Trening hos Tesla (igjen, videoen over).

Funn

Hele artikkelen er på en måte konklusjoner. Sannsynligvis var hovedbudskapet jeg ønsket å komme med var "freebies er over, nevroner gir ikke lenger enkle løsninger." Nå må vi jobbe hardt for å ta komplekse beslutninger. Eller jobb hardt med kompleks vitenskapelig forskning.

Generelt er temaet diskutabelt. Kanskje leserne har flere interessante eksempler?

Kilde: www.habr.com

Legg til en kommentar