"Lielisks datu zinātnieks saņem algu kā vidēja uzņēmuma izpilddirektors." Yandex.Taxi mašīnmācības eksperts par to, kā dati prognozē nākotni un veido pasauli

Ir pagājis gandrīz gads, kopš FIFT tika uzsākts neparasts priekšmets - inovatīvā darbnīca. Tās būtība ir IT startup izveide, ko veic studentu komandas pieredzējušu mentoru vadībā. Tas izrādījās neslikti: pateicoties kursiem, kāds daļu vasaras pavadīja Kremieva ielejā, kāds saņēma dotāciju 800 000 rubļu apmērā projekta attīstībai, un ABBYY ir gatava pilnībā nopirkt projektu no kāda. Un tas nav visi semināra rezultāti!

2011. gada sākumā FIVT trešā kursa studenti tika sapulcināti aktu zālē un teica, ka nākamā gada laikā jums būs jāizveido savs startup. Skolēni šo ideju uztvēra neviennozīmīgi: vispār nebija skaidrs, kā to izdarīt, un atbildība bija neparasta – galu galā bija jāveido tehnoloģiju bizness, nevis kārtējais izglītības projekts. Lūk, ko par to domā uzvarētājs skolēnu olimpiāde MIPT fizikā, Jandeskas nodaļas students Viktors Kantors:

Kad izvēlējos FIVT uzņemšanas laikā, es cerēju, ka mums būs kaut kas līdzīgs. Tāpēc priecājos, ka necerēju velti. Gada laikā bija jūtams, ka kurss vēl tikai veidojas, daudz kas tajā ir jauns, daudzi jautājumi izrādās pretrunīgi ne tikai studentiem, bet arī organizatoriem, bet kopumā, manuprāt, tendences ir pozitīvas. Man patika šis kurss.

Lai atvieglotu studentu darbu, dažādi kuratori tika aicināti piedāvāt savas idejas inovatīvu uzņēmumu veidošanai. Viņu vidū bija pilnīgi dažādi cilvēki: no Maskavas Fizikas un tehnoloģiju institūta vecāko klašu studentiem un maģistrantiem līdz Ernst & Young inovāciju padomniekam Jurijam Pavlovičam Ammosovam (viņš bija visa kursa vadītājs) un Mihailam Batinam, kurš bija saistīts ar reģeneratīvo medicīnu un dzīvi. pagarināšanas problēmas. Rezultātā fiziķi izvēlējās sev interesantākās idejas, kuratori pievienojās komandām un sākās smags, bet aizraujošs darbs.

Gandrīz gada laikā, kas pagājis kopš tā laika, puiši ir saskārušies ar daudzām problēmām, no kurām dažas ir atrisinātas. Tagad var novērtēt viņu rezultātus – neskatoties uz grūtībām, puiši tika galā. MIPT studentiem (papildus Fizikas fakultātes procesam pievienojās arī daži FAPF un citu fakultāšu studenti) izdevās sagatavot vairākus diezgan interesantus un dzīvotspējīgus projektus:

Askeroid (agrāk Ask Droid) - viedtālruņu meklēšana ( Anastasija Urjaševa)

Android lietojumprogramma, kas ļauj ērti meklēt daudzās meklētājprogrammās. Daži eksperti izrādīja interesi par attīstību, un rezultātā Anastasija visu pagājušo vasaru pavadīja vienā no slavenākajiem Silīcija ielejas inkubatoriem - Plug&Play. apgūt tehnoloģiju uzņēmējdarbības pamatus un runāt ar starptautiskajiem riska kapitāla ekspertiem.

1minute.ru — viena minūte uz visiem laikiem (Ļevs Gruņins)

Šis projekts ļauj ikvienam vienkārši, ātri un pilnīgi bez maksas veikt labdarības darbu. Modelis ir vienkāršs: reklāmdevēji vietnē piedāvā noteiktu darbību kopumu, lietotāji tajās brīvprātīgi piedalās, visa reklāmas nauda tiek pārskaitīta labdarības fondam. Nedēļu pēc palaišanas projekts ir savācis vairāk nekā 6500 lietotāju un ar to neapstāsies. Rezultātā, pateicoties Levam un viņa komandai, saņems 600 bērnunamu bērni Jaunais gads lolotas dāvanas no Ziemassvētku vecīša. Vai esi jau veltījis vienu minūti labam darbam?!

Iegultā darbvirsma — dators tālrunī (Aleksejs Vukolovs)

Aplikācija, kas ļauj vienā korpusā apvienot datora iespējas un telefona mobilitāti, ir ārkārtīgi noderīgs produkts aizņemtiem cilvēkiem, kuri bieži dodas komandējumos. Pietiek to instalēt viedtālrunī, un lietotājs varēs “dabūt” savu datoru jebkurā viesnīcā, birojā un patiešām visur, kur var atrast monitoru (der arī televizors), tastatūru un peli. . Projekts saņēma grantu idejas attīstībai un tika prezentēts izstādē Tehnoloģiju kauss, un par saņemto naudu komanda jau aktīvi iegādājas aprīkojumu. Amerikāņu MIPS procesoru ražotājs ir ārkārtīgi ieinteresēts attīstībā.

Viedais marķieris — semantiskā meklēšana dokumentos (Viktors Kantors)

Ko darīt, ja atceraties, ka kaut kur pastkastītē bija ļoti svarīga vēstule, kurā tika runāts par jaunāko Lielā sprādziena teorijas sēriju, bet jūs neatceraties nevienu no teksta atslēgvārdiem? Yandex un Google meklēšana ir bezspēcīga. Talkā nāks Smart Tagger izstrāde – "viedā" programma, kas izmanto semantisko meklēšanu, dos jums visus tekstus, kuru nozīme savijas ar populāro seriālu. Projekts ieguva grantu U.M.N.I.K. kopējā summa 400 000 rubļu!

