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

Nedavno objavljeno članak, što lijepo ilustrira trend u strojnom učenju posljednjih godina. Ukratko, broj startupa za strojno učenje naglo je pao u posljednje dvije godine.

Je li balon strojnog učenja pukao ili početak nove zore?
Pa dobro onda. Hajde da shvatimo je li balon pukao, kako živjeti dalje i raspravimo odakle je došla sva ova buka.

Prvo, razgovarajmo o tome što je bio poticaj za ovu krivulju. Odakle je došao. Vjerojatno će se svi sjetiti. Pobjeda Strojno učenje 2012. na natjecanju ImageNet. Uostalom, to je bio prvi globalni događaj! Ali u stvarnosti to nije slučaj. A krivulja rasta počinje nešto ranije. Podijelio bih je na nekoliko točaka.

  1. 2008. je bila godina pojave termina „veliki podaci“. Počeli su se stvarati pravi proizvodi. pojaviti Od 2010. godine. Veliki podaci izravno su povezani sa strojnim učenjem. Bez velikih podataka, stabilan rad algoritama koji su tada postojali bio bi nemoguć. A to nisu bile neuronske mreže. Prije 2012. godine neuronske mreže bile su rezervirane za marginalnu manjinu. Ali tada su počeli raditi potpuno drugačiji algoritmi, koji su postojali godinama, ako ne i desetljećima: svm(1963., 1993. godine), Slučajna šuma (1995), AdaBoost (2003.),… Startupi tih godina bili su prvenstveno povezani s automatskom obradom strukturiranih podataka: blagajne, korisnici, oglašavanje i još mnogo toga.

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

  2. U razdoblju 2011.-2012. konvolucijske neuronske mreže Osvojili smo niz natjecanja u prepoznavanju slika. Njihova stvarna upotreba donekle je kasnila. Rekao bih da su se značajni startupi i rješenja počeli pojavljivati ​​u velikim razmjerima 2014. godine. Trebale su dvije godine da se shvati da neuronske mreže zapravo funkcioniraju, da se stvore korisnički prilagođeni okviri koji se mogu instalirati i pokrenuti u razumnom roku te 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, detekcija objekata, prepoznavanje objekata i osoba, poboljšanje slike itd., itd.

  3. 2015.-2017. Procvat algoritama i projekata temeljenih na rekurentnim mrežama ili njihovim analozima (LSTM, GRU, TransformerNet itd.). Pojavili su se dobro učinkoviti algoritmi za pretvaranje govora u tekst i sustavi strojnog prevođenja. Djelomično su se temeljili na konvolucijskim mrežama za izdvajanje osnovnih značajki. Djelomično su se temeljili na razvoju velikih, visokokvalitetnih skupova podataka.

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

"Je li balon puknuo? Je li pompa pregrijana? Jesu li mrtvi poput blockchaina?"
Pa, naravno! Sutra Siri neće raditi na vašem telefonu, a prekosutra vaš Tesla neće moći razlikovati skretanje od klokana.

Neuronske mreže već rade. Nalaze se u desecima uređaja. One zapravo zarađuju novac, mijenjaju tržište i svijet oko nas. Pomama je malo drugačija:

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

Neuronske mreže jednostavno više nisu novost. Da, mnogi ljudi imaju nerealna očekivanja. Ali veliki broj tvrtki naučio je koristiti neuronske mreže i razvijati proizvode temeljene na njima. Neuronske mreže nude nove funkcionalnosti, pomažu u uklanjanju radnih mjesta i smanjuju troškove usluga:

  • Proizvodne tvrtke integriraju algoritme za analizu nedostataka na montažnoj traci.
  • Stočarske farme kupuju sustave za praćenje krava.
  • Automatski kombajni.
  • Automatizirani pozivni centri.
  • SnapChat filteri (barem nešto korisno!)

Ali glavna, i ne tako očita, poanta je: "Nema više novih ideja ili neće generirati trenutni kapital." Neuronske mreže riješile su desetke problema. I riješit će ih još više. Sve očite ideje koje su postojale iznjedrile su bezbroj startupa. Ali sve što je bilo na površini već je prikupljeno. Tijekom protekle dvije godine nisam naišao ni na jednu novu ideju za korištenje neuronskih mreža. Niti na jedan novi pristup (pa, u redu, postoji nekoliko neobičnosti s GAN-ovima).

I svaki novi startup postaje sve složeniji. Više ne zahtijeva dva tipa koji treniraju neuronsku mrežu na otvorenim podacima. Potrebni su programeri, poslužitelji, tim komentatora, složena podrška i tako dalje.

