Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Nedávno vydané článok, ktorý v posledných rokoch ukazuje dobrý trend strojového učenia. Stručne povedané: počet startupov so strojovým učením za posledné dva roky prudko klesol.

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?
Dobre. Pozrime sa na to, „či bublina spľasla“, „ako ďalej žiť“ a porozprávajme sa o tom, odkiaľ táto vlnovka pochádza.

Najprv si povedzme, čo bolo boosterom tejto krivky. Odkiaľ prišla? Pravdepodobne si budú pamätať všetko víťazstvo strojové učenie v roku 2012 na súťaži ImageNet. Ide predsa o prvé celosvetové podujatie! Ale v skutočnosti to tak nie je. A rast krivky začína o niečo skôr. Rozdelil by som to do niekoľkých bodov.

  1. V roku 2008 sa objavil pojem „veľké dáta“. Začali skutočné produkty javí od roku 2010. Veľké dáta priamo súvisia so strojovým učením. Bez veľkých dát je stabilná prevádzka algoritmov, ktoré v tom čase existovali, nemožná. A to nie sú neurónové siete. Do roku 2012 boli neurónové siete výhradou marginálnej menšiny. Potom však začali fungovať úplne iné algoritmy, ktoré existovali roky alebo dokonca desaťročia: SVM(1963,1993, XNUMX), Náhodný les (1995), AdaBoost (2003),... Startupy tých rokov sú spojené predovšetkým s automatickým spracovaním štruktúrovaných dát: registračné pokladne, používatelia, reklama, mnoho iného.

    Derivát tejto prvej vlny je súbor rámcov ako XGBoost, CatBoost, LightGBM atď.

  2. V rokoch 2011-2012 konvolučné neurónové siete vyhral množstvo súťaží v rozpoznávaní obrázkov. Ich skutočné použitie sa trochu oneskorilo. Povedal by som, že v roku 2014 sa začali objavovať masívne zmysluplné startupy a riešenia. Trvalo dva roky, kým sme pochopili, že neuróny stále fungujú, vytvorili pohodlné rámce, ktoré by bolo možné nainštalovať a spustiť v primeranom čase, vyvinúť metódy, ktoré by stabilizovali a urýchlili čas konvergencie.

    Konvolučné siete umožnili riešiť problémy počítačového videnia: klasifikácia obrazov a predmetov v obraze, detekcia objektov, rozpoznávanie predmetov a osôb, zlepšovanie obrazu atď., atď.

  3. 2015-2017. Rozmach algoritmov a projektov založených na rekurentných sieťach alebo ich analógoch (LSTM, GRU, TransformerNet atď.). Objavili sa dobre fungujúce algoritmy prevodu reči na text a systémy strojového prekladu. Čiastočne sú založené na konvolučných sieťach na extrahovanie základných funkcií. Čiastočne kvôli tomu, že sme sa naučili zbierať naozaj veľké a kvalitné datasety.

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

„Splaskla bublina? Je hype prehriaty? Zomreli ako blockchain?”
Inak! Zajtra prestane Siri pracovať na vašom telefóne a pozajtra nebude Tesla poznať rozdiel medzi odbočkou a klokankou.

Neurónové siete už fungujú. Sú v desiatkach zariadení. Naozaj vám umožňujú zarábať peniaze, meniť trh a svet okolo vás. Hype vyzerá trochu inak:

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Ide len o to, že neurónové siete už nie sú niečím novým. Áno, veľa ľudí má vysoké očakávania. Ale veľké množstvo spoločností sa naučilo používať neuróny a vyrábať produkty na ich základe. Neuróny poskytujú nové funkcie, umožňujú znížiť počet pracovných miest a znížiť cenu služieb:

  • Výrobné spoločnosti integrujú algoritmy na analýzu defektov výrobnej linky.
  • Chovné farmy nakupujú systémy na kontrolu kráv.
  • Automatické kombajny.
  • Automatizované call centrá.
  • Filtre v SnapChat. (no, aspoň niečo užitočné!)