MathOcr — formulu atpazīšana (Viktors Pruns)

ABBYY piedāvāja interesantu uzdevumu īstenošanai - izveidot programmu, kas atpazītu jebkuras sarežģītības matemātiskās formulas. FIVT studenti, sadarbojoties ar ieinteresētajiem fopfiem, izpildīja uzdevumu - modulis patiešām atpazīst formulas, kas skenētas no mācību grāmatām par matānu vai fiziku. Rezultāts: ABBYY ir gatavs iegādāties šo produktu par lielu naudu.

- Vai varat izmantot pilnīgi primitīvu piemēru, lai pastāstītu, kā darbojas mašīnmācīšanās?

Var. Ir mašīnmācīšanās metodes piemērs, ko sauc par Lēmumu koku, kas ir viena no vecākajām lietām. Darīsim to tagad. Pieņemsim, ka abstrakts cilvēks uzaicina jūs uz randiņu. Kas tev ir svarīgi?

Pirmkārt, vai es viņu pazīstu vai nē...

(Viktors to raksta uz tāfeles.)

…Ja es nezinu, tad man jāatbild uz jautājumu, vai viņš ir pievilcīgs vai nē.

Un, ja jūs zināt, tas nav svarīgi? Es domāju, ka es to sapratu, tas ir draugu zonas atzars! Kopumā es rakstu, ja jūs nezināt un nepievilcīgi, tad atbilde ir "jā, nē, iespējams." Ja jūs zināt, atbilde ir jā.

– Ja es zinu, tas arī ir svarīgi!

Nē, tā būs draugu zonas filiāle.

Labi, tad norādīsim šeit, vai tas ir interesanti vai nē. Tomēr, kad cilvēku nepazīsti, pirmā reakcija ir uz izskatu, ar draugu jau skatāmies, ko un kā viņš domā.

Darīsim savādāk. Ambiciozs vai nē. Ja viņš ir ambiciozs, tad ar viņu būs grūti draudzēties, viņš gribēs vairāk. Un cietīs neambiciozie.

(Viktors pabeidz lēmumu koku.)

Gatavs. Tagad vari paredzēt, ar kuru puisi, visticamāk, dosies uz randiņu. Starp citu, daži iepazīšanās servisi paredz tādas lietas. Pēc analoģijas jūs varat paredzēt, cik daudz preču klienti iegādāsies un kur cilvēki atradīsies šajā diennakts laikā.

Atbildes var būt ne tikai "jā" un "nē", bet arī skaitļu veidā. Ja vēlaties precīzāku prognozi, varat izveidot vairākus šādus kokus un vidēji pār tiem. Un ar tik vienkāršu lietu jūs faktiski varat paredzēt nākotni.

Tagad iedomājieties, cik grūti cilvēkiem bija izdomāt šādu shēmu pirms divsimt gadiem? Noteikti nē! Šai shēmai nav nekādas raķešu zinātnes. Kā fenomens mašīnmācība pastāv apmēram pusgadsimtu. Ronalds Fišers sāka prognozēt, pamatojoties uz datiem, 20. gadsimta sākumā. Viņš paņēma īrisus un sadalīja tos pa kauslapu un ziedlapu garumu un platumu, pēc šiem parametriem viņš noteica auga veidu.

Mašīnmācīšanās nozare ir aktīvi izmantota pēdējās desmitgadēs: jaudīgas un salīdzinoši lētas mašīnas, kas nepieciešamas liela datu apjoma apstrādei, piemēram, šādiem lēmumu kokiem, parādījās ne tik sen. Bet tas joprojām ir elpu aizraujošs: mēs zīmējam šīs lietas katram uzdevumam un izmantojam tās, lai prognozētu nākotni.

- Nu, noteikti ne labāk par jebkuru futbola spēļu astoņkāju prognozētāju ...

Nē, nu, kur mums rūp astoņkāji. Lai gan mums ir vairāk mainīguma. Tagad ar mašīnmācības palīdzību jūs varat ietaupīt laiku, naudu un uzlabot dzīves komfortu. Mašīnmācība pirms dažiem gadiem pārspēja cilvēkus, kad runa bija par attēlu klasificēšanu. Piemēram, dators spēj atpazīt 20 terjeru šķirnes un parasts cilvēks Nē.

- Un, analizējot lietotājus, katrs cilvēks jums ir skaitļu kopums?

Aptuveni runājot, jā. Strādājot ar datiem, mēs aprakstām visus objektus, tostarp lietotāja uzvedību, ar noteiktu skaitļu kopu. Un šie skaitļi atspoguļo cilvēku uzvedības īpatnības: cik bieži viņi brauc ar taksometru, kādu taksometru klasi izmanto, uz kādām vietām parasti dodas.

Tagad mēs aktīvi veidojam līdzīgus modeļus, lai identificētu cilvēku grupas ar līdzīgu uzvedību. Kad ieviešam jaunu pakalpojumu vai vēlamies reklamēt veco, piedāvājam to interesentiem.

Piemēram, šeit mums ir serviss - divi bērnu sēdeklīši taksometrā. Mēs varam ar šo ziņu sūtīt surogātpastu ikvienam, vai arī mēs varam to adresēt tikai noteiktam cilvēku lokam. Gada laikā esam uzkrājuši noteiktu lietotāju skaitu, kuri komentāros rakstīja, ka vajag divus bērnu sēdeklīšus. Mēs tos atradām un cilvēkiem viņiem patīk. Parasti tie ir cilvēki, kas vecāki par 30 gadiem, kuri regulāri ceļo un mīl Vidusjūras virtuvi. Lai gan, protams, ir daudz vairāk zīmju, šis ir mans piemērs.

– Pat tādi smalkumi?

Tas ir vienkāršs jautājums. Viss tiek aprēķināts, izmantojot meklēšanas vaicājumus.

Un lietojumprogrammā tas var kaut kā darboties? Piemēram, jūs zināt, ka esmu ubags un abonēju tādas grupas kā "Kā izdzīvot ar 500 rubļiem mēnesī" - viņi man piedāvā tikai sasistas lētas automašīnas, es abonēju SpaceX ziņas - un ik pa laikam saņemu Teslu?

Tas var darboties šādā veidā, taču šādas lietas Yandex nav apstiprinātas, jo tā ir diskriminācija. Personalizējot pakalpojumu, labāk piedāvāt nevis pieņemamāko, bet labāko pieejamo un to, kas cilvēkam patīk. Un sadale pēc loģikas “šim vajag labāku auto, bet šim mazāk labu” ir ļauns.


Katram ir perversas vēlmes, un reizēm jāatrod nevis kāda Vidusjūras ēdiena recepte, bet, piemēram, bildes par koprofiliju. Vai personalizācija darbosies arī šajā gadījumā?

Vienmēr ir privātais režīms.

Ja es nevēlos, lai kāds zinātu par manām interesēm vai, teiksim, draugi nāk pie manis un vēlas noskatīties kādu miskasti, tad labāk izmantot inkognito režīmu.

Varat arī izlemt, kura uzņēmuma pakalpojumu izmantot, piemēram, Yandex vai Google.

- Vai ir atšķirība?

Grūts jautājums. Es nezinu par citiem, bet Yandex stingri ievēro personas datu aizsardzību. Īpaši uzraudzīt darbiniekus.

- Tas ir, ja es izšķīros ar puisi, es nevarēšu uzzināt, vai viņš devās uz šo vasarnīcu vai nē?

Pat ja jūs strādājat Yandex. Tas, protams, ir skumji, bet jā, to nebūs iespējams noskaidrot. Lielākajai daļai darbinieku pat nav piekļuves šiem datiem. Viss ir šifrēts. Tas ir vienkārši: jūs nevarat izspiegot cilvēkus, tā ir personas informācija.

Starp citu, mums bija interesants gadījums par šķiršanos ar puišiem. Kad veicām punkta "B" – galapunkta pareģošanu taksī, ieviesām mājienus. Šeit skaties.

(Viktors ieiet Yandex.Taxi lietojumprogrammā.)

Piemēram, taksis domā, ka esmu mājās. Piedāvā man doties vai nu uz darbu, vai uz RUDN Universitāti (tur lasu lekcijas kursa ietvaros par mašīnmācība Datu ieguve darbībā). Un kādā brīdī, izstrādājot šos ieteikumus, mēs sapratām, ka mums nav nepieciešams kompromitēt lietotāju. Punktu "B" ikviens var redzēt. Šo iemeslu dēļ mēs atteicāmies piedāvāt vietas pēc līdzības. Un tad tu sēdi pieklājīgā vietā ar kārtīgiem cilvēkiem, pasūti taksometru, un viņi tev tur raksta: “Redzi, tu vēl neesi bijis šajā bārā!”

- Kādi zilie punkti mirgo jūsu kartē?

Tie ir savākšanas punkti. Šie punkti parāda, kur visērtāk izsaukt taksometru. Galu galā, jūs varat zvanīt vietā, kur būs diezgan neērti zvanīt. Bet vispār var zvanīt jebkur.

- Jā, jebkurā. Es kaut kā nolidoju divus blokus ar to.

IN Nesen ar GPS bija dažādas grūtības, tas noveda pie dažādām smieklīgām situācijām. Cilvēki, piemēram, uz Tverskas, navigācija izmeta cauri Klusais okeāns. Kā redzat, reizēm gadās garām un vairāk nekā divi bloki.

- Un, ja jūs restartējat lietojumprogrammu un atkal bakstāt, cena mainās par dažiem rubļiem. Kāpēc?

Ja pieprasījums pārsniedz piedāvājumu, tad algoritms automātiski ģenerē reizinātāju – tas palīdz tiem, kam pēc iespējas ātrāk jābrauc, izmantot taksometru pat liela pieprasījuma periodos. Starp citu, izmantojot mašīnmācīšanos, var paredzēt, kur būs lielāks pieprasījums, piemēram, stundā. Tas palīdz mums pastāstīt autovadītājiem, kur būs vairāk pasūtījumu, lai piedāvājums atbilstu pieprasījumam.

– Vai jums nešķiet, ka Yandex.Taxi drīz nogalinās visu taksometru tirgu?

ES domāju, ka nē. Mēs esam par veselīgu konkurenci un no tās nebaidāmies.

Es pats, piemēram, izmantoju dažādus taksometru pakalpojumus. Man svarīgs ir gaidīšanas laiks, tāpēc skatos vairākus pieteikumus, kurš taksometrs atbrauks ātrāk.


- Jūs apvienojāties ar Uber. Priekš kam?

Tā nav mana vieta komentēt. Manuprāt, apvienošanās ir ļoti saprātīgs lēmums.

Vācijā viens puisis uz droniem uzstādīja vannu un aizlidoja pēc burgera. Vai esat domājis, ka ir pienācis laiks apgūt gaisa telpu?

Par gaisa telpām nezinu. Sekojam līdzi jaunumiem “Uber launched taxi boats” garā, bet par gaisu neko nevaru pateikt.

Kā ar dronu taksometriem?

Šeit ir interesants punkts. Mēs tos izstrādājam, bet mums ir jādomā, kā tos tieši izmantot. Pagaidām ir pāragri prognozēt, kā un kad tie parādīsies ielās, taču cītīgi strādājam, lai izstrādātu tehnoloģiju pilnībā autonomai automašīnai, kur cilvēks vadītājs nemaz nav vajadzīgs.