Kao rezultat toga, startupova je sve manje. Ali proizvodni sustavi rastu. Trebate li dodati prepoznavanje registarskih oznaka? Na tržištu postoje stotine stručnjaka s relevantnim iskustvom. Možete zaposliti nekoga i imati izgrađen sustav za par mjeseci. Ili kupiti gotov. Ali pokrenuti novi startup? Ludost!

Moramo stvoriti sustav za praćenje posjetitelja - zašto plaćati hrpu licenci kada možete stvoriti vlastiti za 3-4 mjeseca i prilagoditi ga svom poslovanju?

Neuronske mreže sada prolaze istim putem kojim su krenule deseci drugih tehnologija.

Sjećate li se kako se pojam "web developer" promijenio od 1995.? Tržište još nije zasićeno stručnjacima. Vrlo je malo profesionalaca. Ali kladio bih se 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 mnogo stručnjaka za obje vrste.

Jednostavno će postojati klasa problema koji se mogu riješiti pomoću neuronskih mreža. Nastaje problem - zapošljavate stručnjaka.

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

Ali ovdje postoji jedna mala, ali zanimljiva specifičnost :)

Trenutni tehnološki stog, sudeći po svemu, neće nas dovesti do umjetne inteligencije. Ideje i njihova novost su se uglavnom iscrpile. Razgovarajmo o tome što nas drži na trenutnoj razini razvoja.

Ograničenja

Krenimo s autonomnim automobilima. Čini se jasnim da su potpuno autonomni automobili mogući s današnjom tehnologijom. Ali koliko će vremena za to trebati, nije jasno. Tesla vjeruje da će se to dogoditi za nekoliko godina.

Reproduciraj videozapis

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

Najvjerojatnije će se, po mom mišljenju, za 15 godina infrastruktura gradova toliko promijeniti da će pojava autonomnih automobila postati neizbježna, postajući njezin nastavak. Ali to se ne može smatrati inteligencijom. Moderna Tesla je vrlo složena transportna traka za filtriranje podataka, njihovo pretraživanje i prekvalifikaciju. To su pravila-pravila-pravila, prikupljanje podataka i filtriranje preko njih (to je to). ovdje O tome sam pisao malo detaljnije, ili pogledajte od ovo oznake).

Prvi problem

I ovdje vidimo prvi temeljni problemVeliki podaci. To je ono što je potaknulo trenutni val neuronskih mreža i strojnog učenja. Danas, za bilo što složeno i automatizirano, potrebno je puno podataka. Ne samo puno, nego jako puno. Trebaju nam automatizirani algoritmi za njihovo prikupljanje, označavanje i korištenje. Ako želimo da automobil detektira kamione nasuprot suncu, prvo ih moramo prikupiti dovoljan broj. Ako želimo da automobil ne poludi kada se bicikl pričvrsti na prtljažnik, trebamo više uzoraka.

I 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 naučila. Ovo je vrlo izazovan zadatak. Malo ljudi još uvijek razumije kako to vizualizirati. Ovi članci su prilično noviji; to su samo neki primjeri, iako daleki:
Vizualizacija Fiksacija teksture. Jasno pokazuje na što se neuronska mreža obično usredotočuje i što doživljava kao ulaz.

Je li balon strojnog učenja pukao ili početak nove zore?
Vizualizacija pozornost na prijevodiZapravo, pažnja se često može koristiti upravo kako bi se pokazalo što je uzrokovalo određenu reakciju mreže. Susreo sam se s takvim stvarima i za otklanjanje pogrešaka i za odluke o proizvodu. Postoji mnogo članaka na ovu temu. Ali što su podaci složeniji, to je teže razumjeti kako postići stabilnu vizualizaciju.

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

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

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

Nisam spomenuo desetke drugih naprava, metoda, trikova i studija o tome kako mapirati unutarnje dijelove mreže. Rade li ovi alati? Pomažu li u brzom identificiranju problema i otklanjanju pogrešaka u mreži? Pomažu li u izdvajanju posljednjih nekoliko postotaka? Pa, nešto poput ovoga:

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

Možete pogledati bilo koje Kaggle natjecanje. I tamo je opisano kako ljudi dolaze do svojih konačnih rješenja. Složili smo 100, 500, 800 milijuna modela i uspjelo je!

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

S dovoljnim iskustvom i testiranjem različitih opcija, možete doći do zaključka zašto je vaš sustav donio ovu odluku. Ali ispravljanje ponašanja sustava bit će teško. Možete instalirati zaobilazno rješenje, pomaknuti prag, dodati skup podataka ili koristiti drugu pozadinsku mrežu.

Treći problem

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

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

Logično, ne čini se tako. Neuronske mreže ne uče ništa složeno osim ako nisu prisiljene. Uvijek uče najjednostavnije moguće značajke. Ima li oči, nos, glavu? To znači da je to lice! Ili navedite primjer gdje oči ne označavaju lice. I opet, postoje milijuni primjera.

Ima puno mjesta na dnu

Rekao bih da ova tri globalna problema trenutno ograničavaju razvoj neuronskih mreža i strojnog učenja. Tamo gdje ovi problemi prije nisu ograničavali područje, već se aktivno koriste.

Je li ovo kraj? Jesu li neuronske mreže u zastoju?

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

Postoji mnogo pristupa i smjerova za rješavanje temeljnih problema koje sam gore naveo. Ali do sada nam nijedan od tih pristupa nije omogućio da učinimo nešto fundamentalno novo, da riješimo nešto što prije nije riješeno. Zasad su svi temeljni projekti temeljeni na utvrđenim pristupima (Tesla) ili ostaju testni projekti za institute ili korporacije (Google Brain, OpenAI).

Grubo govoreći, glavni fokus je stvaranje neke reprezentacije ulaznih podataka na visokoj razini - "memorije", u određenom smislu. Najjednostavniji primjer memorije su razne "ugrađivane" reprezentacije slika. Na primjer, svi sustavi za prepoznavanje lica. Mreža uči izdvojiti neku stabilnu reprezentaciju iz lica koja je neovisna o rotaciji, osvjetljenju ili rezoluciji. U biti, mreža minimizira metrike "različita lica su daleko" i "identična lica su blizu".

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

Ova vrsta učenja zahtijeva desetke i stotine tisuća primjera. Ali rezultat nosi neke od osnova "učenja iz jednog pokušaja". Sada nam ne trebaju stotine lica da bismo zapamtili osobu. Samo jedno lice i to je to - mi saznajemo!
Postoji samo jedan problem... Mreža može učiti samo prilično jednostavne objekte. Kada pokušava razlikovati ne lica, već, na primjer, "ljude po odjeći" (zadatak Ponovna identifikacija) — kvaliteta pada za redove veličine. I mreža više ne može učiti dovoljno očite promjene u perspektivi.

A učenje iz milijuna primjera također nekako nije toliko zabavno.

Postoje studije o značajnom smanjenju broja izbora. Na primjer, odmah se možemo sjetiti jedne od prvih studija o Učenje jednim udarcem od Googlea:

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

Postoji mnogo takvih djela, npr. 1 ili 2 ili 3.

Postoji jedna mana: trening obično dobro funkcionira na jednostavnim, "MNIST-sličnim" primjerima. Ali kada se prelazi na složenije probleme, potrebna vam je veća baza podataka, objektni model ili neka vrsta magije.
Općenito, rad na učenju iz jednog pokušaja je vrlo zanimljiva tema. Pronalazi se mnogo ideja. Ali uglavnom, dva problema koja sam naveo (predtrening na ogromnom skupu podataka i nestabilnost na složenim podacima) stvarno ometaju učenje.

S druge strane, GAN-ovi - generativne adversarijalne mreže - dobar su pristup ugradnji. Vjerojatno ste pročitali hrpu članaka o ovoj temi na Habru.1, 2,3)
Posebnost GAN-a je formiranje nekog unutarnjeg prostora stanja (u biti isto što i Embedding), koji omogućuje crtanje slike. To mogu biti osoba, možda djelatnost.

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

Problem s GAN-ovima je taj što što je generirani objekt složeniji, to ga je teže opisati pomoću logike generatora i diskriminatora. Kao rezultat toga, jedina primjena GAN-ova u stvarnom svijetu o kojoj se široko raspravlja je DeepFake, koji, opet, manipulira prikazima lica (za koje postoji ogromna baza podataka).

Naišao sam na vrlo malo drugih korisnih aplikacija. Obično neke vrste zvona i zviždaljki sa slikama koje se dovršavaju.

I opet. Nitko ne razumije kako će nam ovo omogućiti da krenemo prema svijetloj budućnosti. Predstavljanje logike/prostora u neuronskoj mreži je dobro. Ali potreban nam je ogroman broj primjera; ne razumijemo kako neuronska mreža to predstavlja i ne razumijemo kako natjerati neuronsku mrežu da zapamti bilo koju doista složenu reprezentaciju.

Ojačavanje učenja — ovo je pristup iz potpuno drugačijeg kuta. Vjerojatno se sjećate kako je Google pobijedio sve u Gou. I nedavnih pobjeda u Starcraftu i Doti. Ali stvari ovdje nisu baš tako ružičaste i obećavajuće. Najbolji način da se govori o RL-u i njegovim složenostima je putem ovaj članak.

Da ukratko sažmemo što je autor napisao:

  • Modeli odmah po instalaciji u većini slučajeva ne odgovaraju/rade loše
  • Praktične probleme je lakše riješiti drugim metodama. Boston Dynamics ne koristi RL zbog njegove složenosti/nepredvidljivosti/računske složenosti.
  • Da bi RL radio, potrebna je složena funkcija. Često ju je teško stvoriti/napisati.
  • Teško je trenirati modele. Potrebno je puno vremena da se osposobe i pokrenu izvan lokalnih optimuma.
  • Kao rezultat toga, teško je ponoviti model, a model postaje nestabilan pri najmanjim promjenama.
  • Često se previše prilagođava nekoj vrsti ljevičarskih obrazaca, sve do generatora slučajnih brojeva.

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

memorijaNedostatak svega gore opisanog je nedostatak strukture. Jedan od pristupa rješavanju ovog problema je dati neuronskoj mreži pristup zasebnoj memoriji kako bi tamo mogla snimati i prepisivati ​​rezultate svojih koraka. Tada se neuronska mreža može definirati trenutnim stanjem memorije. To 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 li se ovo kao ključ za razumijevanje inteligencije? Ali vjerojatno ne. Sustav i dalje zahtijeva ogromnu količinu podataka za obuku. I radi prvenstveno sa strukturiranim tabličnim podacima. U međuvremenu, kada Facebook odlučio Ako su imali sličan problem, išli su putem "zbrinite pamćenje, samo učinite neuronsku mrežu složenijom, dajte joj više primjera i ona će sama učiti".

Prevazilaženje teškoćaDrugi način stvaranja smislene memorije je korištenje istih ugrađivanja, ali uvođenje dodatnih kriterija tijekom treniranja koji bi nam omogućili da iz njih izvučemo "značenje". Na primjer, želimo trenirati neuronsku mrežu da prepoznaje ljudsko ponašanje u trgovini. Ako bismo slijedili standardni pristup, morali bismo stvoriti dvanaest mreža. Jedna bi tražila osobu, druga bi određivala što radi, treća bi određivala njezinu dob, četvrta bi određivala njezin spol. Zasebna logika bi promatrala dio trgovine gdje to rade/uče to raditi. Treća bi određivala njezinu putanju i tako dalje.

Ili, ako bi postojala beskonačna količina podataka, tada bi bilo moguće trenirati jednu mrežu na svim mogućim ishodima (očito je da se takav niz podataka ne može prikupiti).

Pristup raspetljavanja nam govori: trenirajmo mrežu tako da sama može razlikovati koncepte. Tako da može formirati ugradnju na temelju videa, gdje jedna regija definira radnju, jedna položaj na podu tijekom vremena, jedna visinu osobe, a treća njezin spol. Istovremeno, tijekom treniranja, željeli bismo izbjeći poticanje mreže takvim ključnim konceptima, već da sama identificira i grupira regije. Vrlo je malo takvih članaka (neki od njih 1, 2, 3) i općenito su prilično teorijski.

Ali ovaj smjer, barem teoretski, trebao bi zatvoriti 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 kao što su „veličina, obrve, orijentacija, boja kože itd.“

Drugi

Postoje mnoga druga, manje globalna područja koja nam omogućuju da na neki način smanjimo baze podataka, radimo s heterogenijim podacima itd.

PažnjaVjerojatno nema smisla izdvajati ovo kao zasebnu metodu. To je jednostavno pristup koji pojačava druge. Mnogi su članci posvećeni tome (1,2,3). Cilj Pažnje je ojačati odgovor mreže na relevantne objekte tijekom treninga. To se često postiže nekim vanjskim ciljanjem ili malom vanjskom mrežom.

3D simulacijaAko stvorite dobar 3D engine, često ga možete koristiti za pokrivanje 90% podataka za obuku (čak sam vidio primjer gdje je dobar engine pokrio gotovo 99% podataka). Postoje mnoge ideje i trikovi za korištenje mreže obučene na 3D engineu sa stvarnim podacima (fino podešavanje, prijenos stilova itd.). Ali često je stvaranje dobrog enginea za redove veličine teže od prikupljanja podataka. Primjeri enginea koji se razvijaju:
Obuka robota (google, vrt za razmišljanje)
Nastava priznanje roba u trgovini (ali u dva projekta koja smo radili, lako smo se snašli i bez toga).
Trening u Tesli (opet, isti video kao gore).

Zaključci

Cijeli članak je, u određenom smislu, zaključak. Pretpostavljam da je glavna poanta koju sam htio istaknuti bila: "Besplatna vožnja je završena; neuronske mreže više ne pružaju jednostavna rješenja." Sada moramo naporno raditi na izgradnji složenih rješenja. Ili naporno raditi na provođenju složenih znanstvenih istraživanja.

Ovo je tema za raspravu. Možda čitatelji imaju zanimljivije primjere?

Izvor: www.habr.com

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster