Së fundmi doli , e cila tregon mjaft mirë tendencën në mësimin e makinave të viteve të fundit. Nëse flasim shkurt: numri i startup-eve në fushën e mësimit të makinave ra ndjeshëm në dy vitet e fundit.

Mirë, le të shqyrtojmë «a shpërtheu flluska», «si të vazhdojmë nga këtu» dhe të flasim se nga ka ardhur gjithkjo.
Së pari, le të flasim se çfarë ishte nxitësi i kësaj kurbe. Nga erdhi ajo? Sigurisht që të gjithë do të kujtojnë e mësimit të makinave në vitin 2012 në konkursin ImageNet. Sepse kjo ishte ngjarja e parë globale! Por në realitet, nuk është kështu. Dhe rritja e kurbës fillon disa vite më herët. Unë do ta ndaj atë në disa momente.
- Viti 2008 është shfaqja e termit “të dhëna të mëdha”. Produktet reale filluan nga viti 2010. Të dhënat e mëdha janë të lidhura drejtpërdrejt me mësimin e makinave. Pa të dhëna të mëdha, funksionimi i stabilizuar i algoritmeve që ekzistonin në atë kohë nuk është i mundur. Dhe kjo nuk janë rrjetet neuronale. Deri në vitin 2012, rrjetet neuronale ishin një fushë e margjinalizuar. Por atëherë filluan të funksiononin algoritme krejt të tjera, që ekzistonin për vite, madje edhe dekada: (vitet 1963, 1993), (1995), (2003),… Startupet e atyre viteve lidhen kryesisht me përpunimin automatik të të dhënave të strukturuara: kasat, përdoruesit, reklama, shumë më tepër.
Derivati i kësaj vale të parë — një set kornizash, si XGBoost, CatBoost, LightGBM, etj.
- Në vitet 2011-2012 fituan një sërë garash për njohjen e imazheve. Përdorimi real i tyre zgjati pak. Do të thosha se startupet dhe zgjidhjet me kuptim masiv filluan të shfaqen që nga viti 2014. Dy vjet ishin të nevojshme për të përtypur që rrjetet nervore, gjithsesi, funksionojnë, për të krijuar korniza të përshtatshme që mund të instalohen dhe të nisin brenda një kohe të arsyeshme, dhe për të zhvilluar metoda që stabilizojnë dhe shpejtojnë kohën e konvergjencës.
Rrjetet konvolucionale mundësuan zgjidhjen e problemeve të vizionit kompjuterik: klasifikimi i imazheve dhe objekteve në imazh, detektimi i objekteve, njohja e objekteve dhe njerëzve, përmirësimi i imazheve, etj., etj.
- 2015-2017. Bum e algoritmeve dhe projekteve të lidhura me rrjetet rekurente ose analogët e tyre (LSTM, GRU, TransformerNet, etj.). U shfaqën algoritme të shkelqyera për "folje në tekst", sisteme të përkthimit të makinës. Pjesërisht ato janë të bazuara në rrjete konvencionale për nxjerrjen e karakteristikave bazë. Pjesërisht se mësuam të mbledhim të dhëna të vërteta shumë të mëdha dhe cilësore.

"A shpërtheu bula? Hype është tepër i nxehtë? A vdiqën si blockchain?"
Ose, nesër në telefonin tuaj do të ndalojë së funksionuari Siri, dhe pasnesër Tesla nuk do ta dallojë kthesën nga kenguri.
Rrjetet neuronale tashmë po funksionojnë. Ato janë në dhjetëra pajisje. Ato vërtet lejojnë të fitohet, ndryshojnë tregun dhe botën përreth. Hype duket disi ndryshe:

Thjesht rrjetet neuronale kanë pushuar së qeni diçka e re. Po, shumë njerëz kanë pritshmëri të tepruara. Por një numër i madh kompanish ka mësuar të aplikojë neuronët dhe të krijojë produkte mbi ta. Neuronët ofrojnë funksionalitete të reja, lejojnë të reduktohen vendet e punës, ulin çmimin e shërbimeve:
- Kompanitë prodhuese integrojnë algoritme për analizën e defekteve në linjën e montimit.
- Fermat e bagëtive blejnë sisteme për kontrolin e lopëve.
- Kombajna automatike.
- Qendrat e automatizuara të thirrjeve.
- Filtra në SnapChat. (të paktën diçka e vlefshme!)
Por gjëja kryesore, dhe jo e dukshme: “Nuk ka më ide të reja, ose ato nuk do të sjellin kapital të menjëhershëm”. Rrjetet neurale kanë zgjidhur dhjetra probleme. Dhe do të zgjidhin edhe më shumë. Të gjitha idetë e dukshme që ishin — prodhuan shumë startup-e. Por gjithçka që ishte në sipërfaqe — është mbledhur tashmë. Në dy vitet e fundit, nuk kam takuar asnjë ide të re për aplikimin e rrjeteve neurale. Asnjë qasje të re (mirë, ok, ka disa ndërlikime me GAN-të).
Dhe çdo startup i ardhshëm bëhet gjithnjë e më i komplikuar. Ai kërkon jo vetëm dy djem që trajnojnë rrjetin neural me të dhëna të hapura. Ai kërkon programerë, server, një ekip etiketuesish, mbështetje të komplikuar, etj.
Si rezultat — startup-eve po ulet numri. Por prodhimi po rritet. Dështoni të beni njohjen e numrave të automjeteve? Në treg ka qindra specialistë me përvojë përkatëse. Mund të angazhoni dhe për disa muaj, punonjësi juaj do të krijojë sistemin. Ose të blini një të gatshme. Por të bëni një startup të ri?.. Marrësi!
Duhet të krijoni një sistem ndjekjeje të vizitorëve — pse të paguani për një mori licencash, kur mund të krijoni tuajin pas 3-4 muajsh, duke e përshtatur për biznesin tuaj.
Tani, rrjetet neuronale po kalojnë të njëjtin rrugë që kaluan dhjetra teknologji të tjera.
A e mbani mend si është ndryshuar kuptimi i "zhvilluesit të faqeve" që nga viti 1995? Deri në atë kohë, tregu nuk ka mbushur me specialistë. Profesionistët janë shumë të paktë. Por mund të debatoj se pas 5-10 vitesh nuk do të jetë ndonjë ndryshim i madh midis programuesve Java dhe zhvilluesve të rrjeteve neuronale. Të dyja këto specialitete do të jenë të mjaftueshme në treg.
Thjesht do të ketë një klasë detyrash për të cilat do të zgjidhen rrjetet neuronale. Pavarësisht se ndodh një problem — ju angazhoni një specialist.
“Çfarë vjen më pas? Ku është inteligjenca artificiale e premtuar?”
Këtu ka një moskuptim të vogël, por interesante :)
Stoku i teknologjive që ekziston sot, duket se nuk do na çojë në inteligjencën artificiale. Idetë, freskia e tyre — në shumë aspekte kanë shteruar. Le të flasim për atë që mban nivelin aktual të zhvillimit.
Kufizimet
Të fillojmë me automjetet pa pilot. Duket e qartë se krijimi i automjeteve plotësisht autonome me teknologjitë e sotme është i mundur. Por sa vite do të duhen për këtë — nuk është e qartë. Tesla mendon se kjo do të ndodhë brenda disa viteve —

Ka shumë të tjerë , të cilët e vlerësojnë këtë si 5-10 vjet.
Mendimi im është se ndoshta pas 15 vjetësh infrastruktura e qyteteve do të ndryshojë në mënyrë të tillë, që shfaqja e automjeteve autonome do të bëhet e pashmangshme, duke qenë vazhdim i saj. Por kjo nuk mund të konsiderohet inteligjencë. Tesla moderne është një linjë komplekse për filtrimin e të dhënave, kërkimin e tyre dhe ritrainimin. Këto janë rregulla-rregulla-rregulla, mbledhje të dhënash dhe filtra mbi to (ja kam shkruar pak më shumë për këtë, ose shikoni nga shënimi).
Problemi i parë
Dhe pikërisht këtu shohim problemin e parë themelor. Të dhënat e mëdha. Kjo është pikërisht ajo që krijoi valën e tanishme të rrjeteve neuronale dhe të mësuarit makinerik. Tani, për të bërë diçka komplekse dhe automatike nevojiten shumë të dhëna. Jo thjesht shumë, por shumë-shumë. Nevojiten algoritmo të automatizuara për mbledhjen, etiketimin dhe përdorimin e tyre. Nëse duam që makina të shohë kamionët ndaj diellit — duhet së pari të mbledhim një numër të mjaftueshëm të tyre. Nëse duam që makina të mos çmendet nga një biçikletë e lidhur pas bagazhit — na duhen më shumë mostra.
Për më tepër, një shembuj nuk është i mjaftueshëm. Qindra? Mijëra?

Problemi i dytë
Problemi i dytë — vizualizimi i asaj që rrjeti ynë neural ka kuptuar. Kjo është një detyrë shumë e ndërlikuar. Akoma pak kush e kupton se si ta vizualizojë këtë. Këto artikuj janë relativisht të rinj, dhe këto janë vetëm disa shembuj, edhe pse të largët:
përsëritjes mbi teksturat. Tregon mirë për çfarë është tendenca e neuronave për t'u përqendruar + çfarë e perceptojnë si informacion të bazës.

vëmendjes në . Realisht, ndihmës shpesh mund të përdoret pikërisht për të treguar se çfarë ka shkaktuar një reagim të tillë në rrjet. Kam hasur gjëra të tilla për debagimin dhe për zgjidhje produkti. Në këtë temë ka shumë artikuj. Por sa më të ndërlikuara të jenë të dhënat, aq më e vështirë është të kuptosh si të arrish një vizualizim të qëndrueshëm.

Po ashtu, moda e vjetër e thjeshtë të "shikosh çfarë ka brenda rrjetit në ". Këto imazhe ishin të njohura rreth 3-4 vjet më parë, por të gjithë e kuptuan shpejt se imazhet janë të bukura, por nuk kanë shumë kuptim.

Nuk kam përmendur dhjetëra truke të tjera, mënyra, hakte, kërkime për të treguar brendësinë e rrjetit. A funksionojnë këto mjete? A ndihmojnë ata të kuptojnë shpejt se çfarë është problemi dhe të debagojnë rrjetin?.. Të nxjerrin përqindjet e fundit? Epo, mbajtja është më e ngjashme:

Mund të shikoni çdo konkurim në Kaggle. Dhe përshkrimin e mënyrës se si njerëzit bëjnë zgjidhje përfundimtare. Ne grumbulluam 100-500-800 miliona modele dhe ai funksionoi!
Natyrisht, po e teproj. Por këto qasje nuk japin shpejt dhe drejtpërdrejt përgjigje.
Duke keni mjaft përvojë, duke provuar variante të ndryshme, mund të jepni një verdikt mbi arsyen pse sistemi juaj mori një vendim të tillë. Por, do të jetë e vështirë të korrigjoni sjelljen e sistemit. Të vendosni një zgjidhje të përkohshme, të ndryshoni pragun, të shtoni një dataset, të zgjidhni një rrjet tjetër backend.
Problemi i tretë
Problemi i tretë themelor — rrjetet mësojnë jo logjikën, por statistikën. Statistikat janë :

Logjikisht — nuk duket shumë e ngjashme. Rrjetet nervore nuk mësojnë diçka komplekse, nëse nuk detyrohen. Ato gjithmonë mësojnë karakteristikat më të thjeshta. A kanë sy, hundë, kokë? Atëherë kjo është një fytyrë! Ose sillni një shembull ku sytë nuk do të thonë fytyrë. Dhe prapë — miliona shembuj.
Ka shumë hapësirë në fund
Do të thosha se këto tri probleme globale, deri më sot, po kufizojnë zhvillimin e rrjeteve nervore dhe të mësimit të makinave. Ndërsa në ato raste ku këto probleme nuk kanë kufizuar — janë tashmë duke u përdorur aktivisht.
A është kjo fundi? Rrjetet nervore u ndalën?
Nuk dihet. Por, sigurisht, të gjithë shpresojnë që jo.
Ekzistojnë shumë qasje dhe drejtime për të zgjidhur ato probleme themelore që përmenda më parë. Por deri tani, asnjë nga këto qasje nuk ka lejuar të bëhet diçka themelore e re, të zgjidhet diçka që ende nuk është zgjidhur. Deri më tani, të gjithë projektet themelore bëhen në bazë të qasjeve të qëndrueshme (Tesla), ose mbeten projekte provuese të institucioneve apo korporatave (Google Brain, OpenAI).
Nëse flasim në terma të përgjithshëm, drejtimi kryesor është krijimi i një prezantimi të nivelit të lartë të të dhënave hyrëse. Në njëfarë kuptimi, një "memorie". Shembulli më i thjeshtë i memories është përfaqësimet e ndryshme "Embedding" të imazheve. Pra, p.sh., të gjitha sistemet e njohjes së fytyrave. Rrjeti mëson të krijojë një përfaqësim të qëndrueshëm nga fytyra që nuk varet nga kthesat, ndriçimi apo rezolucioni. Në thelb, rrjeti minimizon matjen "fytyrat e ndryshme - larg" dhe "të njëjtat - afër".

Për një mësim të tillë nevojiten dhjetra e qindra mijëra shembuj. Megjithatë, rezultati sjell disa elementi të "One-shot Learning". Tani nuk na nevojiten qindra fytyra për të mbajtur mend një person. Mjafton një fytyrë, dhe të gjitha - ne !
Por kaq problem... Rrjeti mund të mësojë vetëm objekte mjaft të thjeshta. Në përpjekje për të dalluar jo fytyrat, por, për shembull, "njerëzit sipas veshjeve" (detyrë ) — cilësia dështon në shumë nivele. Dhe rrjeti nuk mund të mësojë mjaft qartë ndryshimet e këndit.
Po ashtu, të mësojë nga miliona shembuj — gjithashtu nuk është një argëtim aq i këndshëm.
Ka pune për të reduktuar ndjeshëm përzgjedhjet. Për shembull, mund të kujtojmë menjëherë një nga punët e para për OneShot Learning :

Ka shumë punë të tilla, për shembull ose ose .
Një disavantazh është se zakonisht mësimi funksionon mirë në disa shembuj të thjeshtë, "MNIST-esque". Dhe kur kalojmë në detyra të nd complicated , nevojitet një bazë e madhe, një model objektesh, ose ndonjë magji.
Në përgjithësi, punët për One-Shot mësim janë një temë shumë interesante. Gjen shumë ide. Por kryesisht dy problemet që kam përmendur (para-mësimi në një grup të madh të dhënash / paqëndrueshmëria në të dhëna të komplikuara) — pengojnë mësimin shumë.
Nga ana tjetër, për temën e Embedding, qasjet GAN — rrjetet konkurruese gjeneruese. Sigurisht që keni lexuar një sërë artikujsh në këtë temë në Habré., ,)
Karakteristika GAN është formimi i një hapësire të brendshme gjendjesh (në thelb të njëjtën Embedding), e cila lejon vizatimin e një imazhi. Këto mund të jenë , mund të jenë .

Problemi i GAN është se sa më e komplikuar të jetë objekti i gjeneruar, aq më e vështirë është ta përshkruajmë atë në logjikën “gjenerator-diskriminator”. Nga aplikimet reale të GAN, që janë të njohura, kemi vetëm DeepFake, i cili përsëri manipilon me përfaqësimin e fytyrave (për të cilat ekziston një bazë e madhe).
Kam hasur shumë pak aplikime të tjera të dobishme. Zakonisht janë disa lodra të thjeshta që shtojnë imazhe.
Dhe përsëri, askush nuk ka një kuptim se si do të na ndihmojë të ecim drejt një të ardhme më të ndritur. Paraqitja e logjikës/hapësirës në një rrjet nervor është e mirë. Por ne na nevojitet një numër i madh shembujsh, nuk e kuptojmë se si rrjeti nervor e përfaqëson këtë, nuk e kuptojmë se si ta bëjmë atë të mbajë një përfaqësim të vërtetë të komplikuar.
Mësimi përforcues — është një qasje krejtësisht e ndryshme. Sigurisht ju kujtohet si Google ka dominuar në Go. Fitorët e fundit në Starcraft dhe Dota. Por këtu gjërat nuk janë ashtu të lumtura dhe plot perspektivë. Më së miri për RL dhe kompleksitetin e tij flet .
Nëse të përmbledhim shkurtimisht atë që shkruante autori:
- Modelet nga kutia nuk janë të përshtatshme/kanë performancë të dobët në shumicën e rasteve
- Detyrat praktike zgjidhen më lehtë në mënyra të tjera. Boston Dynamics nuk përdor RL për shkak të kompleksitetit/të paparashikueshmërisë/sfidave të llogaritjeve
- Për të funksionuar RL — nevojitet një funksion i komplikuar. Shpesh është e vështirë ta krijosh/shkruash
- Eshte e vështirë të trajnohen modelet. Duhet të harxhohet shumë kohë për t'i nxjerrë nga optimet lokale
- Si pasojë — e vështirë për të riprodhuar modelin, paqëndrueshmëri e modelit me ndryshime të vogla
- Oftë, modeli përshtatet ndjeshëm me ndonjë paradigëm të rastësishme, deri te gjeneratori i numrave të rastit
Pika kyçe — RL deri tani nuk funksionon në prodhim. Google ka disa eksperimente ( , ). Por nuk kam parë asnjë sistem produkti.
Kujtesë. Një nga pengesat e përmendura më lart është mosstrukturimi. Një nga qasjet për ta rregulluar këtë është të sigurohet që rrjeti nervor të ketë qasje në një kujtesë të veçantë. Kështu ajo mund të regjistrojë dhe rivendosë rezultatet e hapave të saj. Atëherë rrjeti nervor mund të përcaktohet nga gjendja aktuale e memories. Kjo është shumë e ngjashme me procesorët dhe kompjuterët klasikë.
Një nga më të njohurat dhe populloret — nga DeepMind:

Duket se ja çelësi për të kuptuar intelektin? Por ndoshta jo. Sistemi gjithsesi kërkon një sasi të madhe të dhënash për trajnim. Ai punon kryesisht me të dhënat e strukturuara në formë tabelash. Në të njëjtën kohë, kur Facebook një problem të ngjashëm, ata zgjodhën rrugën “na duhen më shumë shembuj, thjesht do ta bëjmë rrjetin më kompleks dhe ai do të mësojë vetë”.
Shkëputja. Një mënyrë tjetër për të krijuar kujtime të vlefshme është të marrim të njëjtat embedding, por gjatë trajnimit të shtojmë kritere të tjera që do të lejonin të dallonim ''kuptimet''. Për shembull, duam të trajnojmë një rrjet nervor për të dalluar sjelljen e një personi në dyqan. Nëse do të ndjekim rrugën standarde — do të duhej të krijonim një duzinë rrjetesh. Një kërkon personin, tjetra përcakton çfarë po bën ai, e treta moshën, e katërta — gjininë. Një logjikë e veçantë shqyrton pjesën e dyqanit ku ai vepron/ mëson mbi këtë. E treta përcakton trajektoren e tij, etj.
Ose, nëse do të kishte një mori të pakufizuar të dhënash, mund të trajnonim një rrjet të vetëm për të gjitha rezultatet e mundshme (është e qartë se një masë të tillë të dhënash nuk mund ta mbledhim).
Qasjet e dizajnimit na tregojnë se — le të mësojmë rrjetin në mënyrë që ai të mund të dallojë vetë konceptet. Të formojë një embed nga video, ku një zonë përcakton veprimin, një tjetër — pozicionin në dysheme në kohë, një tjetër — rritjen e njeriut, dhe një tjetër — gjininë e tij. Gjatë trajnimet, do të ishte mirë të mos e udhëzojmë rrjetin për këto ide kyçe, por të lejojmë që ai të identifikojë dhe grupojë zonat vetë. Ka shumë pak artikuj të tillë (disa prej tyre , , ) dhe në përgjithësi janë mjaft teorikë.
Por kjo drejtim, të paktën teorikisht, duhet të mbuloj problemet e përmendura më parë.

Shpërndarja e imazhit sipas parametrave “ngjyra e mureve/ngjyra e dyshemes/formati i objektit/ngjyra e objektit etj.”

Shpërndarja e fytyrës sipas parametrave “masa, këndet e eyebrows, orientimi, ngjyra e lëkurës etj.”
Të tjera
Ka shumë drejtime të tjera që nuk janë aq globale, që ndihmojnë në zvogëlimin e bazave, punimin me të dhëna më heterogjene, etj.
Vëmendje. Ndoshta, nuk ka kuptim të dallojmë këtë si një metodë të veçantë. Thjesht një qasje që forcon të tjerat. Ka shumë artikuj kushtuar saj (,,). Qëllimi i Vërejtjes është të forcojë reagimin e rrjetit ndaj objekteve të rëndësishme gjatë trajnimit. Shpesh kjo arrihet përmes një treguesi të jashtëm ose një rrjeti të vogël të jashtëm.
Simulimi 3D. Nëse krijoni një motor 3D të mirë, mund të mbuloni shpesh 90% të të dhënave për trajnim (kam parë madje një shembull ku pothuajse 99% e të dhënave u mbyllën nga një motor të mirë). Ekzistojnë shumë ide dhe hile se si ta bëni rrjetin e trajnuar në motorin 3D të funksionojë me të dhëna reale (Fine tuning, transferim stili, etj.). Por shpeshherë krijimi i një motori të mirë është shumë më i komplikuar se sa grumbullimi i të dhënave. Disa shembuj kur janë ndërtuar motorë:
Trajnimi i robotëve (, )
Edukimi produkteve në dyqan (por në dy projektet që kemi bërë, ne u rregulluam rehat pa këtë).
Trajnimi në Tesla (përsëri, ajo video që ishte më lart).
Përfundimet
Çdo artikull është në një farë mënyre përfundimi. Ndoshta mesazhi kryesor që doja të përcillja është: 'kostoja përfundoi, neuronët nuk ofrojnë më zgjidhje të thjeshta'. Tani duhet të punosh për të ndërtuar zgjidhje komplekse. Ose të punosh duke bërë hulumtime shkencore komplekse.
Në të vërtetë, tema është e diskutueshme. Ndoshta lexuesit kanë shembuj më interesantë?
Burimi: habr.com
