Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Nyligen slÀpptes artikeln, som visar trenden inom maskininlÀrning under de senaste Ären. Kort sagt: antalet startups inom maskininlÀrning har minskat kraftigt de senaste tvÄ Ären.

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?
NÄvÀl. LÄt oss ta reda pÄ om "bubblan sprack", "hur man lever vidare" och diskutera hur denna situation överhuvudtaget uppstod.

Först pratar vi om vad som var en drivkraft bakom denna kurva. Var kom den ifrÄn? Antagligen kommer alla ihÄg segern inom maskininlÀrning 2012 vid tÀvlingen ImageNet. Trots att detta var ett första globalt evenemang! Men i verkligheten var det inte sÄ. Och tillvÀxtkurvan börjar faktiskt nÄgot tidigare. Jag skulle dela upp den i flera punkter.

  1. Året 2008 var dĂ„ termen “stora data” dök upp. Riktiga produkter började det uppstĂ„ frĂ„n och med 2010. Stora data Ă€r direkt kopplade till maskininlĂ€rning. Utan stora data Ă€r det omöjligt att algoritmerna fungerar stabilt, som fanns vid den tidpunkten. Och det handlar inte om neurala nĂ€tverk. Fram till 2012 var neurala nĂ€tverk nĂ„got som bara en marginaliserad minoritet sysslade med. Men dĂ„ började helt andra algoritmer, som redan hade funnits i Ă„ratal, om inte decennier, att fungera: SVM(1963, 1993) Random Forest (1995), AdaBoost (2003),
 Startups frĂ„n dessa Ă„r handlade först och frĂ€mst om automatisk behandling av strukturerade data: kassor, anvĂ€ndare, reklam, mycket mer.

    En avledning av denna första vÄg Àr uppsÀttningar av ramverk, sÄsom XGBoost, CatBoost, LightGBM, etc.

  2. Under 2011-2012 konvolutionella neurala nÀtverk vann flera tÀvlingar inom bildigenkÀnning. Deras verkliga anvÀndning drog dock ut pÄ tiden. Jag skulle sÀga att massiva, genomtÀnkta startups och lösningar började dyka upp frÄn 2014. Det tog tvÄ Är att bearbeta att neurala nÀtverk faktiskt fungerar, att skapa anvÀndarvÀnliga ramverk som kunde installeras och köras pÄ rimlig tid samt att utveckla metoder för att stabilisera och snabba upp konvergensen.

    Konvolutionella nÀtverk tillÄter att lösa uppgifter inom maskinsyn: klassificering av bilder och objekt pÄ bilder, detektering av objekt, igenkÀnning av objekt och mÀnniskor, bildförbÀttring, med mera.

  3. 2015-2017. En boom av algoritmer och projekt kopplade till rekurrenta nÀtverk eller deras motsvarigheter (LSTM, GRU, TransformerNet etc.). Det dök upp effektiva algoritmer för "tal-till-text" och maskinöversÀttning. Delvis baseras de pÄ konvolutionsnÀtverk för att extrahera grundlÀggande funktioner. Delvis pÄ att vi har lÀrt oss att samla verkligt stora och bra datamÀngder.

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

"Har bubblan spruckit? Är hypen överhettad? Har de dött som blockchain?"
Det kan hÀnda! Imorgon slutar Siri att fungera pÄ din telefon, och dagen efter kan Tesla inte skilja en svÀng frÄn en kÀnguru.

Neurala nÀtverk Àr redan i bruk. De finns i tiotals enheter. De möjliggör faktiskt intÀktsgenerering, förÀndrar marknaden och omvÀrlden. Hypen ser lite annorlunda ut:

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Neurala nÀtverk har helt enkelt slutat vara nÄgot nytt. Ja, mÄnga mÀnniskor har en överdriven förvÀntan. Men ett stort antal företag har lÀrt sig att tillÀmpa neurala nÀtverk och skapa produkter baserade pÄ dem. Neurala nÀtverk ger ny funktionalitet, tillÄter att minska arbetskraft och sÀnka tjÀnstekostnader:

  • Tillverkningsföretag integrerar algoritmer för att analysera defekter pĂ„ produktionslinjen.
  • Lantbrukare köper system för att övervaka kor.
  • Automatiska skördemaskiner.
  • Automatiserade callcenter.
  • Filter i SnapChat. (nĂ„got konkret i alla fall!)

