Da li je pukao balon mašinskog učenja ili početak nove zore?

Nedavno objavljen članak, što pokazuje dobar trend u mašinskom učenju poslednjih godina. Ukratko: broj startapova za mašinsko učenje je naglo opao u posljednje dvije godine.

Da li je pukao balon mašinskog učenja ili početak nove zore?
Pa. Pogledajmo "da li je balon pukao", "kako nastaviti živjeti" i razgovarajmo o tome otkud uopće dolazi ova škripac.

Prvo, hajde da razgovaramo o tome šta je bio pojačivač ove krivulje. Odakle je došla? Vjerovatno će se svega sjetiti pobijediti mašinsko učenje 2012. na ImageNet takmičenju. Uostalom, ovo je prvi globalni događaj! Ali u stvarnosti to nije slučaj. A rast krivulje počinje nešto ranije. Podijelio bih to na nekoliko tačaka.

  1. 2008. godine pojavio se termin „veliki podaci“. Počeli su pravi proizvodi pojaviti od 2010. Veliki podaci su direktno povezani sa mašinskim učenjem. Bez velikih podataka nemoguć je stabilan rad algoritama koji su postojali u to vrijeme. I to nisu neuronske mreže. Do 2012. godine neuronske mreže su bile rezervat marginalne manjine. Ali tada su počeli raditi potpuno drugačiji algoritmi, koji su postojali godinama, pa čak i decenijama: SVM(1963,1993), Random Forest (1995), AdaBoost (2003),... Startapi tih godina prvenstveno se vezuju za automatsku obradu strukturiranih podataka: kase, korisnici, oglašavanje, još mnogo toga.

    Derivat ovog prvog talasa je skup okvira kao što su XGBoost, CatBoost, LightGBM, itd.

  2. U 2011-2012 konvolucione neuronske mreže pobijedio na brojnim takmičenjima za prepoznavanje slika. Njihova stvarna upotreba je donekle kasnila. Rekao bih da su se masovno značajni startupi i rješenja počela pojavljivati ​​2014. godine. Bilo je potrebno dvije godine da se probavi da neuroni još uvijek rade, da se stvore pogodni okviri koji se mogu instalirati i pokrenuti u razumnom roku, da se razviju metode koje bi stabilizirale i ubrzale vrijeme konvergencije.

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

  3. 2015-2017. Bum algoritama i projekata baziranih na rekurentnim mrežama ili njihovim analogama (LSTM, GRU, TransformerNet, itd.). Pojavili su se dobro funkcionišući algoritmi govora u tekst i sistemi mašinskog prevođenja. Djelomično se zasnivaju na konvolucijskim mrežama za izdvajanje osnovnih karakteristika. Djelomično zbog činjenice da smo naučili prikupljati zaista velike i dobre skupove podataka.

Da li je pukao balon mašinskog učenja ili početak nove zore?

„Da li je balon pukao? Da li je hype prezagrejan? 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 skretanja i kengura.

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

Da li je pukao balon mašinskog učenja ili početak nove zore?

Samo neuronske mreže više nisu nešto novo. Da, mnogi ljudi imaju velika očekivanja. Ali veliki broj kompanija je naučio da koristi neurone i da proizvodi proizvode na osnovu njih. Neuroni pružaju novu funkcionalnost, omogućavaju vam da smanjite poslove i smanjite cijenu usluga:

  • Proizvodne kompanije integrišu algoritme za analizu nedostataka na proizvodnoj liniji.
  • Stočne farme kupuju sisteme za kontrolu krava.
  • Automatski kombajni.
  • Automatizovani pozivni centri.
  • Filtri u SnapChat-u. (pa, bar nešto korisno!)

Ali glavna stvar, a ne najočitija: „Nema više novih ideja ili neće donijeti instant kapital.“ Neuronske mreže su riješile desetine problema. A oni će odlučiti još više. Sve očigledne ideje koje su postojale dovele su do mnogih startupa. Ali sve što je bilo na površini već je sakupljeno. U protekle dvije godine nisam naišao ni na jednu novu ideju za korištenje neuronskih mreža. Niti jedan novi pristup (pa, ok, ima nekoliko problema sa GAN-ovima).

I svaki sljedeći startup je sve složeniji. Više ne zahtijeva dva tipa koji treniraju neuron koristeći otvorene podatke. Za to su potrebni programeri, server, tim markera, kompleksna podrška itd.

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

Morate da kreirate sistem za praćenje posetilaca – zašto plaćati gomilu licenci kada možete da napravite sopstvenu za 3-4 meseca, izoštrite ga za svoje poslovanje.

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

Sjećate li se kako se koncept „programera web stranica“ promijenio od 1995. godine? Tržište još nije zasićeno stručnjacima. Profesionalaca je vrlo malo. Ali mogu se kladiti da za 5-10 godina neće biti velike razlike između Java programera i programera neuronskih mreža. Na tržištu će biti dovoljno i jednog i drugog stručnjaka.

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

"Šta je sledeće? Gdje je obećana umjetna inteligencija?”

Ali ovdje dolazi do malog ali zanimljivog nesporazuma :)

Tehnološki niz koji danas postoji, očigledno nas neće dovesti do veštačke inteligencije. Ideje i njihova novost uveliko su se iscrpile. Hajde da razgovaramo o tome šta drži trenutni nivo razvoja.

Ograničenja

Počnimo sa samovozećim automobilima. Čini se jasnim da je moguće napraviti potpuno autonomne automobile sa današnjom tehnologijom. Ali za koliko godina će se to dogoditi nije jasno. Tesla vjeruje da će se to dogoditi za nekoliko godina -


Ima mnogo drugih specijalci, koji procjenjuju na 5-10 godina.

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

Prvi problem

I to je mjesto gdje vidimo prvi fundamentalni problem. Veliki podaci. Upravo je to iznjedrilo trenutni talas neuronskih mreža i mašinskog učenja. Danas, da biste uradili nešto složeno i automatsko, potrebno vam je mnogo podataka. Ne samo mnogo, već veoma, veoma mnogo. Potrebni su nam automatizirani algoritmi za njihovo prikupljanje, obilježavanje i korištenje. Želimo da automobil vidi kamione okrenute prema suncu - prvo ih moramo prikupiti dovoljan broj. Želimo da auto ne poludi sa biciklom pričvršćenim za prtljažnik - više uzoraka.

Štaviše, jedan primjer nije dovoljan. Stotine? Hiljade?

Da li je pukao balon mašinskog učenja ili početak nove zore?

Drugi problem

Drugi problem — vizualizacija onoga što je naša neuronska mreža razumjela. Ovo je vrlo netrivijalan zadatak. Do sada je malo ljudi razumjelo kako to vizualizirati. Ovi članci su vrlo novi, ovo je samo nekoliko primjera, čak i ako su udaljeni:
Vizualizacija opsesija teksturama. Dobro pokazuje na šta neuron ima tendenciju da se fiksira + šta doživljava kao početnu informaciju.

Da li je pukao balon mašinskog učenja ili početak nove zore?
Vizualizacija Attention at prijevodi. Zapravo, privlačnost se često može iskoristiti upravo da pokaže šta je izazvalo takvu mrežnu reakciju. Vidio sam takve stvari i za otklanjanje grešaka i za rješenja proizvoda. Postoji mnogo članaka na ovu temu. Ali što su podaci složeniji, to je teže razumjeti kako postići robusnu vizualizaciju.

Da li je pukao balon mašinskog učenja ili početak nove zore?

Pa, da, stari dobri set „pogledaj šta 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.

Da li je pukao balon mašinskog učenja ili početak nove zore?

Nisam spomenuo desetine drugih naprava, metoda, hakova, istraživanja o tome kako prikazati unutrašnjost mreže. Da li ovi alati rade? Pomažu li vam da brzo shvatite u čemu je problem i otklonite greške na mreži?.. Dobiti posljednji postotak? Pa, otprilike je isto:

Da li je pukao balon mašinskog učenja ili početak nove zore?

Možete pratiti bilo koje takmičenje na Kaggleu. I opis kako ljudi donose konačne odluke. Složili smo 100-500-800 jedinica modela i uspjelo je!

Preterujem, naravno. Ali ovi pristupi ne daju brze i direktne odgovore.

Imajući dovoljno iskustva, probiranjem različitih opcija, možete dati sud o tome zašto je vaš sistem donio takvu odluku. Ali biće teško ispraviti ponašanje sistema. Instalirajte štaku, pomjerite prag, dodajte skup podataka, uzmite drugu pozadinsku mrežu.

Treći problem

Treći fundamentalni problem — mreže podučavaju statistiku, a ne logiku. Statistički ovo lice:

Da li je pukao balon mašinskog učenja 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. Oni uvijek podučavaju najjednostavnije moguće znakove. Imate li oči, nos, glavu? Dakle, ovo je lice! Ili navedite primjer gdje oči ne znače lice. I opet - milioni primjera.