Ale hlavná vec, a nie najzrejmejšia: „Už neexistujú žiadne nové nápady, inak neprinesú okamžitý kapitál.“ Neurónové siete vyriešili desiatky problémov. A rozhodnú ešte viac. Všetky zjavné nápady, ktoré existovali, viedli k vzniku mnohých startupov. Ale všetko, čo bolo na povrchu, už bolo zozbierané. Za posledné dva roky som sa nestretol s jediným novým nápadom na využitie neurónových sietí. Ani jeden nový prístup (dobre, dobre, s GANmi je niekoľko problémov).

A každý ďalší startup je čoraz zložitejší. Už to nevyžaduje dvoch chlapov, ktorí trénujú neurón pomocou otvorených dát. Vyžaduje si to programátorov, server, tím markerov, komplexnú podporu atď.

V dôsledku toho je startupov menej. Ale výroby je viac. Potrebujete pridať rozpoznávanie ŠPZ? Na trhu sú stovky špecialistov s relevantnými skúsenosťami. Môžete si niekoho najať a za pár mesiacov váš zamestnanec vytvorí systém. Alebo si kúpte hotové. Ale robiť nový startup?... Šialené!

Musíte si vytvoriť systém sledovania návštevníkov – načo platiť za kopu licencií, keď si za 3-4 mesiace môžete vytvoriť svoj vlastný, vylepšiť ho pre váš biznis.

Teraz prechádzajú neurónové siete rovnakou cestou, akou prešli desiatky iných technológií.

Pamätáte si, ako sa od roku 1995 zmenil pojem „vývojár webových stránok“? Trh ešte nie je nasýtený špecialistami. Profesionálov je veľmi málo. Ale môžem sa staviť, že o 5-10 rokov nebude veľký rozdiel medzi Java programátorom a vývojárom neurónových sietí. Oboch špecialistov bude na trhu dostatok.

Jednoducho bude existovať trieda problémov, ktoré môžu vyriešiť neuróny. Vznikla úloha – najmite si špecialistu.

"Čo bude ďalej? Kde je sľúbená umelá inteligencia?“

Ale je tu malé, ale zaujímavé nedorozumenie :)

Technologický balík, ktorý dnes existuje, nás zrejme neprivedie k umelej inteligencii. Nápady a ich novosť sa do značnej miery vyčerpali. Povedzme si, čo drží súčasný stupeň rozvoja.

Obmedzenie

Začnime so samoriadiacimi autami. Zdá sa jasné, že s dnešnou technológiou je možné vyrobiť plne autonómne autá. Nie je však jasné, o koľko rokov sa tak stane. Tesla verí, že sa to stane o pár rokov -


Existuje mnoho ďalších špecialisti, ktorí to odhadujú na 5-10 rokov.

S najväčšou pravdepodobnosťou sa podľa môjho názoru o 15 rokov samotná infraštruktúra miest zmení tak, že vznik autonómnych áut sa stane nevyhnutným a stane sa jeho pokračovaním. To sa ale nedá považovať za inteligenciu. Moderná Tesla je veľmi zložitým potrubím na filtrovanie dát, vyhľadávanie a preškoľovanie. Sú to pravidlá-pravidlá-pravidlá, zber údajov a filtre nad nimi (tu tu Napísal som o tom trochu viac, alebo sledujte od toto známky).

Prvý problém

A toto vidíme prvý zásadný problém. Veľké dáta. To je presne to, čo zrodilo súčasnú vlnu neurónových sietí a strojového učenia. V dnešnej dobe na to, aby ste robili niečo zložité a automatické, potrebujete veľa údajov. Nielen veľa, ale veľmi, veľmi veľa. Na ich zhromažďovanie, označovanie a používanie potrebujeme automatizované algoritmy. Chceme, aby auto videlo kamióny smerom k slnku – najprv ich musíme nazbierať dostatočné množstvo. Chceme, aby sa auto nezbláznilo s bicyklom priskrutkovaným ku kufru - viac vzoriek.

Navyše jeden príklad nestačí. Stovky? Tisíce?

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Druhý problém

Druhý problém — vizualizácia toho, čo naša neurónová sieť pochopila. Toto je veľmi netriviálna úloha. Doteraz málokto rozumie tomu, ako si to predstaviť. Tieto články sú veľmi čerstvé, toto je len niekoľko príkladov, aj keď vzdialených:
Vizualizácia posadnutosť textúrami. Dobre ukazuje, na čo má neurón tendenciu fixovať sa + čo vníma ako štartovaciu informáciu.

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?
Vizualizácia Pozornosť pri preklady. V skutočnosti môže byť príťažlivosť často presne použitá na zobrazenie toho, čo spôsobilo takúto sieťovú reakciu. Videl som také veci pre ladenie aj produktové riešenia. Na túto tému je veľa článkov. Čím sú však údaje zložitejšie, tým ťažšie je pochopiť, ako dosiahnuť robustnú vizualizáciu.

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Áno, stará dobrá sada „pozri, čo je vo vnútri sieťky filtre" Tieto obrázky boli populárne pred 3-4 rokmi, ale každý si rýchlo uvedomil, že obrázky boli krásne, ale nemali veľký význam.

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Nespomenul som desiatky ďalších gadgetov, metód, hackov, výskumov, ako zobraziť vnútro siete. Fungujú tieto nástroje? Pomáhajú vám rýchlo pochopiť, v čom je problém a odladiť sieť?... Získať posledné percentá? No je to asi to isté:

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Na Kaggle môžete sledovať akúkoľvek súťaž. A popis toho, ako ľudia robia konečné rozhodnutia. Poskladali sme 100-500-800 jednotiek modelov a fungovalo to!

Preháňam, samozrejme. Tieto prístupy však neposkytujú rýchle a priame odpovede.

S dostatočnými skúsenosťami, hrabaním v rôznych možnostiach, môžete vydať verdikt o tom, prečo váš systém urobil takéto rozhodnutie. Ale bude ťažké opraviť správanie systému. Nainštalujte barličku, posuňte prah, pridajte množinu údajov, vytvorte ďalšiu backendovú sieť.

Tretí problém

Tretí základný problém — mriežky učia štatistiku, nie logiku. Štatisticky toto tvár:

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Logicky to nie je veľmi podobné. Neurónové siete sa neučia nič zložité, pokiaľ k tomu nie sú prinútené. Vždy učia najjednoduchšie možné znaky. Máš oči, nos, hlavu? Tak toto je tvár! Alebo uveďte príklad, kde oči neznamenajú tvár. A opäť - milióny príkladov.

V spodnej časti je veľa miesta

Povedal by som, že práve tieto tri globálne problémy v súčasnosti obmedzujú rozvoj neurónových sietí a strojového učenia. A tam, kde ho tieto problémy neobmedzovali, sa už aktívne využíva.

Toto je koniec? Nefungujú neurónové siete?

Neznámy. Ale, samozrejme, všetci dúfajú, že nie.

Existuje mnoho prístupov a smerov na riešenie základných problémov, ktoré som zdôraznil vyššie. Ale zatiaľ žiadny z týchto prístupov neumožnil urobiť niečo zásadne nové, vyriešiť niečo, čo sa ešte nevyriešilo. Všetky zásadné projekty sa zatiaľ robia na báze stabilných prístupov (Tesla), alebo zostávajú testovacími projektmi inštitútov či korporácií (Google Brain, OpenAI).

Zhruba povedané, hlavným smerom je vytvoriť reprezentáciu vstupných údajov na vysokej úrovni. V istom zmysle „pamäť“. Najjednoduchším príkladom pamäte sú rôzne „Embedding“ - obrazové reprezentácie. Napríklad všetky systémy rozpoznávania tváre. Sieť sa učí získať z tváre nejakú stabilnú reprezentáciu, ktorá nezávisí od rotácie, osvetlenia alebo rozlíšenia. Sieť v podstate minimalizuje metriku „rôzne tváre sú ďaleko“ a „identické tváre sú blízko“.

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Na takéto školenie sú potrebné desiatky a stovky tisíc príkladov. Výsledok však nesie niektoré základy „jednorazového učenia“. Teraz nepotrebujeme stovky tvárí, aby sme si zapamätali človeka. Len jedna tvár a to sme všetko Poďme zistiť!
Je tu len jeden problém... Mriežka sa dokáže naučiť len pomerne jednoduché predmety. Keď sa pokúšate rozlíšiť nie tváre, ale napríklad „ľudí podľa oblečenia“ (úloha Opätovná identifikácia) - kvalita klesá o mnoho rádov. A sieť sa už nemôže naučiť celkom zjavné zmeny uhlov.

A učiť sa z miliónov príkladov je tiež zábava.

Existuje práca na výraznom obmedzení volieb. Napríklad si môžete okamžite spomenúť na jednu z prvých prác na OneShot Learning z google:

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Takýchto diel je veľa, napr 1 alebo 2 alebo 3.

Existuje jedno mínus - zvyčajne školenie funguje dobre na niektorých jednoduchých príkladoch „MNIST“. A keď prejdete na zložité úlohy, potrebujete veľkú databázu, model objektov alebo nejakú mágiu.
Vo všeobecnosti je práca na One-Shot tréningu veľmi zaujímavá téma. Nájdete veľa nápadov. Ale z väčšej časti dva problémy, ktoré som vymenoval (predtrénovanie na obrovskom súbore údajov / nestabilita zložitých údajov), značne narúšajú učenie.

Na druhej strane GAN – generatívne adversariálne siete – pristupujú k téme Embedding. O Habrém ste na túto tému určite čítali veľa článkov. (1, 2,3)
Vlastnosťou GAN je vytvorenie nejakého vnútorného stavového priestoru (v podstate rovnaké vkladanie), ktorý vám umožňuje nakresliť obrázok. To môže byť človek, môže byť činnosť.

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Problém s GAN je v tom, že čím je vygenerovaný objekt zložitejší, tým ťažšie je opísať ho v logike „generátor-diskriminátor“. Výsledkom je, že jediné skutočné aplikácie GAN, o ktorých je počuť, sú DeepFake, ktorý opäť manipuluje s reprezentáciami tváre (pre ktoré existuje obrovská základňa).

Videl som len veľmi málo iných užitočných použití. Zvyčajne ide o nejaký trik zahŕňajúci dokončovacie kresby obrázkov.

A znova. Nikto netuší, ako nám to umožní posunúť sa do svetlejšej budúcnosti. Reprezentácia logiky/priestoru v neurónovej sieti je dobrá. Potrebujeme však obrovské množstvo príkladov, nerozumieme, ako to neurón predstavuje sám o sebe, nerozumieme, ako prinútiť neurón zapamätať si nejakú skutočne komplexnú myšlienku.

Posilnenie učenia - to je prístup z úplne iného smeru. Určite si pamätáte, ako Google všetkých porazil v Go. Nedávne víťazstvá v Starcraft a Dota. Tu však všetko zďaleka nie je také ružové a sľubné. Najlepšie hovorí o RL a jeho zložitostiach v tomto článku.

Stručne zhrnieme, čo autor napísal:

  • Modely po vybalení vo väčšine prípadov nesedia/fungujú zle
  • Praktické problémy sa ľahšie riešia inými spôsobmi. Boston Dynamics nepoužíva RL kvôli jeho zložitosti/nepredvídateľnosti/výpočtovej náročnosti
  • Aby RL fungoval, potrebujete komplexnú funkciu. Často je ťažké vytvoriť/napísať
  • Náročné na trénovanie modelov. Musíte stráviť veľa času, aby ste sa napumpovali a dostali sa z lokálneho optima
  • V dôsledku toho je ťažké model opakovať, model je pri najmenších zmenách nestabilný
  • Často prepĺňa niektoré náhodné vzory, dokonca aj generátor náhodných čísel

Kľúčovým bodom je, že RL ešte nefunguje vo výrobe. Google má niekoľko experimentov ( 1, 2 ). Ale nevidel som ani jeden produktový systém.

Memory Masážne stoly. Nevýhodou všetkého opísaného vyššie je nedostatok štruktúry. Jedným z prístupov, ako sa pokúsiť urobiť poriadok v tomto všetkom, je poskytnúť neurónovej sieti prístup k oddelenej pamäti. Aby si tam mohla zaznamenávať a prepisovať výsledky svojich krokov. Potom môže byť neurónová sieť určená aktuálnym stavom pamäte. To je veľmi podobné klasickým procesorom a počítačom.

Najznámejšie a najobľúbenejšie článok — od DeepMind:

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Zdá sa, že toto je kľúč k pochopeniu inteligencie? Ale asi nie. Systém stále vyžaduje obrovské množstvo údajov na školenie. A pracuje hlavne so štruktúrovanými tabuľkovými údajmi. Navyše, keď Facebook rozhodol podobný problém, potom sa vybrali cestou „skrutkujte pamäť, urobte ten neurón komplikovanejším a majte viac príkladov – a naučí sa to samo“.

Rozuzlenie. Ďalším spôsobom, ako vytvoriť zmysluplnú pamäť, je prijať rovnaké vloženia, ale počas tréningu zaviesť ďalšie kritériá, ktoré vám umožnia zdôrazniť „významy“ v nich. Chceme napríklad trénovať neurónovú sieť, aby rozlišovala medzi ľudským správaním v obchode. Ak by sme išli štandardnou cestou, museli by sme urobiť tucet sietí. Jeden hľadá človeka, druhý určuje, čo robí, tretí je jeho vek, štvrtý je jeho pohlavie. Samostatná logika sa pozerá na časť obchodu, kde to robí/je na to vyškolená. Tretí určuje jeho trajektóriu atď.

Alebo, ak by existovalo nekonečné množstvo údajov, potom by bolo možné trénovať jednu sieť pre všetky možné výsledky (samozrejme, že takéto pole údajov nemožno zbierať).

Prístup disentanglement nám hovorí – trénujme sieť tak, aby sama dokázala rozlišovať medzi pojmami. Tak, že by na základe videa tvorila vložku, kde by jedna oblasť určovala akciu, jedna by určovala polohu na podlahe v čase, jedna by určovala výšku osoby a jedna by určovala pohlavie osoby. Zároveň by som chcel pri tréningu takmer neponúkať sieť takýmito kľúčovými pojmami, ale skôr zvýrazniť a zoskupiť oblasti. Existuje pomerne veľa takýchto článkov (niektoré z nich 1, 2, 3) a vo všeobecnosti sú dosť teoretické.

Ale tento smer by mal aspoň teoreticky pokryť problémy uvedené na začiatku.

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Rozklad obrazu podľa parametrov “farba steny/farba podlahy/tvar objektu/farba objektu/atď.”

Praskla bublina strojového učenia alebo je to začiatok nového úsvitu?

Rozklad tváre podľa parametrov "veľkosť, obočie, orientácia, farba pleti atď."

Ostatné

Existuje mnoho ďalších, nie až tak globálnych oblastí, ktoré umožňujú nejako zmenšiť databázu, pracovať s heterogénnejšími údajmi atď.

pozor. Oddeľovať to ako samostatnú metódu asi nemá zmysel. Len prístup, ktorý zlepšuje ostatných. Je mu venovaných veľa článkov (1,2,3). Cieľom pozornosti je zlepšiť odozvu siete špecificky na významné objekty počas tréningu. Často nejakým externým cieľovým označením, alebo malou externou sieťou.

3D simulácia. Ak spravíte dobrý 3D engine, často s ním dokážete pokryť 90% tréningových dát (dokonca som videl príklad, kde takmer 99% dát pokrýval dobrý engine). Existuje mnoho nápadov a trikov, ako zabezpečiť, aby sieť natrénovaná na 3D engine fungovala s použitím skutočných údajov (jemné ladenie, prenos štýlov atď.). Ale často je výroba dobrého motora o niekoľko rádov náročnejšia ako zber dát. Príklady výroby motorov:
Tréning robotov (Google, braingarden)
výcvik uznanie tovar v obchode (ale v dvoch projektoch, ktoré sme robili, by sme sa bez neho pokojne zaobišli).
Školenie v Tesle (opäť video vyššie).

Závery

Celý článok je v istom zmysle závermi. Pravdepodobne hlavným posolstvom, ktoré som chcel povedať, bolo „voľnosti skončili, neuróny už neposkytujú jednoduché riešenia“. Teraz musíme tvrdo pracovať, aby sme robili zložité rozhodnutia. Alebo tvrdo pracujte na komplexnom vedeckom výskume.

Vo všeobecnosti je téma diskutabilná. Možno majú čitatelia zaujímavejšie príklady?

Zdroj: hab.com

Pridať komentár