Men det viktigaste, och inte det mest uppenbara: "Det finns inga nya idéer lÀngre, eller de kommer inte att ge omedelbar avkastning". Neurala nÀtverk har löst tiotals problem. Och de kommer att lösa Ànnu fler. Alla uppenbara idéer som fanns har genererat mÄnga startups. Men allt som var uppenbart Àr redan samlat. Under de senaste tvÄ Ären har jag inte stött pÄ nÄgon ny idé för tillÀmpning av neurala nÀtverk. Ingen ny metod (nÄgorlunda, det finns lite krÄngel med GAN).

Och varje nÀsta startup blir allt svÄrare. Den krÀver inte lÀngre bara tvÄ killar som trÀnar ett neuralt nÀtverk med öppna data. Den krÀver programmerare, servrar, ett team av annotatörer, komplex support, och sÄ vidare.

Som resultat blir det fÀrre startups. Men produktionen ökar. Behöver du implementera registreringsskÀnnare? Det finns hundratals experter pÄ marknaden med relevant erfarenhet. Du kan anstÀlla och pÄ ett par mÄnader sÄ kan din anstÀllda utveckla systemet. Eller köpa ett fÀrdigt. Men att starta en ny startup?.. Det Àr galet!

Det Ă€r nödvĂ€ndigt att göra ett system för att spĂ„ra besökare — varför betala för en mĂ€ngd licenser nĂ€r man kan skapa sitt eget pĂ„ 3-4 mĂ„nader, skrĂ€ddarsytt för sin verksamhet.

Just nu genomgÄr neurala nÀtverk samma vÀg som mÄnga andra teknologier har gjort.

Kommer ni ihÄg hur begreppet "webbutvecklare" har förÀndrats sedan 1995? Marknaden hade inte Ànnu blivit mÀttad med specialister. Det finns mycket fÄ professionella. Men jag kan nÀstan garantera att om 5-10 Är kommer det inte vara nÄgon stor skillnad mellan en Java-programmerare och en utvecklare av neurala nÀtverk. BÄda typerna av specialister kommer att finnas i tillrÀckliga mÀngder pÄ marknaden.

Det kommer helt enkelt att finnas en typ av uppgifter som ska lösas av neurala nĂ€tverk. NĂ€r en uppgift uppstĂ„r — anstĂ€ller man en specialist.

"Och vad hÀnder sedan? Var Àr den utlovade artificiella intelligensen?"

Och hÀr finns det en liten, men intressant oklarhet :)

Den tekniska stack som finns idag, verkar inte leda oss till artificiell intelligens. IdĂ©erna, deras nyhet — har delvis uttömt sig. LĂ„t oss prata om vad som hĂ„ller den aktuella utvecklingsnivĂ„n tillbaka.

BegrÀnsningar

Vi börjar med sjĂ€lvkörande bilar. Det verkar som om det Ă€r tydligt att helt autonoma fordon kan skapas med dagens teknologi — men hur mĂ„nga Ă„r kommer det att ta innan det hĂ€nder — Ă€r oklart. Tesla anser att det kommer att ske om ett par Ă„r —

Spela video

Det finns mÄnga andra specialister, som uppskattar det till 5-10 Är.

Sannolikt, enligt min Äsikt, kommer stÀderna om cirka 15 Är att förÀndras sÄ mycket att företeelsen av autonoma fordon blir oundviklig, blir en fortsÀttning av infrastrukturen. Men det kan ju inte rÀknas som intelligens. Moderna Tesla Àr en mycket komplex konveyor av databehandling, datainsamling och omtrÀning. Det Àr regler-regler-regler, insamling av data och filter pÄ dem (hÀr ). Ett typiskt exempel pÄ anvÀndning: har jag skrivit mer om detta, eller titta med denna markeringen).

Det första problemet

Och just hĂ€r ser vi det första grundlĂ€ggande problemet. Stora data. Det Ă€r precis detta som har gett upphov till den nuvarande vĂ„gen av neurala nĂ€tverk och maskininlĂ€rning. Nu, för att göra nĂ„got komplext och automatiserat, behövs det mycket data. Inte bara mycket, utan extremt mycket. Automatiserade algoritmer för insamling, mĂ€rkning och anvĂ€ndning Ă€r nödvĂ€ndiga. Om vi vill att maskinen ska se lastbilar mot solen — mĂ„ste vi först samla tillrĂ€ckligt mĂ„nga exemplar. Om vi vill att maskinen inte ska bli förvirrad av en cykel som Ă€r fĂ€st vid bagageutrymmet — behövs Ă€nnu fler prover.

För ett exempel rÀcker det inte. Hundratals? Tusentals?

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Det andra problemet

Det andra problemet — visualiseringen av vad vĂ„rt neurala nĂ€tverk har förstĂ„tt. Det Ă€r en vĂ€ldigt oöverskĂ„dlig uppgift. ÄndĂ„ Ă€r det fĂ„ som riktigt förstĂ„r hur man visualiserar detta. Dessa artiklar Ă€r ganska aktuella, och hĂ€r Ă€r bara nĂ„gra exempel, om Ă€n avlĂ€gsna:
Visualisering koncentration pÄ texturer. Visar tydligt vad neurala nÀtverket tenderar att fokusera pÄ + vad det uppfattar som grundlÀggande information.

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?
Visualisering uppmÀrksamhet vid översÀttningar. Faktiskt kan uppmÀrksamhet ofta anvÀndas just för att visa vad som har orsakat nÀtverkets reaktion. Jag har stött pÄ sÄdana saker bÄde för debugging och för produktlösningar. Det finns mÄnga artiklar om detta Àmne. Men ju mer komplexa data blir, desto svÄrare blir det att förstÄ hur man uppnÄr en stabil visualisering.

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Och ja, den gamla hederliga samlingen av "titta pÄ vad som finns inne i nÀtverket i filtren". Dessa bilder var populÀra för 3-4 Är sedan, men alla insÄg snabbt att bilderna var vackra, men inte sÀrskilt meningsfulla.

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Jag har inte nÀmnt dussintals andra knep, metoder, hacks och studier om hur man visualiserar nÀtverkets inre arbete. Fungerar dessa verktyg? HjÀlper de en att snabbt förstÄ vad problemet Àr och debugga nÀtverket?.. FÄ ut de sista procenten? Ja, ungefÀr sÄ hÀr:

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Du kan titta pÄ vilken tÀvling som helst pÄ Kaggle. Och beskrivningen av hur mÀnniskor skapar sina slutliga lösningar. Vi staplade 100-500-800 miljoner modeller och det fungerade!

Jag överdriver naturligtvis. Men dessa metoder ger ingen snabb eller direkt lösning.

Med tillrÀcklig erfarenhet kan man, genom att pröva olika alternativ, Ästadkomma en bedömning av varför ditt system gjorde det valet. Men att Àndra systemets beteende blir svÄrt. Man kan sÀtta dit en lösning, justera tröskeln, lÀgga till en datasats, anvÀnda ett annat backend-nÀtverk.

Det tredje problemet

Det tredje grundlĂ€ggande problemet — nĂ€tverk lĂ€r sig inte logik, utan statistik. Statistiskt sett Ă€r detta ansikte:

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Logiskt sett ser det inte sĂ„ likt ut. Neurala nĂ€tverk lĂ€r sig inte nĂ„got komplext om de inte tvingas. De lĂ€r sig alltid maximalt enkla kĂ€nnetecken. Finns det ögon, nĂ€sa, huvud? DĂ„ Ă€r det ett ansikte! Annars ge ett exempel dĂ€r ögon inte skulle innebĂ€ra ansikte. Och igen — miljoner exempel.

Det finns gott om plats lÀngst ner

Jag skulle sÀga att det Àr just dessa tre globala problem som idag begrÀnsar utvecklingen av neurala nÀtverk och maskininlÀrning. Och dÀr dessa problem inte begrÀnsade, anvÀnds det redan aktivt.

Är det slutet? Har neurala nĂ€tverk stannat?

Det Àr oklart. Men sjÀlvklart hoppas alla att det inte Àr sÄ.

Det finns mÄnga metoder och riktningar för att lösa de grundlÀggande problem som jag nÀmnde ovan. Men hittills har ingen av dessa metoder lett till nÄgot fundamentalt nytt, löst nÄgot som Ànnu inte har lösts. Hittills görs alla grundlÀggande projekt pÄ grundval av stabila metoder (Tesla), eller förblir testprojekt hos institutioner eller företag (Google Brain, OpenAI).

Om man talar grovt, sĂ„ Ă€r det huvudsakliga riktningen — skapandet av en viss högre representation av ingĂ„ngsdata. PĂ„ nĂ„got sĂ€tt en 'minne'. Det enklaste exemplet pĂ„ minne Ă€r olika 'Embedding' — representationer av bilder. Till exempel, alla ansiktsigenkĂ€nningssystem. NĂ€tverket lĂ€r sig att fĂ„ en viss stabil representation av ett ansikte som inte pĂ„verkas av vridningar, belysning, upplösning. I grund och botten minimerar nĂ€tverket metrik 'olika ansikten — lĂ„ngt bort' och 'lika — nĂ€ra'.

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

För sĂ„dan inlĂ€rning behövs tiotusentals och hundratusentals exempel. Men resultatet bĂ€r vissa frön av 'One-shot Learning'. Nu behöver vi inte hundratals ansikten för att komma ihĂ„g en person. Bara ett ansikte, och allt — vi kĂ€nner igen!
Men hĂ€r finns ett problem... NĂ€tverket kan bara lĂ€ra sig tillrĂ€ckligt enkla objekt. Vid försök att sĂ€rskilja inte ansikten, utan till exempel 'personer efter klĂ€der' (uppgift Re-identification) — faller kvaliteten flera ordningar. Och nĂ€tverket kan redan inte lĂ€ra sig tillrĂ€ckligt uppenbara förĂ€ndringar av vinklar.

Och att lĂ€ra sig pĂ„ miljoner exempel — Ă€r ocksĂ„ lite av en underhĂ„llning.

Det finns arbeten om betydande minskningar av urval. Till exempel kan man omedelbart minnas ett av de första arbetena om OneShot Learning frÄn Google:

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Det finns mÄnga sÄdana arbeten, till exempel 1 eller 2 eller 3.

En nackdel Ă€r att trĂ€ning vanligtvis fungerar bra pĂ„ enklare exempel, sĂ„som ”MNIST”-exempel. Men nĂ€r man gĂ„r över till mer komplexa uppgifter behövs en stor databas, en modell av objekt eller nĂ„gon sorts magi.
Arbete med One-Shot inlÀrning Àr överlag en mycket intressant Àmne. Man hittar mÄnga idéer. Men i stor utstrÀckning hindrar de tvÄ problem som jag nÀmnde (förtrÀning pÄ en enorm dataset / instabilitet pÄ komplexa data) lÀrande.

Å andra sidan passar GAN – generativa adversariella nĂ€tverk – in pĂ„ Ă€mnet Embedding. Ni har sĂ€kert lĂ€st massor av artiklar om detta pĂ„ HabrĂ©.1, 2,3)
En sÀrskiljande egenskap hos GAN Àr skapandet av ett visst inre tillstÄndsomrÄde (i praktiken samma som Embedding), vilket gör att man kan rita en bild. Det kan vara ansikten, det kan vara handlingar.

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Problemet med GAN Àr att ju mer komplex det genererade objektet Àr, desto svÄrare Àr det att beskriva det i logiken "generator-diskriminator". Som resultat av detta Àr de enda verkliga tillÀmpningarna av GAN som Àr kÀnda - DeepFake, vilket Äterigen manipulerar med representationer av ansikten (för vilka det finns en stor databas).

Jag har stött pÄ mycket fÄ andra nyttiga tillÀmpningar. Vanligtvis handlar det om smÄ trick med att rita över bilder.

Och igen. Ingen har nĂ„gon förstĂ„else för hur detta kommer att lĂ„ta oss gĂ„ mot en ljus framtid. Representationen av logik/rum i ett neuralt nĂ€tverk – Ă€r bra. Men det krĂ€vs ett enormt antal exempel, vi förstĂ„r inte hur neuronnĂ€tet representerar detta, vi förstĂ„r inte hur vi fĂ„r neuronnĂ€tet att minnas en verkligt komplex representation.

Reinforcement learning Àr en helt annan infallsvinkel. Ni minns sÀkert hur Google slog alla i Go. Nyligen segrar i Starcraft och Dota. Men hÀr Àr allt lÄngt ifrÄn sÄ rosenrött och lovande. BÀst av allt förklarar article.

om man sammanfattar kort vad författaren skrev:

  • Modeller av standardtyp passar inte / fungerar dĂ„ligt i de flesta fall.
  • Praktiska problem kan enklare lösas pĂ„ andra sĂ€tt. Boston Dynamics anvĂ€nder inte RL pĂ„ grund av dess komplexitet/ovisshet/berĂ€kningssvĂ„righeter.
  • För att RL ska fungera behövs en komplex funktion. Ofta Ă€r det svĂ„rt att skapa/skriva den.
  • Det Ă€r svĂ„rt att trĂ€na modeller. Man mĂ„ste spendera massor av tid för att fĂ„ dem att fungera och ta dem ur lokala optima.
  • Som en följd av detta Ă€r det svĂ„rt att upprepa modellen, modellen Ă€r ostabil vid minsta förĂ€ndringar.
  • Den tenderar ofta att överanpassa sig till slumpmĂ€ssiga mönster, till och med till en slumptalsgenerator.

En avgörande punkt Àr att RL Ànnu inte fungerar i produktion. Google har vissa experiment ( 1, 2 ). Men jag har inte sett nÄgot produktionssystem.

Minne. Nackdelen med allt ovanstÄende Àr ostruktureringen. Ett av de sÀtt som man försöker hantera detta pÄ Àr att ge det neurala nÀtverket tillgÄng till separat minne. SÄ att det kan skriva och skriva över resultaten av sina steg. DÄ kan det neurala nÀtverket definieras av det aktuella tillstÄndet i minnet. Detta liknar mycket klassiska processorer och datorer.

Den mest kĂ€nda och populĂ€ra artikeln — frĂ„n DeepMind:

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Det verkar som om detta Ă€r nyckeln till förstĂ„else av intelligens? Men troligen inte. Systemet behöver fortfarande en enorm mĂ€ngd data för trĂ€ning. Och det fungerar mestadels med strukturerad tabellbaserad data. NĂ€r Facebook hanterade ett liknande problem valde de att "skita i minnet, vi gör bara nĂ€tverket mer komplext, och fler exempel — sĂ„ kommer det att lĂ€ra sig sjĂ€lvt".

Disentanglement. Ett annat sÀtt att skapa betydande minne Àr att ta samma inbÀddningar, men vid trÀning införa ytterligare kriterier som skulle möjliggöra att sÀrskilja "meningar" i dem. Till exempel vill vi trÀna det neurala nÀtverket att sÀrskilja mÀnniskors beteende i affÀren. Om vi hade följt den standardvÀgen skulle vi behöva skapa ett dussin nÀtverk. Ett som letar efter en person, ett annat som bestÀmmer vad den gör, ett tredje som bedömer Äldern, ett fjÀrde för kön. Separat logik ser pÄ den del av affÀren dÀr personen befinner sig / trÀnas pÄ detta. Det tredje avgör deras vÀg, och sÄ vidare.

Eller, om det skulle finnas oÀndligt med data, skulle man kunna trÀna ett nÀtverk pÄ alla möjliga utfall (uppenbarligen gÄr det inte att samla en sÄdan datamÀngd).

Disentanglement-tilvÀgagÄngssÀttet sÀger oss att vi ska trÀna nÀtverket sÄ att det kan sÀrskilja begrepp. Att det genom video ska kunna skapa inbÀddningar dÀr ett omrÄde definierar en handling, ett annat - positionen pÄ golvet i tid, ett annat - personens lÀngd, och ett fjÀrde - dess kön. Vid trÀningen skulle man helst vilja knappt ge nÀtverket nÄgra ledtrÄdar för sÄdana nyckelbegrepp, utan lÄta det sjÀlv identifiera och gruppera omrÄden. Det finns ganska fÄ artiklar om detta (nÄgra av dem 1, 2, 3) och generellt sett Àr de ganska teoretiska.

Men detta riktning, Ätminstone teoretiskt, borde kunna lösa de problem som nÀmndes i början.

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Nedbrytning av bilden efter parametrarna "vÀggfÀrg/gulvfÀrg/objektform/objektfÀrg/osv."

Har bubblan för maskininlÀrning spruckit, eller Àr det början pÄ en ny gryning?

Nedbrytning av ansiktet efter parametrarna "storlek, ögonbryn, orientering, hudfÀrg, osv."

Övrigt

Det finns mÄnga andra, inte sÄ globala, riktningar som pÄ nÄgot sÀtt möjliggör att minska databaser, arbeta med mer heterogena data, osv.

Attention. Det kanske inte Àr meningsfullt att lyfta fram detta som en separat metod. Bara en metod som förstÀrker andra. MÄnga artiklar Àr tillÀgnade det (1,2,3). PoÀngen med Attention Àr att förstÀrka nÀtverkets reaktion pÄ betydelsefulla objekt under trÀning. Ofta genom nÄgot extern mÄl eller en liten extern nÀtverk.

3D-simulering. Om man kan skapa en bra 3D-motor kan man ofta tÀcka in 90 % av trÀningsdata (jag har till och med sett exempel dÀr nÀstan 99 % av data tÀcktes av en bra motor). Det finns mÄnga idéer och hacks för att fÄ nÀtverket som trÀnats pÄ 3D-motorn att fungera med verkliga data (Fine tuning, style transfer, osv.). Men ofta Àr det att skapa en bra motor - flera ordningar mer komplicerat Àn att samla in data. Exempel pÄ nÀr motorer skapades:
TrÀning av robotar (google, braingarden)
Utbildning syntes produkter i butiken (men i de tvÄ projekten vi genomförde - klarade vi oss utan detta).
TrÀning pÄ Tesla (Äterigen videon som visades tidigare).

Slutsatser

Hela artikeln Àr pÄ nÄgot sÀtt slutsatser. Kanske Àr det huvudbudskapet jag ville framföra - "snart slut, neuronnÀt ger inte lÀngre enkla lösningar". Nu mÄste vi arbeta hÄrt för att bygga komplexa lösningar. Eller arbeta hÄrt med att göra komplex vetenskaplig forskning.

Överhuvudtaget Ă€r detta en diskussionspunkt. Kanske har lĂ€sarna mer intressanta exempel?

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster