Je li balon strojnog učenja pukao ili početak nove zore?

Nedavno objavljeno članak, što pokazuje dobar trend u strojnom učenju posljednjih godina. Ukratko: broj startupa koji se bave strojnim učenjem naglo je pao u posljednje dvije godine.

Je li balon strojnog učenja pukao ili početak nove zore?
Dobro. Pogledajmo "je li mjehur pukao", "kako nastaviti živjeti" i razgovarajmo o tome odakle uopće dolazi ovo vrckanje.

Prvo, razgovarajmo o tome što je bio pojačivač ove krivulje. Odakle je došla? Vjerojatno će se svega sjetiti Pobjeda strojnog učenja 2012. na natjecanju ImageNet. Uostalom, ovo je prvi globalni događaj! Ali u stvarnosti to nije tako. I rast krivulje počinje nešto ranije. Podijelio bih ga u nekoliko točaka.

  1. U 2008. godini pojavio se pojam “veliki podaci”. Započeli su pravi proizvodi pojaviti od 2010. Veliki podaci izravno su povezani sa strojnim učenjem. Bez velikih podataka nemoguć je stabilan rad algoritama koji su tada postojali. A to nisu neuronske mreže. Do 2012. neuronske mreže bile su rezervat marginalne manjine. Ali tada su počeli raditi potpuno drugačiji algoritmi, koji su postojali godinama ili čak desetljećima: svm(1963,1993), Slučajna šuma (1995), AdaBoost (2003),... Startupi tih godina prvenstveno su povezani s automatskom obradom strukturiranih podataka: blagajne, korisnici, oglašavanje, još mnogo toga.

    Izvedenica ovog prvog vala je skup okvira kao što su XGBoost, CatBoost, LightGBM itd.

  2. U 2011.-2012 konvolucijske neuronske mreže pobijedio na brojnim natjecanjima za prepoznavanje slika. Njihova stvarna uporaba donekle je odgođena. Rekao bih da su se masovno smisleni startupi i rješenja počeli pojavljivati ​​2014. godine. Bile su potrebne dvije godine da se shvati da neuroni i dalje rade, da se stvore zgodni okviri koji se mogu instalirati i pokrenuti u razumnom roku, da se razviju metode koje bi stabilizirale i ubrzale vrijeme konvergencije.

    Konvolucijske mreže omogućile su rješavanje problema računalnog vida: klasifikacija slika i objekata na slici, detekcija objekata, prepoznavanje objekata i ljudi, poboljšanje slike itd., itd.

  3. 2015-2017. Procvat algoritama i projekata temeljenih na rekurentnim mrežama ili njihovim analogama (LSTM, GRU, TransformerNet, itd.). Pojavili su se algoritmi govora u tekst koji dobro funkcioniraju i sustavi za strojno prevođenje. Djelomično se temelje na konvolucijskim mrežama za izdvajanje osnovnih značajki. Djelomično zbog činjenice da smo naučili prikupljati stvarno velike i dobre skupove podataka.

Je li balon strojnog učenja pukao ili početak nove zore?

“Je li balon pukao? Je li hype pregrijan? Jesu li umrli kao blockchain?"
Inače! Sutra će Siri prestati raditi na vašem telefonu, a prekosutra Tesla neće znati razliku između turna i klokana.

Neuronske mreže već rade. Ima ih u desecima uređaja. Oni vam stvarno omogućuju da zaradite novac, promijenite tržište i svijet oko sebe. Hype izgleda malo drugačije:

Je li balon strojnog učenja pukao ili početak nove zore?

Samo što neuronske mreže više nisu nešto novo. Da, mnogi ljudi imaju velika očekivanja. No velik broj tvrtki naučio je koristiti neurone i proizvoditi proizvode temeljene na njima. Neuroni pružaju nove funkcionalnosti, omogućuju smanjenje radnih mjesta i smanjenje cijena usluga:

  • Proizvodne tvrtke integriraju algoritme za analizu nedostataka na proizvodnoj liniji.
  • Stočne farme kupuju sustave za kontrolu krava.
  • Automatski kombajni.
  • Automatizirani pozivni centri.
  • Filtri u SnapChatu. (dobro, barem nešto korisno!)

Ali glavna stvar, a ne najočiglednija: "Nema više novih ideja ili one neće donijeti instant kapital." Neuronske mreže riješile su desetke problema. A odlučit će i više. Sve očite ideje koje su postojale dovele su do mnogih startupa. Ali sve što je bilo na površini već je bilo prikupljeno. U posljednje dvije godine nisam naišao niti na jednu novu ideju za korištenje neuronskih mreža. Niti jedan novi pristup (dobro, ok, ima nekoliko problema s GAN-ovima).

I svaki sljedeći startup je sve složeniji. Više ne zahtijeva dva tipa koji treniraju neuron koristeći otvorene podatke. Zahtijeva programere, server, tim markera, kompleksnu podršku itd.

Kao rezultat toga, ima manje startupa. Ali ima više proizvodnje. Trebate li dodati prepoznavanje registarskih tablica? Na tržištu postoje stotine stručnjaka s relevantnim iskustvom. Možete zaposliti nekoga i za par mjeseci vaš zaposlenik će napraviti sustav. Ili kupite gotove. Ali napraviti novi startup?.. Ludo!

Morate stvoriti sustav za praćenje posjetitelja - zašto plaćati hrpu licenci kada možete napraviti vlastitu u 3-4 mjeseca, izoštriti je za svoj posao.

Sada neuronske mreže prolaze kroz isti put koji su prošli deseci drugih tehnologija.

Sjećate li se kako se koncept "website developera" promijenio od 1995.? Tržište još nije zasićeno stručnjacima. Profesionalaca je jako malo. Ali mogu se kladiti da za 5-10 godina neće biti velike razlike između Java programera i razvijača neuronske mreže. Na tržištu će biti dovoljno oba specijalista.

Jednostavno će postojati klasa problema koje neuroni mogu riješiti. Pojavio se zadatak - angažirati stručnjaka.

"Što je sljedeće? Gdje je obećana umjetna inteligencija?”

Ali ovdje postoji mali, ali zanimljiv nesporazum :)

Tehnološki niz koji danas postoji, očito nas neće dovesti do umjetne inteligencije. Ideje i njihova novost uvelike su se iscrpile. Razgovarajmo o tome što drži trenutnu razinu razvoja.

Ograničenja

Krenimo od samovozećih automobila. Čini se jasnim da je moguće napraviti potpuno autonomne automobile s današnjom tehnologijom. Ali za koliko godina će se to dogoditi nije jasno. Tesla vjeruje da će se to dogoditi za nekoliko godina -


Postoje mnogi drugi stručnjaci, koji procjenjuju da je to 5-10 godina.

Najvjerojatnije će se, po mom mišljenju, za 15 godina sama infrastruktura gradova promijeniti na takav način da će pojava autonomnih automobila postati neizbježna i postat će njezin nastavak. Ali to se ne može smatrati inteligencijom. Moderni Tesla je vrlo složen cjevovod za filtriranje podataka, pretraživanje i prekvalificiranje. To su pravila-pravila-pravila, prikupljanje podataka i filteri nad njima (ovdje ovdje Napisao sam malo više o ovome, ili gledajte od ovo oznake).

Prvi problem

I ovdje vidimo prvi temeljni problem. Veliki podaci. Upravo je to ono što je rodilo trenutni val neuronskih mreža i strojnog učenja. U današnje vrijeme, da biste napravili nešto složeno i automatski, potrebno vam je mnogo podataka. Ne samo puno, nego jako, jako puno. Trebaju nam automatizirani algoritmi za njihovo prikupljanje, označavanje i korištenje. Želimo natjerati automobil da vidi kamione okrenute prema suncu - prvo ih moramo prikupiti dovoljan broj. Želimo da auto ne poludi s biciklom pričvršćenim za prtljažnik - više uzoraka.

Štoviše, jedan primjer nije dovoljan. Stotine? Tisuće?

Je li balon strojnog učenja pukao ili početak nove zore?

Drugi problem

Drugi problem — vizualizacija onoga što je naša neuronska mreža shvatila. Ovo je vrlo netrivijalan zadatak. Do sada malo ljudi razumije kako to vizualizirati. Ovi su članci vrlo novi, ovo je samo nekoliko primjera, čak i ako su daleki:
Vizualizacija opsjednutost teksturama. Dobro pokazuje na što se neuron nastoji fiksirati + što percipira kao početnu informaciju.

Je li balon strojnog učenja pukao ili početak nove zore?
Vizualizacija Pozornost na prijevodi. Zapravo, privlačnost se često može koristiti upravo da bi se pokazalo što je izazvalo takvu mrežnu reakciju. Vidio sam takve stvari i za otklanjanje pogrešaka i za rješenja proizvoda. Postoji puno članaka na ovu temu. Ali što su podaci složeniji, to je teže razumjeti kako postići robusnu vizualizaciju.

Je li balon strojnog učenja pukao ili početak nove zore?

Pa, da, dobri stari set "pogledaj što je unutar mreže filteri" Ove slike su bile popularne prije 3-4 godine, ali su svi brzo shvatili da su slike lijepe, ali nemaju puno značenja.

Je li balon strojnog učenja pukao ili početak nove zore?

Nisam spomenuo desetke drugih gadgeta, metoda, hakova, istraživanja o tome kako prikazati unutrašnjost mreže. Djeluju li ovi alati? Pomažu li vam brzo shvatiti u čemu je problem i otkloniti pogreške u mreži?.. Dobiti zadnji postotak? Pa, otprilike je isto:

Je li balon strojnog učenja pukao ili početak nove zore?

Na Kaggleu možete gledati bilo koje natjecanje. I opis kako ljudi donose konačne odluke. Složili smo 100-500-800 jedinica modela i uspjelo je!

Pretjerujem, naravno. Ali ti pristupi ne daju brze i izravne odgovore.

Imajući dovoljno iskustva, nakon što ste pretražili različite opcije, možete dati presudu o tome zašto je vaš sustav donio takvu odluku. Ali bit će teško ispraviti ponašanje sustava. Instalirajte štaku, pomaknite prag, dodajte skup podataka, uzmite drugu pozadinsku mrežu.

Treći problem

Treći temeljni problem — mreže uče statistici, a ne logici. Statistički ovo lice:

Je li balon strojnog učenja pukao ili početak nove zore?

Logično, nije baš slično. Neuronske mreže ne uče ništa složeno osim ako nisu prisiljene. Uvijek podučavaju najjednostavnije moguće znakove. Imaš li oči, nos, glavu? Dakle, ovo je lice! Ili dajte primjer gdje oči ne znače lice. I opet – milijuni primjera.

Ima dosta mjesta na dnu

Rekao bih da upravo ova tri globalna problema trenutno ograničavaju razvoj neuronskih mreža i strojnog učenja. A tamo gdje ga ti problemi nisu ograničili, već se aktivno koristi.

Ovo je kraj? Jesu li neuronske mreže u funkciji?

Nepoznato. Ali, naravno, svi se nadaju da nije tako.

Postoje mnogi pristupi i pravci rješavanja temeljnih problema koje sam gore istaknuo. Ali do sada nijedan od tih pristupa nije omogućio da se učini nešto bitno novo, da se riješi nešto što još nije riješeno. Do sada se svi fundamentalni projekti rade na bazi stabilnih pristupa (Tesla), ili ostaju testni projekti instituta ili korporacija (Google Brain, OpenAI).

Grubo govoreći, glavni smjer je stvoriti neki prikaz ulaznih podataka na visokoj razini. U određenom smislu, "sjećanje". Najjednostavniji primjer memorije su različiti “Embedding” - slikovni prikazi. Pa, na primjer, svi sustavi za prepoznavanje lica. Mreža uči od lica dobiti neki stabilan prikaz koji ne ovisi o rotaciji, osvjetljenju ili razlučivosti. U biti, mreža minimizira metriku "različita lica su daleko" i "identična lica su blizu".

Je li balon strojnog učenja pukao ili početak nove zore?

Za takvu obuku potrebni su deseci i stotine tisuća primjera. Ali rezultat nosi neke od rudimenata "jednokratnog učenja". Sada nam ne trebaju stotine lica da zapamtimo osobu. Samo jedno lice i to smo sve Hajde da vidimo!
Postoji samo jedan problem... Mreža može naučiti samo prilično jednostavne objekte. Kada pokušavate razlikovati ne lica, već, na primjer, "ljude po odjeći" (zadatak Ponovna identifikacija) - kvaliteta pada za više redova veličine. I mreža više ne može naučiti prilično očite promjene u kutovima.

A učenje iz milijuna primjera također je zabavno.

Ima posla da se značajno smanje izbori. Na primjer, odmah se može prisjetiti jednog od prvih radova na OneShot učenje od Googlea:

Je li balon strojnog učenja pukao ili početak nove zore?

Mnogo je takvih djela, npr 1 ili 2 ili 3.

Postoji samo jedan minus - obično trening dobro funkcionira na nekim jednostavnim, "MNIST" primjerima. A kad prelazite na složene zadatke, potrebna vam je velika baza podataka, model objekata ili neka vrsta magije.
Općenito, rad na One-Shot treningu vrlo je zanimljiva tema. Pronalazite puno ideja. Ali većinom, dva problema koja sam naveo (pretvježba na velikom skupu podataka / nestabilnost na složenim podacima) uvelike ometaju učenje.

S druge strane, GAN-ovi — generativne protivničke mreže — pristupaju temi ugrađivanja. Vjerojatno ste pročitali hrpu članaka na Habréu na ovu temu. (1, 2,3)
Značajka GAN-a je formiranje nekog unutarnjeg prostora stanja (u suštini isti Embedding), koji vam omogućuje crtanje slike. To može biti osoba, Može biti djelatnost.

Je li balon strojnog učenja pukao ili početak nove zore?

Problem s GAN-om je u tome što što je generirani objekt složeniji, to ga je teže opisati logikom "generator-diskriminator". Kao rezultat toga, jedine stvarne aplikacije GAN-a za koje se čuje su DeepFake, koji, opet, manipulira prikazima lica (za što postoji ogromna baza).

Vidio sam vrlo malo drugih korisnih upotreba. Obično neka vrsta trikova koji uključuju dovršavanje crteža slika.

I opet. Nitko nema pojma kako će nam to omogućiti da krenemo u svjetliju budućnost. Predstavljanje logike/prostora u neuronskoj mreži je dobro. Ali treba nam ogroman broj primjera, ne razumijemo kako neuron to predstavlja sam po sebi, ne razumijemo kako natjerati neuron da zapamti neku stvarno složenu ideju.

Ojačavanje učenja - ovo je pristup iz sasvim drugog smjera. Sigurno se sjećate kako je Google pobijedio sve u Gou. Nedavne pobjede u Starcraftu i Doti. Ali ovdje sve nije tako ružičasto i obećavajuće. On najbolje govori o RL-u i njegovim složenostima ovaj članak.

Da ukratko rezimiramo što je autor napisao:

  • Modeli izvan kutije u većini slučajeva ne odgovaraju / rade loše
  • Praktične probleme lakše je riješiti na druge načine. Boston Dynamics ne koristi RL zbog njegove složenosti/nepredvidivosti/složenosti računanja
  • Da bi RL radio, potrebna vam je složena funkcija. Često je teško stvarati/pisati
  • Modele je teško obučiti. Morate potrošiti puno vremena da se napumpate i izađete iz lokalnih optima
  • Kao rezultat toga, teško je ponoviti model, model je nestabilan i kod najmanjih promjena
  • Često se uklapa u neke slučajne uzorke, čak i generator slučajnih brojeva

Ključna stvar je da RL još ne radi u proizvodnji. Google ima neke eksperimente ( 1, 2 ). Ali nisam vidio niti jedan sustav proizvoda.

memorija. Loša strana svega gore opisanog je nedostatak strukture. Jedan od načina pokušaja da se sve to pospremi je omogućiti neuronskoj mreži pristup zasebnoj memoriji. Kako bi tamo mogla bilježiti i prepisivati ​​rezultate svojih koraka. Tada se neuronska mreža može odrediti trenutnim stanjem memorije. Ovo je vrlo slično klasičnim procesorima i računalima.

Najpoznatiji i najpopularniji članak — iz DeepMinda:

Je li balon strojnog učenja pukao ili početak nove zore?

Čini se da je to ključ za razumijevanje inteligencije? Ali vjerojatno ne. Sustav i dalje zahtijeva veliku količinu podataka za obuku. I radi uglavnom sa strukturiranim tabličnim podacima. Štoviše, kada Facebook odlučio sličan problem, onda su krenuli putem "zajebi pamćenje, samo zakompliciraj neuron i imaj više primjera - i učit će sam."

Prevazilaženje teškoća. Drugi način za stvaranje smislene memorije je uzeti iste umetke, ali tijekom treninga uvesti dodatne kriterije koji bi vam omogućili da u njima istaknete "značenja". Na primjer, želimo istrenirati neuronsku mrežu da razlikuje ljudsko ponašanje u trgovini. Da idemo standardnim putem, morali bismo napraviti desetak mreža. Jedan traži osobu, drugi utvrđuje što radi, treći je njezina dob, četvrti je njegov spol. Zasebna logika gleda na dio trgovine gdje radi/je obučena za to. Treći određuje njegovu putanju itd.

Ili, ako postoji beskonačna količina podataka, tada bi bilo moguće uvježbati jednu mrežu za sve moguće ishode (očito se takav niz podataka ne može prikupiti).

Pristup rastavljanja nam govori - istrenirajmo mrežu tako da ona sama može razlikovati pojmove. Tako da bi na temelju videa napravio embedding, gdje bi jedno područje određivalo radnju, jedno bi određivalo položaj na podu u vremenu, jedno bi određivalo visinu osobe, a jedno bi određivalo spol osobe. U isto vrijeme, tijekom treninga, gotovo da ne bih volio poticati mrežu takvim ključnim pojmovima, već da ona istakne i grupira područja. Ima dosta takvih članaka (neki od njih 1, 2, 3) i općenito su prilično teoretski.

No taj bi smjer, barem teoretski, trebao pokriti probleme navedene na početku.

Je li balon strojnog učenja pukao ili početak nove zore?

Dekompozicija slike prema parametrima “boja zida/boja poda/oblik objekta/boja objekta/itd.”

Je li balon strojnog učenja pukao ili početak nove zore?

Dekompozicija lica prema parametrima “veličina, obrve, orijentacija, boja kože itd.”

Drugi

Postoje mnoga druga, ne tako globalna područja koja vam omogućuju da na neki način smanjite bazu podataka, radite s više heterogenih podataka itd.

Pažnja. Vjerojatno nema smisla izdvajati ovo kao zasebnu metodu. Samo pristup koji poboljšava druge. Mnogi članci posvećeni su mu (1,2,3). Svrha pozornosti je pojačati reakciju mreže posebno na značajne objekte tijekom treninga. Često nekom vrstom vanjske ciljne oznake, ili malom vanjskom mrežom.

3D simulacija. Ako napravite dobar 3D motor, njime često možete pokriti 90% podataka za trening (čak sam vidio primjer gdje je gotovo 99% podataka pokriveno dobrim motorom). Postoji mnogo ideja i hakova o tome kako natjerati mrežu obučenu na 3D motor da radi koristeći stvarne podatke (fino ugađanje, prijenos stilova itd.). Ali često je napraviti dobar motor nekoliko redova veličine teže od prikupljanja podataka. Primjeri izrade motora:
Obuka robota (google, vrt mozga)
trening priznanje robu u dućanu (ali u dva projekta koja smo radili, lako smo mogli i bez toga).
Obuka u Tesli (opet video iznad).

Zaključci

Cijeli je članak u neku ruku zaključci. Vjerojatno je glavna poruka koju sam želio poslati bila "besplatni proizvodi su gotovi, neuroni više ne pružaju jednostavna rješenja." Sada moramo naporno raditi kako bismo donijeli složene odluke. Ili naporno raditi na složenim znanstvenim istraživanjima.

Općenito, tema je diskutabilna. Možda čitatelji imaju još zanimljivih primjera?

Izvor: www.habr.com

Dodajte komentar