Ima dosta prostora na dnu

Rekao bih da su ova tri globalna problema koja trenutno ograničavaju razvoj neuronskih mreža i mašinskog učenja. A tamo gdje ga ovi problemi nisu ograničili, već se aktivno koristi.

Ovo je kraj? Da li su neuronske mreže podignute?

Nepoznato. Ali, naravno, svi se nadaju da neće.

Postoji mnogo pristupa i pravaca rješavanja osnovnih problema koje sam istaknuo gore. Ali do sada nijedan od ovih pristupa nije omogućio da se uradi nešto suštinski novo, da se reši nešto što još nije rešeno. Do sada su se svi fundamentalni projekti radili na bazi stabilnih pristupa (Tesla), ili su ostali testni projekti instituta ili korporacija (Google Brain, OpenAI).

Grubo govoreći, glavni pravac je kreiranje nekog visokog nivoa reprezentacije ulaznih podataka. U određenom smislu, „pamćenje“. Najjednostavniji primjer memorije su različiti “Embedding” - prikazi slika. Pa, na primjer, svi sistemi za prepoznavanje lica. Mreža uči da dobije od lica neku stabilnu reprezentaciju koja ne zavisi od rotacije, osvetljenja ili rezolucije. U suštini, mreža minimizira metriku „različita lica su daleko“ i „identična lica su blizu“.

Da li je pukao balon mašinskog učenja ili početak nove zore?

Za takvu obuku potrebne su desetine i stotine hiljada primjera. Ali rezultat nosi neke od rudimenata „učenja u jednom trenutku“. Sada nam ne trebaju stotine lica da se setimo osobe. Samo jedno lice i to je sve što smo saznajmo!
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) - kvalitet opada za mnogo redova veličine. I mreža više ne može naučiti prilično očigledne promjene uglova.

A učenje na milionima primjera je također zabavno.

Radi se na značajnom smanjenju izbora. Na primjer, odmah se može prisjetiti jednog od prvih radova na njemu OneShot Learning od Googlea:

Da li je pukao balon mašinskog učenja ili početak nove zore?

Mnogo je takvih djela, na primjer 1 ili 2 ili 3.

Postoji samo jedan minus - obično obuka dobro funkcionira na nekim jednostavnim, “MNIST” primjerima. A kada prelazite na složene zadatke, potrebna vam je velika baza podataka, model objekata ili neka vrsta magije.
Općenito, rad na One-Shot treningu je vrlo zanimljiva tema. Nađete mnogo ideja. Ali uglavnom, dva problema koja sam naveo (pretreniranje na velikom skupu podataka / nestabilnost na složenim podacima) uvelike ometaju učenje.

S druge strane, GAN-ovi – generativne suparničke mreže – pristupaju temi Embedding-a. Vjerovatno ste pročitali gomilu članaka na Habréu na ovu temu. (1, 2,3)
Karakteristika GAN-a je formiranje nekog unutrašnjeg prostora stanja (u suštini istog Embeddinga), koji vam omogućava da nacrtate sliku. Može biti lica, može biti akcija.

Da li je pukao balon mašinskog učenja ili početak nove zore?

Problem sa GAN-om je da što je složeniji generisani objekat, to ga je teže opisati u logici „generator-diskriminator“. Kao rezultat toga, jedine prave aplikacije GAN-a za koje se čuje su DeepFake, koji, opet, manipuliše reprezentacijama lica (za šta postoji ogromna baza).

Vidio sam vrlo malo drugih korisnih upotreba. Obično neka vrsta trikova koja uključuje doradu crteža slika.

I opet. Niko 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 da neuron zapamti neku zaista složenu ideju.

Ojačavanje učenja - ovo je pristup iz potpuno drugog smjera. Sigurno se sjećate kako je Google pobijedio sve u Go. Nedavne pobjede u Starcraft-u i Doti. Ali ovdje sve nije tako ružičasto i obećavajuće. On najbolje govori o RL i njegovoj složenosti Ovaj članak.

Da ukratko rezimiramo šta je autor napisao:

  • Modeli iz kutije u većini slučajeva ne odgovaraju / rade loše
  • Praktični problemi se lakše rješavaju na druge načine. Boston Dynamics ne koristi RL zbog njegove složenosti/nepredvidivosti/kompjuterske složenosti
  • Da bi RL radio, potrebna vam je složena funkcija. Često je teško kreirati/pisati
  • Teško je obučiti modele. Morate potrošiti dosta vremena da se napumpate i izađete iz lokalne optime
  • Kao rezultat toga, teško je ponoviti model, model je nestabilan s najmanjim promjenama
  • Često se uklapa u neke nasumične obrasce, č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 sistem proizvoda.

memorija. Loša strana svega gore opisanog je nedostatak strukture. Jedan od pristupa da se pokuša sve ovo srediti je da se neuronskoj mreži omogući pristup zasebnoj memoriji. Tako da može snimiti i prepisati rezultate svojih koraka tamo. Tada se neuronska mreža može odrediti trenutnim stanjem memorije. Ovo je vrlo slično klasičnim procesorima i računarima.

Najpoznatiji i najpopularniji članak — od DeepMinda:

Da li je pukao balon mašinskog učenja ili početak nove zore?

Čini se da je to ključ za razumijevanje inteligencije? Ali vjerovatno ne. Sistem i dalje zahtijeva ogromnu količinu podataka za obuku. I radi uglavnom sa strukturiranim tabelarnim podacima. Štaviše, kada je Facebook odlučila sličan problem, onda su krenuli putem “zajebi memoriju, samo učini neuron složenijim i imaj više primjera – i učit će sam.”

Raspletanje. Drugi način za stvaranje smislenog pamćenja je da uzmete iste ugradnje, ali tokom treninga uvedete dodatne kriterije koji bi vam omogućili da u njima istaknete "značenja". Na primjer, želimo da obučimo neuronsku mrežu da razlikuje ljudsko ponašanje u trgovini. Ako bismo slijedili standardni put, morali bismo napraviti desetak mreža. Jedan traži osobu, drugi utvrđuje šta radi, treći su njegove godine, četvrti je pol. Odvojena logika gleda na dio trgovine u kojem se to radi/je obučavano. Treći određuje njegovu putanju, itd.

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

Pristup rastavljanja nam govori – obučimo mrežu tako da ona sama može razlikovati koncepte. Tako da bi se na osnovu videa formirao embedding, gdje bi jedno područje određivalo radnju, jedno bi odredilo položaj na podu u vremenu, jedno bi odredilo visinu osobe, a jedno bi odredilo pol osobe. U isto vrijeme, prilikom treninga, ne bih volio skoro da podstičem mrežu sa takvim ključnim konceptima, već da istakne i grupiše područja. Postoji dosta takvih članaka (neki od njih 1, 2, 3) i općenito su prilično teoretski.

Ali ovaj smjer bi, barem teoretski, trebao pokriti probleme navedene na početku.

Da li je pukao balon mašinskog učenja ili početak nove zore?

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

Da li je pukao balon mašinskog učenja ili početak nove zore?

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

Ostali

Postoje mnoge druge, ne tako globalne, oblasti koje vam omogućavaju da nekako smanjite bazu podataka, radite sa heterogenijim podacima itd.

pažnja. Vjerovatno nema smisla izdvajati ovo kao zasebnu metodu. Samo pristup koji poboljšava druge. Njemu su posvećeni mnogi članci (1,2,3). Svrha pažnje je da se poboljša odgovor mreže posebno na značajne objekte tokom treninga. Često nekom vrstom eksterne ciljne oznake, ili malom vanjskom mrežom.

3D simulacija. Ako napravite dobar 3D motor, često možete njime pokriti 90% podataka o treningu (čak sam vidio primjer gdje je skoro 99% podataka pokriveno dobrim motorom). Postoji mnogo ideja i hakova kako učiniti da mreža obučena na 3D mašini radi koristeći stvarne podatke (fino podešavanje, prijenos stila, itd.). Ali često je stvaranje dobrog motora nekoliko redova veličine teže od prikupljanja podataka. Primjeri kada su napravljeni motori:
Obuka robota (Google, braingarden)
Trening sesije prepoznavanje robe u prodavnici (ali u dva projekta koja smo radili lako bismo mogli bez nje).
Trening u Tesli (opet video iznad).

nalazi

Čitav članak su, na neki način, zaključci. Vjerovatno je glavna poruka koju sam želio uputiti bila “besplate su gotove, neuroni više ne pružaju jednostavna rješenja.” Sada moramo naporno raditi na donošenju složenih odluka. Ili naporno radite na složenim naučnim istraživanjima.

Generalno, tema je diskutabilna. Možda čitatelji imaju zanimljivije primjere?

izvor: www.habr.com

Dodajte komentar