– Vai pastāv bažas, ka bezpilota lidaparātu programmatūra var tikt uzlauzta, lai vadītu iekārtu attālināti?

Riski pastāv vienmēr un visur, kur ir tehnoloģijas un sīkrīki. Taču līdz ar tehnoloģiju attīstību attīstās arī cits virziens - to aizsardzība un drošība. Pie aizsardzības sistēmām strādā visi, kas tādā vai citādā veidā ir saistīti ar tehnoloģiju izstrādi.

- Kādus lietotāju datus jūs apkopojat un kā tos aizsargājat?

Mēs apkopojam neidentificētus lietošanas datus, piemēram, kur, kad un kur jūs ceļojāt. Viss svarīgais ir sajaukts.

– Vai, jūsuprāt, droni samazinās darba vietu skaitu?

Es domāju, ka tas kļūs tikai lielāks. Tomēr arī šie droni ir kaut kā jāapkopj. Tas, protams, ir nedaudz stresa situācija, mainīt specialitāti, bet ko darīt.

– Grefs katrā savā lekcijā saka, ka cilvēks mainīs profesiju vismaz trīs reizes dramatiski.

Es nevaru nosaukt nevienu specialitāti, kas būtu mūžīga. Izstrādātājs visu mūžu nestrādā vienā valodā un ar tām pašām tehnoloģijām. Visur ir jābūvē no jauna. Izmantojot mašīnmācību, es skaidri jūtu, kā puiši, kas ir sešus gadus jaunāki par mani, ir daudz ātrāki par mani. Tajā pašā laikā cilvēki vecumā no 40 vai 45 gadiem to izjūt vēl spēcīgāk.

Vai pieredzei vairs nav nozīmes?

Lugas. Bet metodes mainās, var nonākt jomā, kur, piemēram, dziļā mācīšanās netika izmantota, kādu laiku tur pastrādā, tad visur tiek ieviestas dziļās mācīšanās metodes, un tu no tā neko nesaproti. Un viss. Jūsu pieredze var būt noderīga tikai komandas plānošanā, un ne vienmēr.

– Un jūsu profesija ir datu zinātnieks, vai tā ir pieprasīta?

Pieprasījums pēc datu zinātniekiem strauji pieaug. Ir skaidrs, ka tagad ir ārprātīgas ažiotāžas periods. Paldies Dievam, blokķēde nedaudz palīdzēja mazināt šo ažiotāžu. Blockchain speciālisti tiek demontēti vēl ātrāk.

Taču daudzi uzņēmumi tagad domā, ka, ieguldot mašīnmācībā, viņu dārzi nekavējoties uzziedēs. Tā nav taisnība. Mašīnmācībai vajadzētu atrisināt konkrētas problēmas, nevis tikai pastāvēt.

Ir reizes, kad banka vēlas izveidot rekomendatoru apkalpošanas sistēmu lietotājiem. Jautājam: "Vai jūs domājat, ka tas būs ekonomiski pamatoti?" Viņi atbild: “Jā, mums ir vienalga. Izdari to. Ikvienam ir ieteikuma sistēmas, mēs būsim tendencē.

Sāpe ir tāda, ka kaut ko patiešām noderīgu biznesam nevar izdarīt vienā dienā. Jāskatās, kā sistēma tiks apmācīta. Un viņa vienmēr sākumā strādā ar kļūdām, treniņa laikā viņai var pietrūkt kādu datu. Jūs labojat kļūdas, pēc tam izlabojat tās vēlreiz un pat visu atkārtojat. Pēc tam ir jākonfigurē tā, lai sistēma darbotos ražošanā, lai tā būtu stabila un mērogojama, vēl ir laiks. Rezultātā viens projekts aizņem sešus mēnešus, gadu vai vairāk.


Ja uz mašīnmācīšanās metodēm skatās kā uz melno kasti, tad var viegli palaist garām, kā sāk notikt kādas muļķības. Ir bārdains stāsts. Militāristi lūdza izstrādāt algoritmu, ar kuru var analizēt, vai attēlā ir vai nav tanks. Pētnieki taisīja, pārbaudīja, kvalitāte izcila, viss lieliski, iedeva militārpersonām. Atnāk militāristi un saka, ka nekas nestrādā. Zinātnieki sāk nervozi saprast. Izrādās, ka visās bildēs ar tanku, ko militāristi atveda, stūrī ar pildspalvu bija atzīme. Algoritms lieliski iemācījās atrast ķeksīti, tas neko nezināja par tvertni. Protams, uz jaunajām bildēm nebija atzīmju.

Es satiku bērnus, kuri izstrādā paši savas dialoga sistēmas. Vai esat kādreiz domājuši, ka jums ir jāsadarbojas ar bērniem?

Jau labu laiku eju uz visādiem pasākumiem skolēniem, lasu lekcijas par mašīnmācību. Un, starp citu, vienu no tēmām man iemācīja desmitās klases skolniece. Biju pilnīgi pārliecināta, ka mans stāsts būs labs un interesants, lepojos ar sevi, sāku raidīt, un meitene teica: "Ak, mēs gribam minimizēt šo lietu." Skatos un domāju, bet tiešām, kāpēc, un patiesību var samazināt līdz minimumam, un nekas īpašs šeit nav jāpierāda. Pagājuši jau vairāki gadi, tagad viņa klausās mūsu lekcijas kā Phystech studente. Starp citu, Yandex ir Yandex.Lyceum, kurā skolēni var bez maksas iegūt programmēšanas pamatzināšanas.

- Konsultējiet universitātes un fakultātes, kurās tagad māca mašīnmācību.

Ir Maskavas Fizikas un tehnoloģiju institūts, FIVT un FUPM fakultātes. HSE ir arī brīnišķīga datorzinātņu nodaļa un Maskavas Valsts universitātē mašīnmācība. Tagad jūs varat klausīties mūsu kursu RUDN Universitātē.

Kā jau teicu, šī profesija ir pieprasīta. Ļoti ilgu laiku cilvēki, kas ieguva tehnisko izglītību, nodarbojās ar pilnīgi dažādām lietām. Mašīnmācība ir brīnišķīgs piemērs, kad visas lietas, no kurām cilvēki mācījās tehniskā izglītība, tagad ir tieši vajadzīgi, noderīgi un labi apmaksāti.

- Cik labi?

Nosauciet summu.

- 500 tūkstoši mēnesī.

Jūs varat, tikai nebūdams parasts datu zinātnieks. Bet dažos uzņēmumos ļoti, ļoti praktikants par vienkāršu darbu var saņemt 50 tūkstošus.. Ir ļoti plaša izkliede. Vispār forša datu zinātnieka algu var salīdzināt ar kāda vidusmēra uzņēmuma izpilddirektora algu. Daudzos uzņēmumos papildus algai darbiniekam krīt daudz labumi un, ja ir skaidrs, ka cilvēks nav nācis, lai CV ierakstītu labu zīmolu, bet gan lai tiešām strādātu, tad ar to viss būs kārtībā. viņu.

ABC AI projekta ietvaros kopīgi ar MIPT jau esam rakstījuši par tā sauktajām, kas ļauj “audzēt” programmas pēc Darvina evolūcijas principiem un likumiem. Tomēr, lai gan šāda pieeja mākslīgajam intelektam, protams, ir "viesis no nākotnes". Bet kā sistēmas mākslīgais intelekts izveidot šodien? Kā viņi tiek apmācīti? Viktors Kantors, Maskavas Fizikas un tehnoloģijas institūta Algoritmu un programmēšanas tehnoloģiju katedras vecākais pasniedzējs, Lietotāju uzvedības analīzes grupas vadītājs, palīdzēja mums to noskaidrot. Yandex dati rūpnīca.

Saskaņā ar jaunāko ziņojumu no pētījumu firmas Gartner, kas regulāri atjaunina savu tehnoloģiju brieduma ciklu, no visa IT mašīnmācība šodien ir visaugstākajā līmenī. Tas nav pārsteidzoši: pēdējos gados mašīnmācība ir izgājusi no šaura matemātiķu un algoritmu teorijas speciālistu interešu sfēras un vispirms ir iekļuvusi IT uzņēmēju leksikā, bet pēc tam pasaulē. parastajiem cilvēkiem. Tagad, kad ir tāda lieta kā neironu tīkli ar savu īpašo "maģiju", ikviens, kurš ir izmantojis Prisma lietotni, meklējis dziesmas, izmantojot Shazam, vai redzējis attēlus, kas nodoti caur DeepDream.

Tomēr viena lieta ir izmantot tehnoloģiju un cita lieta, lai saprastu, kā tā darbojas. Parastie vārdi, piemēram, "dators var iemācīties, ja dodat tam mājienu" vai "neironu tīkls sastāv no digitāliem neironiem un ir sakārtots kā cilvēka smadzenes", var kādam palīdzēt, taču biežāk tie tikai sajauc situāciju. Tiem, kuri gatavojas nopietni nodarboties ar matemātikas mācīšanos, nav vajadzīgi populāri teksti: viņiem ir mācību grāmatas un lieliski tiešsaistes kursi. Mēs centīsimies iet vidusceļu: izskaidrosim, kā patiesībā notiek mācīšanās, veicot visvienkāršāko iespējamo uzdevumu, un pēc tam parādīsim, kā to pašu pieeju var izmantot, lai atrisinātu patiesi interesantas problēmas.

Kā mašīnas mācās

Sākumā, lai precīzi saprastu, kā notiek mašīnmācīšanās, definēsim jēdzienus. Kā definējis viens no nozares pionieriem Arturs Samuels, mašīnmācīšanās attiecas uz metodēm, kas "ļauj datoriem mācīties bez tiešas programmēšanas". Ir divas plašas mašīnmācīšanās metožu klases: uzraudzīta mācīšanās un bez uzraudzības. Pirmo izmanto, kad, piemēram, jāiemāca datoram meklēt fotogrāfijas ar kaķu attēlu, otro - kad mašīna ir nepieciešama, piemēram, lai varētu patstāvīgi sagrupēt ziņas stāstos, kā tas notiek tādiem pakalpojumiem kā Yandex.News vai Google News. Tas ir, pirmajā gadījumā mums ir darīšana ar uzdevumu, kas nozīmē pareizas atbildes esamību (kaķis fotoattēlā ir vai nav), otrajā - nav vienas pareizās atbildes, bet ir Dažādi ceļi problēmu risināšana. Mēs koncentrēsimies uz pirmo problēmu klasi kā visinteresantākajām.

Tātad mums jāiemāca dators veikt dažas prognozes. Un, vēlams, pēc iespējas precīzāk. Prognozes var būt divu veidu: vai nu jāizvēlas starp vairākiem atbilžu variantiem (attēlā ir kaķis vai nav - šī ir viena izvēle no diviem, iespēja atpazīt burtus attēlos ir viena izvēle opciju no vairākiem desmitiem un tā tālāk), vai veiciet skaitlisku prognozi . Piemēram, prognozējiet cilvēka svaru, pamatojoties uz viņa augumu, vecumu, apavu izmēru utt. Šie divu veidu problēmas tikai izskatās atšķirīgi; patiesībā tās tiek atrisinātas gandrīz vienādi. Mēģināsim saprast, kā.

Pirmā lieta, kas mums jāizveido, lai izveidotu prognozēšanas sistēmu, ir savākt tā saukto treniņu paraugu, tas ir, datus par cilvēku svaru populācijā. Otrais ir izlemt par pazīmju kopumu, pamatojoties uz kuru mēs varam izdarīt secinājumus par svaru. Skaidrs, ka viena no "spēcīgākajām" no šīm pazīmēm būs cilvēka izaugsme, tāpēc, kā pirmo tuvinājumu, pietiek ņemt tikai to. Ja svars lineāri ir atkarīgs no auguma, tad mūsu prognoze būs ļoti vienkārša: cilvēka svars būs vienāds ar viņa augumu, kas reizināts ar kādu koeficientu, plus kādu nemainīgu vērtību, ko raksta ar vienkāršāko formulu y \u003d kx + b. Viss, kas mums jādara, lai apmācītu mašīnu prognozēt cilvēka svaru, ir kaut kādā veidā atrast pareizās k un b vērtības.

Mašīnmācības skaistums ir tāds, ka pat tad, ja atkarība, kuru mēs pētām, ir ļoti sarežģīta, mūsu pieejā būtībā ir maz ko mainīt. Mēs joprojām saskarsimies ar to pašu regresiju.

Teiksim, cilvēka augums cilvēka svaru ietekmē nevis lineāri, bet līdz trešajai pakāpei (kas vispār ir sagaidāms, jo svars ir atkarīgs no ķermeņa tilpuma). Lai ņemtu vērā šo atkarību, mēs savā vienādojumā vienkārši ievadām vēl vienu terminu, proti, trešo pieauguma pakāpi ar savu koeficientu, vienlaikus iegūstot y=k 1 x+k 2 x 3 +b. Tagad, lai apmācītu mašīnu, mums būs jāatrod nevis divas, bet trīs vērtības (k 1, k 2 un b). Pieņemsim, ka savā prognozē vēlamies ņemt vērā cilvēka apavu izmēru, vecumu, laiku, ko viņš pavadīja, skatoties televizoru, kā arī attālumu no dzīvokļa līdz tuvākajai ātrās ēdināšanas vietai. Nav problēmu: mēs vienkārši ievietojam šīs funkcijas kā atsevišķus terminus vienā vienādojumā.

Vissvarīgākais ir radīt universāls veids atrast vajadzīgos koeficientus (k 1 , k 2 , … k n). Ja tā ir, tad mums būs gandrīz vienaldzīgi, kuras funkcijas izmantot prognozēšanai, jo mašīna pati iemācīsies piešķirt lielu svaru svarīgām, bet mazsvarīgām funkcijām. Par laimi, šāda metode jau ir izgudrota, un tajā veiksmīgi darbojas gandrīz visa mašīnmācība: no vienkāršākajiem lineārajiem modeļiem līdz sejas atpazīšanas sistēmām un runas analizatoriem. Šo metodi sauc par gradienta nolaišanos. Bet pirms paskaidrot, kā tas darbojas, mums ir jāveic neliela atkāpe un jārunā par neironu tīkliem.

Neironu tīkli

2016. gadā neironu tīkli tik cieši iekļuva informācijas programmā, ka gandrīz tika identificēti ar jebkuru mašīnmācību un progresīvu IT kopumā. Formāli runājot, tā nav taisnība: neironu tīkli ne vienmēr tiek izmantoti matemātikas apguvē, ir arī citas tehnoloģijas. Bet kopumā, protams, šāda saistība ir saprotama, jo tieši sistēmas, kuru pamatā ir neironu tīkli, tagad dod vislielākos “maģiskos” rezultātus, piemēram, spēju meklēt cilvēku pēc fotoattēla, aplikāciju parādīšanās, kas pārsūta viena attēla stils uz otru vai sistēmas tekstu ģenerēšanai noteiktas personas runas manierē.

Tas, kā ir sakārtoti neironu tīkli, jau mēs. Šeit es tikai gribu uzsvērt, ka neironu tīklu spēks, salīdzinot ar citām mašīnmācīšanās sistēmām, slēpjas to daudzslāņainībā, taču tas nepadara tos par kaut ko būtiski atšķirīgu darba veida ziņā. Slāņošana patiešām ļauj atrast ļoti abstraktu kopīgas iezīmes un sarežģītu funkciju kopu atkarības, piemēram, pikseļi attēlā. Bet ir svarīgi saprast, ka mācīšanās principu ziņā neironu tīkls radikāli neatšķiras no parasto lineārās regresijas formulu kopas, tāpēc tā pati gradienta nolaišanās metode lieliski darbojas arī šeit.

Neironu tīkla “spēks” slēpjas neironu starpslāņa klātbūtnē, kas apvieno ievades slāņa vērtības summējot. Šī iemesla dēļ neironu tīkli var atrast ļoti abstraktus datu elementus, kurus ir grūti reducēt līdz vienkāršām formulām, piemēram, lineārām vai kvadrātiskām attiecībām.

Paskaidrosim ar piemēru. Mēs izvēlējāmies prognozi, kurā cilvēka svars ir atkarīgs no viņa auguma un garuma kubā, ko izsaka ar formulu y=k 1 x+k 2 x 3 +b. Ar zināmu stiepšanos, bet patiesībā pat šādu formulu var saukt par neironu tīklu. Tajā, tāpat kā parastajā neironu tīklā, ir pirmais “neironu” slānis, kas ir arī pazīmju slānis: tie ir x un x 3 (labi, “viens neirons”, ko mēs paturam prātā un kuram ir atbildīgs koeficients b). Augšējo jeb iegūto slāni attēlo viens "neirons" y, tas ir, cilvēka paredzamais svars. Un starp pirmo un pēdējo "neironu" slāni ir savienojumi, kuru stiprumu vai svaru nosaka koeficienti k 1 , k 2 un b. Apmācīt šo "neironu tīklu" nozīmē vienkārši atrast tos pašus koeficientus.

Vienīgā atšķirība no "īstajiem" neironu tīkliem šeit ir tāda, ka mums nav neviena starpposma (vai slēptā) neironu slāņa, kura uzdevums ir apvienot ievades funkcijas. Šādu slāņu ieviešana ļauj nevis izdomāt iespējamās atkarības starp pieejamajām funkcijām “no galvas”, bet gan paļauties uz to jau esošajām kombinācijām neironu tīklā. Piemēram, vecums un vidējais TV laiks var sinerģiski ietekmēt cilvēka svaru, bet, ja ir neironu tīkls, mums tas nav jāzina iepriekš un jāievada viņu produkts formulā. Neironu tīklā noteikti būs neirons, kas apvieno jebkuru divu pazīmju ietekmi, un, ja šī ietekme patiešām ir manāma paraugā, tad pēc treniņa šis neirons automātiski saņems lielu svaru.

gradienta nolaišanās

Tātad mums ir apmācību piemēru kopums ar zināmiem datiem, tas ir, tabula ar precīzi izmērītu cilvēka svaru un dažas atkarības hipotēzes. Šis gadījums lineārā regresija y=kx+b. Mūsu uzdevums ir atrast pareizās k un b vērtības, nevis manuāli, bet automātiski. Un vēlams, universāla metode, kas nav atkarīga no formulā iekļauto parametru skaita.

To izdarīt kopumā ir viegli. Galvenā ideja ir izveidot funkciju, kas mērīs pašreizējo kopējo kļūdu līmeni un “sagriezīs” koeficientus tā, lai kopējais kļūdu līmenis pakāpeniski samazinātos. Kā samazināt kļūdu līmeni? Mums ir jāpielāgo savi parametri pareizajā virzienā.

Iedomājieties mūsu divus parametrus, ko mēs meklējam, to pašu k un b, kā divus virzienus plaknē kā ziemeļu-dienvidu un rietumu-austrumu asis. Katrs punkts šādā plaknē atbildīs noteiktai koeficientu vērtībai, noteiktai specifiskai auguma un svara attiecībai. Un katram šādam punktam plaknē mēs varam aprēķināt kopējo kļūdu līmeni, ko šī prognoze dod katram no mūsu izlases piemēriem.

Izrādās kaut kas līdzīgs konkrētam augstumam lidmašīnā, un visa apkārtējā telpa sāk atgādināt kalnu ainavu. Kalni ir punkti, kur kļūdu līmenis ir ļoti augsts, ielejas ir vietas, kur kļūdu ir mazāk. Ir skaidrs, ka apmācīt mūsu sistēmu nozīmē atrast zemāko punktu uz zemes, punktu, kurā kļūdu līmenis ir minimāls.

Kā jūs varat atrast šo punktu? Pareizākais veids ir visu laiku virzīties uz leju no vietas, kur mēs sākotnēji nonācām. Tātad agri vai vēlu nonāksim līdz lokālajam minimumam – punktam, zem kura tuvākajā apkārtnē nekā nav. Turklāt vēlams spert dažāda lieluma pakāpienus: kad nogāze ir stāva, var kāpt platāk, ja slīpums mazs, labāk piezagties līdz vietējam minimumam "uz pirkstgaliem", pretējā gadījumā var izslīdēt cauri.

Gradienta nolaišanās darbojas šādi: mēs mainām objektu svarus kļūdas funkcijas lielākā krituma virzienā. Mēs tos mainām iteratīvi, tas ir, ar noteiktu pakāpienu, kura vērtība ir proporcionāla nogāzes stāvumam. Interesanti, ka, palielinoties pazīmju skaitam (pievienojot cilvēka auguma, vecuma, apavu izmēra un tā tālāk kubu), patiesībā nekas nemainās, vienkārši mūsu ainava kļūst nevis divdimensiju, bet gan daudzdimensionāla.

Kļūdas funkciju var definēt kā visu to noviržu kvadrātu summu, kuras pašreizējā formula pieļauj cilvēkiem, kuru svaru mēs jau precīzi zinām. Paņemsim dažus nejaušie mainīgie k un b, piemēram, 0 un 50. Tad sistēma mums prognozēs, ka katras personas svars izlasē vienmēr ir 50 kilogrami y=0×x+50 Grafikā šāda atkarība izskatīsies kā taisne līnija, kas ir paralēla horizontālajai līnijai. Skaidrs, ka šī nav pārāk laba prognoze. Tagad ņemsim svara novirzi no šīs prognozētās vērtības, izlīdzināsim to kvadrātā (lai tiktu ņemtas vērā arī negatīvās vērtības) un summējam - tā būs kļūda šajā brīdī. Ja esat iepazinies ar analīzes sākumu, varat pat precizēt, ka lielākā krituma virzienu nosaka kļūdas funkcijas daļējais atvasinājums attiecībā pret k un b, un solis ir vērtība, kas tiek izvēlēta no praktiski apsvērumi: mazo soļu aprēķināšana prasa daudz laika, un lieli soļi var novest pie tā, ka mēs nokavēsim minimumu.

Labi, bet ja mums nav tikai sarežģīta regresija ar daudzām funkcijām, bet arī īsts neironu tīkls? Kā šajā gadījumā piemērot gradienta nolaišanos? Izrādās, ka gradienta nolaišanās darbojas tieši tāpat ar neironu tīklu, tikai mācīšanās notiek 1) pa posmiem, no slāņa uz slāni un 2) pakāpeniski, no viena piemēra paraugā uz otru. Šeit izmantotā metode tiek saukta par backpropagation, un to 1974. gadā neatkarīgi aprakstīja padomju matemātiķis Aleksandrs Galuškins un Hārvardas universitātes matemātiķis Pols Džons Vebross.

Lai gan algoritma stingrai prezentācijai būs nepieciešams izrakstīt daļējus atvasinājumus (kā, piemēram), intuitīvā līmenī viss notiek pavisam vienkārši: katram no paraugā iekļautajiem piemēriem mums ir noteikta prognoze plkst. neironu tīkla izvade. Ja ir pareizā atbilde, mēs varam atņemt pareizo atbildi no prognozes un tādējādi iegūt kļūdu (precīzāk, kļūdu kopu katram izvades slāņa neironam). Tagad mums ir jāpārnes šī kļūda uz iepriekšējo neironu slāni, un jo vairāk šis konkrētais šī slāņa neirons veicināja kļūdu, jo vairāk mums ir jāsamazina tā svars (patiesībā mēs atkal runājam par daļēja atvasinājuma ņemšanu, par pārvietošanos pa mūsu iedomātās ainavas maksimālo stāvumu) . Kad esam to izdarījuši, tā pati procedūra ir jāatkārto nākamajam slānim, virzoties pretējā virzienā, tas ir, no neironu tīkla izejas uz ievadi.

Šādā veidā izejot cauri neironu tīklam ar katru apmācības parauga piemēru un “pagriežot” neironu svaru pareizajā virzienā, galu galā vajadzētu iegūt apmācītu neironu tīklu. Backpropagation metode ir vienkārša gradienta nolaišanās metodes modifikācija daudzslāņu neironu tīkliem, un tāpēc tai vajadzētu darboties jebkuras sarežģītības neironu tīklos. Šeit mēs sakām “vajadzētu”, jo patiesībā ir gadījumi, kad gradienta nolaišanās neizdodas un neļauj veikt labu regresiju vai apmācīt neironu tīklu. Ir noderīgi zināt, kas izraisa šādas grūtības.

Gradienta nolaišanās grūtības

Nepareiza absolūtā minimuma izvēle. Gradienta nolaišanās metode palīdz atrast lokālu ekstrēmu. Bet mēs ne vienmēr varam to izmantot, lai sasniegtu funkcijas absolūto globālo minimumu vai maksimumu. Tas notiek tāpēc, ka, pārvietojoties pa antigradientu, mēs apstājamies brīdī, kad sasniedzam pirmo lokālo minimumu, ar kuru sastopamies, un algoritms pārtrauc savu darbību.

Iedomājieties, ka jūs stāvat kalna virsotnē. Ja vēlaties nolaisties līdz zemākajai virsmai apgabalā, gradienta nolaišanās metode ne vienmēr jums palīdzēs, jo pirmais zemākais punkts jūsu ceļā ne vienmēr ir zemākais punkts. Un, ja dzīvē spēj ieraudzīt, ka ir vērts nedaudz pakāpties uz augšu un pēc tam var vēl zemāk, tad algoritms šādā situācijā vienkārši apstāsies. Bieži vien no šīs situācijas var izvairīties, izvēloties pareizo soli.

Nepareiza soļa izvēle. Gradienta nolaišanās metode ir iteratīva metode. Tas ir, mums pašiem ir jāizvēlas soļa izmērs - ātrums, ar kādu mēs nolaižamies. Izvēloties pārāk lielu pakāpienu, varam aizlidot garām vajadzīgajam ekstrēmam un neatrast minimumu. Tas var notikt, ja jūs saskaraties ar ļoti strauju nolaišanos. Un pārāk maza soļa izvēle draud ar ārkārtīgi lēnu algoritma darbību, ja atrodamies uz salīdzinoši līdzenas virsmas. Ja atkal iedomājamies, ka atrodamies stāva kalna virsotnē, tad var izvērsties situācija, kad ļoti stāva nobrauciena dēļ tuvu minimumam vienkārši pārlidosim tam pāri.

Tīkla paralīze. Dažreiz gadās, ka ar gradienta nolaišanās metodi vispār neizdodas atrast minimumu. Tas var notikt, ja abās minimuma pusēs ir vienādi laukumi - algoritms, trāpījis līdzenam laukumam, samazina soli un galu galā apstājas. Ja, stāvot kalna virsotnē, nolemjat pārcelties uz savu māju zemienē, ceļš var būt pārāk garš, ja nejauši noklīsiet uz ļoti līdzenas vietas. Vai arī, ja plakano laukumu malās ir praktiski stāvas “nogāzes”, algoritms, izvēloties ļoti lielu pakāpienu, pārlēks no vienas nogāzes uz otru, praktiski nevirzoties uz minimumu.

Visi šie sarežģītie punkti ir jāņem vērā, izstrādājot mašīnmācīšanās sistēmu. Piemēram, vienmēr ir lietderīgi precīzi izsekot, kā kļūdas funkcija mainās laika gaitā – vai tā iekrīt ar katru jaunu ciklu vai iezīmē laiku, kā mainās šī krituma raksturs atkarībā no soļa lieluma izmaiņām. Lai netrāpītu sliktajā lokālajā minimumā, var būt noderīgi sākt no dažādiem nejauši izvēlētiem ainavas punktiem – tad iespēja iestrēgt ir daudz mazāka. Ir daudz vairāk lielu un mazu noslēpumu, kā tikt galā ar gradienta nolaišanos, un ir daudz eksotiskāku mācīšanās veidu, kas maz līdzinās gradienta nolaišanai. Taču šī jau ir tēma citai sarunai un atsevišķam rakstam AI ABC projekta ietvaros.

Sagatavoja Aleksandrs Eršovs