Füüsika ja tehnoloogia uuenduslik töötuba: füüsika ja tehnoloogia tõelised edulood. "Lahe andmeteadlane saab palka nagu keskmise suurusega ettevõtte tegevjuht"

- Kas saate kasutada täiesti primitiivset näidet, et öelda meile, kuidas masinõpe töötab?

Saab. Siin on näide masinõppetehnikast nimega Otsusepuu, mis on üks vanimaid asju. Teeme seda kohe. Oletame, et abstraktne inimene kutsub teid kohtingule. Mis on sinu jaoks oluline?

- Esiteks, kas ma tunnen teda või mitte...

(Victor kirjutab selle tahvlile.)

...Kui ma ei tea, siis pean vastama küsimusele, kas ta on atraktiivne või mitte.

Ja kui tead, siis pole vahet? Ma arvan, et saan aru, see on sõbratsooni lõim! Üldiselt kirjutan, kui te ei tea ja see pole atraktiivne, siis vastus on "ei, tõenäoliselt". Kui teate, on vastus "jah".

- Kui ma tean, on see ka oluline!

Ei, sellest saab sõbratsooni filiaal.

Olgu, anname siis siin märku, kas see on huvitav või mitte. Ikka, kui sa inimest ei tunne, on esimene reaktsioon tuttavaga ilmumisele, me juba vaatame, mida ja kuidas ta mõtleb.

Teeme teisiti. Kas ta on ambitsioonikas või mitte. Kui ta on ambitsioonikas, on teda raske sõbratsoonida, sest ta tahab rohkem. Aga ambitsioonitu peab vastu.

(Victor lõpetab otsustava puu joonistamise.)

Valmis. Nüüd saad ennustada, millise mehega sa kõige tõenäolisemalt kohtingule lähed. Muide, mõned tutvumisteenused ennustavad selliseid asju. Analoogia põhjal saate ennustada, kui palju kaupu kliendid ostavad ja kus inimesed sel kellaajal viibivad.

Vastused võivad olla mitte ainult "jah" ja "ei", vaid ka numbrite kujul. Kui soovite täpsemat prognoosi, võite teha mitu sellist puud ja need keskmistada. Ja nii lihtsa asja abil saab tegelikult tulevikku ennustada.

Kujutage nüüd ette, kas inimestel oli kakssada aastat tagasi raske sellist skeemi välja mõelda? Absoluutselt mitte! See skeem ei kanna mingit raketiteadust. Nähtusena on masinõpe eksisteerinud umbes pool sajandit. Ronald Fisher hakkas andmete põhjal ennustama 20. sajandi alguses. Ta võttis iirised ja jaotas need tupp- ja kroonlehtede pikkuse ja laiuse järgi, nende parameetrite abil määras ta taime tüübi.

Tööstuses on viimastel aastakümnetel aktiivselt kasutatud masinõpet: võimsad ja suhteliselt odavad masinad, mida on vaja suurte andmemahtude töötlemiseks, näiteks selliste otsustuspuude jaoks, on ilmunud mitte nii kaua aega tagasi. Aga see on siiski põnev: me joonistame neid asju iga ülesande jaoks ja kasutame neid tuleviku ennustamiseks.

- Noh, kindlasti mitte parem kui ükski jalgpallivõistluste kaheksajalg...

Ei, mida me kaheksajalgadest hoolime? Kuigi meil on rohkem varieeruvust. Nüüd saate masinõppe abil säästa aega, raha ja parandada elumugavust. Masinõpe võitis paar aastat tagasi inimesi piltide klassifitseerimise osas. Näiteks arvuti suudab ära tunda 20 terjeritõugu, tavainimene aga mitte.

- Ja kui analüüsite kasutajaid, kas iga inimene on teie jaoks numbrikomplekt?

Jämedalt öeldes jah. Kui me töötame andmetega, kirjeldatakse kõiki objekte, sealhulgas kasutaja käitumist, teatud numbrite komplekt. Ja need numbrid peegeldavad inimeste käitumise iseärasusi: kui sageli nad taksoga sõidavad, mis klassi taksot kasutavad, millistesse kohtadesse nad tavaliselt sõidavad.

Ehitame praegu aktiivselt sarnaseid mudeleid, et kasutada neid sarnase käitumisega inimrühmade tuvastamiseks. Kui tutvustame uut teenust või tahame reklaamida vana, pakume seda huvilistele.

Näiteks on meil nüüd teenus – taksos on kaks lapseistet. Võime selle uudisega kõigile rämpsposti saata või konkreetselt teavitada ainult teatud ringi inimesi. Meile on aasta jooksul kogunenud hulk kasutajaid, kes kirjutasid kommentaaridesse, et neil on vaja kahte turvatooli. Leidsime nad ja nendega sarnased inimesed. Tavaliselt on need üle 30-aastased inimesed, kes reisivad regulaarselt ja armastavad Vahemere kööki. Kuigi märke on muidugi palju rohkem, on see vaid näide.

- Isegi sellised peensused?

See on lihtne asi. Kõik arvutatakse otsingupäringute abil.

Kas see võiks rakenduses kuidagi toimida? Näiteks, kas teate, et olen kerjus ja tellin selliseid gruppe nagu "Kuidas 500 rublaga kuus ellu jääda" - nad pakuvad mulle ainult odavaid autosid, tellivad SpaceX-i uudiseid - ja aeg-ajalt müüvad nad mind Tesla?

See võib nii toimida, kuid Yandexis pole selliseid asju heaks kiidetud, sest see on diskrimineerimine. Teenuse isikupärastamisel on parem pakkuda mitte kõige vastuvõetavamat, vaid parimat saadaolevat ja seda, mis inimesele meeldib. Ja jaotus loogika järgi “sellele on vaja paremat autot ja sellele vähem head” on kurjast.


Igaühel on perverssed soovid ja vahel tuleb leida mitte Vahemere roa retsept, vaid näiteks pilte koprofiiliast. Kas isikupärastamine ka sel juhul toimib?

Alati on privaatrežiim.

Kui ma ei taha, et keegi teaks minu huvidest või, oletame, et sõbrad tulevad minu juurde ja tahavad prügikasti vaadata, siis on parem kasutada inkognito režiimi.

Samuti saate otsustada, millise ettevõtte teenust kasutada, näiteks Yandexi või Google'i.

- Kas on vahet?

Keeruline probleem. Ma ei tea, kuidas teistel on, kuid Yandex on isikuandmete kaitse suhtes range. Eriti jälgitakse töötajaid.

- See tähendab, et kui ma mehega lahku läksin, ei saa ma teada, kas ta läks sellesse suvilasse või mitte?

Isegi kui töötate Yandexis. See on muidugi kurb, aga jah, seda pole kuidagi võimalik teada saada. Enamikul töötajatel pole isegi neile andmetele juurdepääsu. Kõik on krüpteeritud. See on lihtne: te ei saa inimeste järele luurata, see on isiklik teave.

Muide, meil oli huvitav juhtum meestega lahkumineku teemal. Kui tegime prognoosi punktile “B” – taksos sihtpunktile, võtsime kasutusele vihjed. Vaata siit.

(Victor logib sisse Yandex.Taxi rakendusse.)

Näiteks takso arvab, et olen kodus. Ta soovitab mul minna kas tööle või RUDNi ülikooli (pidan seal loenguid masinõppekursuse Data Mining in Action raames). Ja mingil hetkel, neid näpunäiteid välja töötades, mõistsime, et peame vältima kasutaja kompromiteerimist. Igaüks näeb punkti B. Nendel põhjustel keeldusime sarnasuse alusel kohti soovitamast. Muidu istud korralikus kohas korralike inimestega, tellid takso ja sulle kirjutatakse: “Näe, sa pole veel selles baaris käinud!”

- Mis need sinised täpid teie kaardil vilguvad?

Need on vastuvõtupunktid. Need punktid näitavad, kust on kõige mugavam takso kutsuda. Helistada saab ju kohta, kuhu oleks täiesti ebamugav minna. Aga üldiselt saab helistada kõikjale.

- Jah, igal ajal. Sellega lendasin kuidagi kaks plokki.

Viimasel ajal on GPSiga olnud erinevaid raskusi, see tõi kaasa erinevaid naljakaid olukordi. Näiteks Tverskajal veeti inimesi navigatsiooni teel üle Vaikse ookeani. Nagu näha, on vahel möödalaskmisi ja rohkem kui kaks blokki.

- Ja kui taaskäivitate rakenduse ja klõpsate uuesti, muutub hind mitme rubla võrra. Miks?

Kui nõudlus ületab pakkumise, genereerib algoritm automaatselt suureneva koefitsiendi – see aitab neil, kes peavad võimalikult kiiresti lahkuma, taksot kasutada ka suure nõudluse perioodil. Muide, masinõppe abil saab ennustada, kus on näiteks tunnis suurem nõudlus. See aitab meil autojuhtidele öelda, kus on rohkem tellimusi, et pakkumine vastaks nõudlusele.

- Kas te ei arva, et Yandex.Taxi tapab varsti kogu taksoturu?

Ma arvan, et ei. Oleme terve konkurentsi poolt ega karda seda.

Näiteks ise kasutan erinevaid taksoteenuseid. Minu jaoks on ooteaeg oluline, seega vaatan mitut äppi, et milline takso kiiremini kohale jõuab.


- Te lõite Uberiga koostööd. Milleks?

See pole minu koht kommenteerida. Ma arvan, et ühinemine on sügavalt mõistlik otsus.

Saksamaal paigaldas üks tüüp droonidele vanni ja lendas sealt burgeri järele. Kas olete mõelnud, et on saabunud aeg õhuruumi valdamiseks?

Õhuruumist ma ei tea. Jälgime selliseid uudiseid nagu "Uber on paatidele taksod käivitanud", kuid õhu kohta ei oska ma midagi öelda.

- Aga isejuhtivad taksod?

Siin on huvitav punkt. Me arendame neid, kuid peame mõtlema, kuidas neid täpselt kasutada. Mis kujul ja millal need tänavatele ilmuvad, on veel vara ennustada, kuid teeme kõik selleks, et arendada tehnoloogiat täisautonoomsele autole, kus inimjuhti poleks üldse vaja.

- Kas kardetakse, et auto kaugjuhtimise eesmärgil häkitakse droonitarkvarasse?

Riskid on alati ja igal pool, kus on tehnoloogiaid ja vidinaid. Kuid koos tehnoloogia arenguga areneb ka teine ​​suund - nende kaitse ja ohutus. Kõik, kes on ühel või teisel viisil tehnoloogiaarendusega seotud, töötavad turvasüsteemide kallal.

- Milliseid kasutajaandmeid te kogute ja kuidas neid kaitsete?

Kogume anonüümseid kasutusandmeid, nagu näiteks koht, millal ja kuhu reis tehti. Kõik oluline on räsitud.

- Kas arvate, et droonide tõttu töökohtade arv väheneb?

Ma arvan, et see läheb ainult suuremaks. Ometi tuleb neid droone ka kuidagi hooldada. See on muidugi natuke stressirohke olukord, mis muudab eriala, aga mida teha?

- Igal oma loengul ütleb Gref, et inimene muudab oma elukutset vähemalt kolm korda radikaalselt.

Ma ei oska nimetada ühtegi eriala, mis kestaks igavesti. Arendaja ei tööta kogu elu samas keeles ja samade tehnoloogiatega. Kõikjal, kus peame uuesti üles ehitama. Masinõppega tunnen selgelt, kuidas minust kuus aastat nooremad poisid suudavad minust palju kiiremini mõelda. Samal ajal tunnevad 40- või 45-aastased inimesed seda veelgi tugevamalt.

- Kogemused ei mängi enam rolli?

Mängib. Aga meetodid muutuvad, sa võid jõuda valdkonda, kus näiteks süvaõpet pole kasutatud, töötad seal mõnda aega, siis võetakse kõikjal kasutusele süvaõppe meetodid ja sa ei saa sellest midagi aru. See on kõik. Sinu kogemusest võib kasu olla vaid meeskonna töö planeerimisel ja ka siis mitte alati.

- Ja teie elukutse on andmeteadlane, kas see on nõutud?

Nõudlus andmeteaduse spetsialistide järele on lihtsalt edetabelitest väljas. Ilmselgelt on see hullumeelse hüpe periood. Jumal tänatud, plokiahel aitas sellel hüpel veidi vaibuda. Plokiahela spetsialistid saavad kätte veelgi kiiremini.

Kuid paljud ettevõtted arvavad praegu, et kui nad investeerivad raha masinõppesse, lähevad nende aiad kohe õitsele. See on vale. Masinõpe peaks lahendama konkreetseid probleeme, mitte lihtsalt eksisteerima.

Mõnikord soovib pank luua kasutajatele teenuste soovitussüsteemi. Küsime: "Kas see on teie arvates majanduslikult põhjendatud?" Nad vastavad: "Meid ei huvita. Tee seda. Kõigil on soovitussüsteemid, me oleme trendis.

Valu on selles, et midagi ärile tõeliselt kasulikku ei saa ühe päevaga tehtud. Peame jälgima, kuidas süsteem õpib. Kuid see teeb alguses alati vigu. Parandate vead, siis parandate need uuesti ja isegi teete kõik uuesti. Pärast seda peate süsteemi seadistama nii, et see töötaks tootmises, et see oleks stabiilne ja skaleeritav, see on veel aeg. Selle tulemusena võtab üks projekt kuus kuud, aasta või rohkem aega.


Kui vaatate masinõppemeetodeid kui musta kasti, võite kergesti märkamata jätta, kui mõni hull hakkab juhtuma. On habemega lugu. Sõjaväelased palusid välja töötada algoritmi, mille abil saab analüüsida, kas pildil on tank või mitte. Teadlased tegid selle, katsetasid, kvaliteet on suurepärane, kõik on suurepärane, nad andsid selle sõjaväele. Sõjavägi tuleb ja ütleb, et miski ei tööta. Teadlased hakkavad närviliselt aru saama. Selgub, et kõigil sõjaväelaste toodud tankiga tehtud fotodel oli pastakaga nurka pandud linnuke. Algoritm õppis veatult linnukese leidma, ei teadnud tankist midagi. Loomulikult ei olnud uutel fotodel linnukesi.

Olen kohanud lapsi, kes arendavad oma dialoogisüsteeme. Kas olete kunagi mõelnud, et peate lastega koostööd tegema?

Olen juba mõnda aega käinud kõikvõimalikel koolilastele mõeldud üritustel, andmas loenguid masinõppest. Ja muide, ühte teemat õpetas mulle kümnenda klassi õpilane. Olin täiesti kindel, et mu lugu tuleb hea ja huvitav, olin enda üle uhke, alustasin saateid ja tüdruk ütles: "Oh, me tahame seda asja minimeerida." Ma vaatan ja mõtlen tõesti, miks, ja tõde saab minimeerida ja siin pole midagi erilist tõestada. Juba mitu aastat on möödas, nüüd kuulab ta meie loenguid Füüsika ja Tehnoloogia Instituudi tudengina. Yandexis on muide Yandex.Lyceum, kus koolilapsed saavad algteadmisi programmeerimisest tasuta.

- Soovitage ülikoole ja teaduskondi, kus praegu õpetatakse masinõpet.

Seal on MIPT, FIVT ja FUPM teaduskonnad. HSE-s on ka suurepärane arvutiteaduse osakond ja Moskva Riiklikus Ülikoolis toimub arvutiteaduse kompleksis masinõpe. Noh, nüüd saate kuulata meie kursust RUDN-i ülikoolis.

Nagu ma juba ütlesin, on see amet nõutud. Tehnilise hariduse saanud inimesed tegid väga pikka aega täiesti erinevaid asju. Masinõpe on suurepärane näide, kui kõik asjad, mida tehnikaharidusega inimesed õpetasid, on nüüd otseselt vajalikud, kasulikud ja hästi tasustatud.

- Kui hea?

Nimetage summa.

- 500 tuhat kuus.

Saate seda teha, ilma et oleksite tavaline andmeteadlane. Kuid mõnes ettevõttes saab praktikant lihtsa töö eest teenida 50 tuhat. Üldiselt võib laheda andmeteadlase palka võrrelda mõne keskmise ettevõtte tegevjuhi palgaga. Paljudes ettevõtetes on töötajal lisaks palgale palju muid hüvesid ja kui on selge, et inimene ei tulnud selleks, et oma CV-sse head kaubamärki lisada, vaid reaalselt tööd tegema, siis on tal kõik hästi.

MIPT-ga ühisprojekti “ABC of AI” raames oleme juba kirjutanud nn neist, mis võimaldavad programme “kasvatada” Darwini evolutsiooni põhimõtete ja seaduste järgi. Kuid praegu on selline lähenemine tehisintellektile kindlasti "külaline tulevikust". Kuidas aga tehisintellektisüsteeme tänapäeval luuakse? Kuidas neid koolitatakse? Victor Kantor, MIPT algoritmide ja programmeerimistehnoloogiate osakonna vanemõppejõud ning Yandex Data Factory kasutajakäitumise analüüsirühma juht, aitas meil selle välja mõelda.

Uuringufirma Gartner hiljutise aruande kohaselt, mis uuendab regulaarselt oma "tehnoloogia küpsustsüklit", on masinõpe praegu kogu IT-valdkonnas ootuste tipus. See pole üllatav: masinõpe on viimastel aastatel liikunud kitsa matemaatikute ja algoritmiteooria spetsialistide huvide sfäärist välja ning tunginud esmalt IT-ärimeeste sõnavarasse ja seejärel kogu maailma. tavainimestest. Nüüd teavad kõik, kes on Prisma rakendust kasutanud, Shazami abil laule otsinud või DeepDreami kaudu edastatud pilte näinud, et on olemas selline asi nagu närvivõrgud oma erilise "maagiaga".

Üks asi on aga tehnoloogia kasutamine ja teine ​​asi selle toimimise mõistmine. Üldised sõnad nagu "arvuti saab õppida, kui annate talle vihje" või "närvivõrk koosneb digitaalsetest neuronitest ja on üles ehitatud nagu inimese aju" võivad kedagi aidata, kuid sagedamini ajavad need olukorra segadusse. Need, kes hakkavad tõsiselt matemaatikat õppima, ei vaja populaarseid tekste: nende jaoks on õpikud ja suurepärased veebikursused. Proovime valida kesktee: selgitada, kuidas õppimine väga lihtsa ülesande puhul tegelikult toimub, ja seejärel näidata, kuidas saab sama lähenemisviisi rakendada tõeliselt huvitavate probleemide lahendamisel.

Kuidas masinad õpivad

Alustuseks, et täpselt mõista, kuidas masinõpe toimub, määratleme mõisted. Selle valdkonna ühe teerajaja Arthur Samueli sõnul viitab masinõpe meetoditele, mis „võimaldavad arvutitel õppida ilma neid otseselt programmeerimata”. Masinõppe meetodeid on kaks laia klassi: juhendatud õpe ja juhendamata õpe. Esimest kasutatakse siis, kui peame näiteks õpetama arvutit kasside fotosid otsima, teist siis, kui vajame masinat näiteks selleks, et saaksime iseseisvalt uudiseid lugudeks rühmitada, nagu see juhtub sellistes teenustes nagu Yandex. .News või Google News. See tähendab, et esimesel juhul on tegemist ülesandega, mis eeldab õige vastuse olemasolu (fotol olev kass on kas või mitte), teisel juhul pole ühest õiget vastust, kuid on erinevaid viise probleemi lahendamiseks. Keskendume konkreetselt esimese klassi probleemidele kui kõige huvitavamatele.

Seega peame õpetama arvutit ennustama. Lisaks on soovitav olla võimalikult täpne. Ennustusi võib olla kahte tüüpi: kas tuleb valida mitme vastusevariandi vahel (kas pildil on kass või mitte, on valik kahest ühe variandi vahel, piltidel tähtede äratundmise võimalus on ühe variandi valik mitmekümnest ja nii edasi) või tehke arvuline ennustus . Näiteks ennustage inimese kaal tema pikkuse, vanuse, jalanõude suuruse jms põhjal. Need kahte tüüpi probleemid näevad ainult erinevad välja, kuid tegelikult lahendatakse neid peaaegu identselt. Proovime täpselt aru saada, kuidas.

Esimese asjana tuleb ennustussüsteemi koostada koguda nn treeningvalim ehk andmed inimeste kaalu kohta elanikkonnas. Teine on otsustada märkide komplekti üle, mille põhjal saame teha järeldusi kaalu kohta. On selge, et üks "tugevamaid" selliseid märke on inimese pikkus, nii et esimese ligikaudsusena piisab ainult sellest. Kui kaal sõltub pikkusest lineaarselt, siis on meie ennustus väga lihtne: inimese kaal võrdub tema pikkusega, mis on korrutatud mingi koefitsiendiga, millele lisandub mingi konstantne väärtus, mis on kirjutatud lihtsaima valemiga y=kx+b. Kõik, mida me peame tegema, et treenida masinat inimese kehakaalu ennustamiseks, on kuidagi leida k ja b õiged väärtused.

Masinõppe ilu seisneb selles, et isegi kui uuritav suhe on väga keeruline, ei muutu meie lähenemises sisuliselt midagi. Me tegeleme ikka sama regressiooniga.

Oletame, et inimese kaalu mõjutab tema pikkus mitte lineaarselt, vaid kolmanda astmeni (mida üldiselt eeldatakse, sest kaal sõltub keha mahust). Selle sõltuvuse arvessevõtmiseks lisame võrrandisse lihtsalt teise termini, nimelt kolmanda kasvuastme oma koefitsiendiga, saades seeläbi y=k 1 x+k 2 x 3 +b. Nüüd peame masina treenimiseks leidma mitte kaks, vaid kolm kogust (k 1, k 2 ja b). Oletame, et oma ennustuses tahame arvestada ka inimese jalanõude suurust, tema vanust, televiisori vaatamise aega ja kaugust tema korterist lähima kiirtoidukohani. Pole probleemi: me lihtsalt lisame need funktsioonid eraldi terminitena samasse võrrandisse.

Kõige olulisem on luua universaalne viis vajalike koefitsientide (k 1, k 2, ... k n) leidmiseks. Kui see on olemas, on meie jaoks peaaegu ükskõik, milliseid omadusi ennustamiseks kasutada, sest masin ise õpib olulistele andma suurt ja ebaolulistele funktsioonidele väikest kaalu. Õnneks on selline meetod juba leiutatud ja selle peal töötab edukalt peaaegu kogu masinõpe: alates lihtsamatest lineaarsetest mudelitest kuni näotuvastussüsteemide ja kõneanalüsaatoriteni välja. Seda meetodit nimetatakse gradiendi laskumiseks. Kuid enne selle toimimise selgitamist peame tegema väikese kõrvalepõike ja rääkima närvivõrkudest.

Närvivõrgud

2016. aastal sisenesid närvivõrgud teabekavasse nii tihedalt, et neid hakati peaaegu samastama igasuguse masinõppe ja arenenud IT-ga üldiselt. Formaalselt öeldes pole see tõsi: närvivõrke ei kasutata matemaatilises õppes alati, on ka teisi tehnoloogiaid. Aga üldiselt on selline seos muidugi arusaadav, sest just närvivõrkudel põhinevad süsteemid annavad nüüd kõige “maagilisemaid” tulemusi, näiteks võime otsida fotolt inimest, rakenduste tekkimine, mis edastavad. ühe pildi stiil teisele või süsteemid tekstide genereerimiseks teatud isiku kõneviisis.

See, kuidas närvivõrgud on üles ehitatud, oleme juba... Siinkohal tahan lihtsalt rõhutada, et närvivõrkude tugevus võrreldes teiste masinõppesüsteemidega seisneb nende mitmekihilisuses, kuid see ei muuda neid oma toimimises millekski põhimõtteliselt erinevaks. Mitmekihilisus võimaldab teil leida väga abstraktseid üldisi tunnuseid ja sõltuvusi keerukatest funktsioonide komplektidest, nagu pildi pikslid. Kuid on oluline mõista, et õppimispõhimõtete seisukohast ei erine närvivõrk radikaalselt tavapäraste lineaarse regressiooni valemite komplektist, seega töötab sama gradiendi laskumise meetod suurepäraselt ka siin.

Närvivõrgu "võimsus" seisneb neuronite vahekihi olemasolus, mis ühendab kokkuvõttes sisendkihi väärtused. Seetõttu võivad närvivõrgud leida andmetest väga abstraktseid jooni, mida on raske taandada lihtsateks valemiteks, nagu lineaarne või ruutsuhe.

Selgitame näitega. Lähtusime ennustusest, kus inimese kaal sõltub tema pikkusest ja kuubipikkusest, mida väljendatakse valemiga y=k 1 x+k 2 x 3 +b. Teatud venitusega, aga tegelikult võib isegi sellist valemit nimetada närvivõrguks. Selles, nagu tavalises närvivõrgus, on esimene "neuronite" kiht, mis on ühtlasi ka tunnuste kiht: need on x ja x 3 (noh, "ühikneuron", mida me meeles peame ja mille jaoks vastutav koefitsient b). Ülemist ehk sellest tulenevat kihti tähistab üks "neuroni" y, see tähendab inimese prognoositud kaal. Ja "neuronite" esimese ja viimase kihi vahel on ühendused, mille tugevus või kaal määratakse koefitsientidega k 1, k 2 ja b. Selle "närvivõrgu" koolitamine tähendab lihtsalt nende samade koefitsientide leidmist.

Ainus erinevus "päris" närvivõrkudest on siin see, et meil ei ole ühtki vahepealset (ehk peidetud) neuronite kihti, mille ülesandeks on sisendfunktsioonide kombineerimine. Selliste kihtide kasutuselevõtt võimaldab mitte "peast" välja mõelda võimalikke sõltuvusi olemasolevate funktsioonide vahel, vaid tugineda nende juba olemasolevatele kombinatsioonidele närvivõrgus. Näiteks võib vanus ja keskmine televiisori ees veedetud aeg avaldada sünergilist mõju inimese kehakaalule, kuid närvivõrgu olemasolul ei pea me seda ette teadma ja nende toodet valemisse sisestama. Närvivõrgus on kindlasti neuron, mis ühendab suvalise kahe tunnuse mõju ja kui see mõju on proovis tõesti märgatav, siis pärast treenimist saab see neuron automaatselt suure raskuse.

Gradiendi laskumine

Niisiis, meil on teadaolevate andmetega näidete kogum, see tähendab tabel täpselt mõõdetud inimese kaaluga ja mingi seose hüpotees, antud juhul lineaarne regressioon y=kx+b. Meie ülesanne on leida k ja b õiged väärtused mitte käsitsi, vaid automaatselt. Ja eelistatavalt universaalne meetod, mis ei sõltu valemis sisalduvate parameetrite arvust.

Üldiselt pole seda raske teha. Põhiidee on luua funktsioon, mis mõõdab praegust koguvea taset ja “näpistab” koefitsiente nii, et kogu veatase järk-järgult langeks. Kuidas saan veataseme langetada? Peame oma parameetreid õiges suunas kohandama.

Kujutage ette meie kahte otsitavat parameetrit, sama k ja b, kahe suunana tasapinnal, nagu põhja-lõuna ja lääne-ida telg. Iga punkt sellisel tasapinnal vastab teatud koefitsientide väärtusele, teatud konkreetsele pikkusele ja kaalule. Ja iga sellise tasapinna punkti jaoks saame arvutada kogu veataseme, mille see ennustus annab meie valimi iga näite jaoks.

Selgub midagi konkreetse kõrguse sarnast lennukis ja kogu ümbritsev ruum hakkab meenutama mägimaastikku. Mäed on punktid, kus veamäär on väga kõrge, orud on kohad, kus vigu on vähem. On selge, et meie süsteemi treenimine tähendab maapinna madalaima punkti leidmist, punkti, kus veamäär on minimaalne.

Kuidas leida see punkt? Kõige õigem on liikuda kogu aeg allapoole punktist, kus me end alguses leidsime. Nii et varem või hiljem jõuame kohaliku miinimumini – punktini, millest allpool pole vahetus läheduses midagi. Pealegi on soovitatav astuda erineva suurusega samme: kui kalle on järsk, võite astuda laiemaid samme, kui kalle on väike, siis on parem hiilida kohaliku miinimumini "kikivarvul", vastasel juhul võite ületada.

Gradiendi laskumise meetod töötab täpselt nii: me muudame tunnuste kaalusid veafunktsiooni suurima languse suunas. Muudame neid iteratiivselt, st teatud sammuga, mille väärtus on võrdeline kalde järsusega. Huvitav on see, et kui tunnuste arv suureneb (lisades kuubiku inimese pikkusest, vanusest, jalanõude suurusest jne), ei muutu sisuliselt mitte midagi, lihtsalt meie maastik ei muutu mitte kahe-, vaid mitmemõõtmeliseks.

Veafunktsiooni saab defineerida kui kõigi hälvete ruutude summat, mida praegune valem võimaldab inimestele, kelle kaalu me juba täpselt teame. Võtame mõned juhuslikud suurused k ja b, näiteks 0 ja 50. Seejärel ennustab süsteem meile, et iga valimisse kuuluva inimese kaal on alati võrdne 50 kilogrammiga y=0×x+50 Graafikul on selline sõltuvus näeb välja horisontaaljoonega paralleelse sirgjoonena. On selge, et see ei ole väga hea ennustus. Nüüd võtame kaalu hälbe sellest ennustatud väärtusest, ruudustage see (nii et arvesse võetakse ka negatiivseid väärtusi) ja võtame selle kokku - see on siinkohal viga. Kui olete analüüsi algusega tuttav, saate isegi selgitada, et suurima languse suuna annab veafunktsiooni osatuletis k ja b suhtes ning samm on väärtus, mis valitakse praktilised põhjused: väikeste sammude arvutamine võtab palju aega ja suured sammud võivad viia selleni, et me libiseme miinimumist mööda.

Okei, mis siis, kui meil pole lihtsalt paljude funktsioonidega keeruline regressioon, vaid tõeline närvivõrk? Kuidas me sel juhul gradiendi laskumist rakendame? Selgub, et gradient-laskumine toimib täpselt samamoodi närvivõrguga, ainult treenimine toimub 1) samm-sammult, kihist kihini ja 2) järk-järgult, ühest proovis olevast näitest teise. Siin kasutatud meetodit nimetatakse tagasilevitamiseks ja seda kirjeldasid 1974. aastal sõltumatult Nõukogude matemaatik Aleksandr Galuškin ja Harvardi ülikooli matemaatik Paul John Webros.

Kuigi algoritmi rangeks esitamiseks on vaja üles kirjutada osatuletised (näiteks), toimub intuitiivsel tasemel kõik üsna lihtsalt: iga proovi näite puhul on meil väljundis teatud ennustus. närvivõrgust. Õige vastuse olemasolul saame ennustusest õige vastuse lahutada ja seega saada vea (täpsemalt vigade komplekti iga väljundkihi neuroni kohta). Nüüd peame selle vea üle kandma eelmisele neuronite kihile ja mida rohkem see konkreetne selle kihi neuron veale kaasa aitas, seda rohkem peame selle kaalu vähendama (tegelikult räägime jällegi osatuletise võtmisest, liikumisest piki meie kujuteldava maastiku maksimaalset järsust) . Kui oleme seda teinud, tuleb sama protseduuri korrata ka järgmise kihi jaoks, liikudes vastupidises suunas ehk närvivõrgu väljundist sisendisse.

Niimoodi iga treeningproovi näitega närvivõrku läbides ja neuronite raskusi soovitud suunas “keerates”, peaksime lõpuks saama treenitud närvivõrgu. Tagasi levitamise meetod on mitmekihiliste närvivõrkude gradiendi laskumise meetodi lihtne modifikatsioon ja seepärast peaks see toimima igasuguse keerukusega närvivõrkude puhul. Me ütleme siin "peaks", sest tegelikult on juhtumeid, kui gradient laskumine ebaõnnestub ja ei võimalda teil teha head regressiooni ega treenida närvivõrku. Võib olla kasulik teada, miks sellised raskused tekivad.

Gradiendi laskumise raskused

Vale absoluutse miinimumi valik. Gradiendi laskumise meetod aitab otsida kohalikku ekstreemumit. Kuid me ei saa seda alati kasutada funktsiooni absoluutse globaalse miinimumi või maksimumi saavutamiseks. See juhtub seetõttu, et mööda antigradienti liikudes peatume hetkel, kui saavutame esimese kohatava lokaalse miinimumi ja algoritm lakkab töötamast.

Kujutage ette, et seisate mäe tipus. Kui soovite laskuda ala madalaimale pinnale, ei aita teid alati gradientlaskumise meetod, sest teie teel olev esimene madalpunkt ei pruugi olla madalaim punkt. Ja kui sa suudad elus näha, et kui lähed veidi üles ja saad siis veel madalamale minna, siis sellises olukorras algoritm lihtsalt seiskub. Sageli saab seda olukorda vältida, kui valite õige sammu.

Vale sammu valik. Gradiendi laskumise meetod on iteratiivne meetod. See tähendab, et me peame ise valima sammu suuruse - kiiruse, millega laskume. Valides liiga suure sammu, võime lennata vajalikust ekstreemumist mööda ega leia miinimumi. See võib juhtuda, kui leiate end silmitsi väga järsu laskumisega. Ja liiga väikese sammu valimine võib muuta algoritmi äärmiselt aeglaseks, kui leiame end suhteliselt tasasel pinnal. Kui jälle kujutada ette, et oleme järsu mäe tipus, siis võib tekkida olukord, kus väga järsu miinimumi lähedal laskumise tõttu lendame sellest lihtsalt üle.

Võrgu halvatus. Mõnikord juhtub, et gradiendi laskumise meetod ei leia üldse miinimumi. See võib juhtuda, kui miinimumi mõlemal küljel on tasased alad – tasasele alale sattudes vähendab algoritm sammu ja lõpuks peatub. Kui otsustate mäe otsas seistes liikuda oma madalikul asuva kodu poole, võib teekond olla liiga pikk, kui eksite kogemata väga tasasele alale. Või kui lamedate alade servades on peaaegu vertikaalsed "nõlvad", hüppab algoritm, valides väga suure sammu, ühelt kaldpinnalt teisele, praktiliselt mitte liikudes miinimumi poole.

Kõiki neid keerulisi probleeme tuleb masinõppesüsteemi kavandamisel arvesse võtta. Näiteks on alati kasulik jälgida täpselt, kuidas veafunktsioon ajas muutub – kas see langeb iga uue tsükli või märgi ajaga, kuidas muutub selle kukkumise iseloom olenevalt sammu suuruse muutusest. Halbasse lokaalsesse miinimumi sattumise vältimiseks võib olla kasulik alustada maastiku erinevatest juhuslikult valitud punktidest – siis on kinnijäämise tõenäosus palju väiksem. Gradientlaskumise kasutamisel on palju rohkem suuri ja väikeseid saladusi ning on ka eksootilisemaid õppimisviise, mis on nõrgalt sarnased gradientlaskumisega. See on aga AI projekti ABC raames ühe teise vestluse ja eraldi artikli teema.

Koostanud Aleksander Eršov

Peaaegu aasta on möödas hetkest, mil FIVTs sai alguse ebatavaline aine – uuenduslik töötuba. Selle sisuks on IT-idufirmade loomine tudengimeeskondade poolt kogenud mentorite juhendamisel. Selgus hästi: tänu kursusele veetis keegi osa suvest Cream Valleys, keegi sai projekti arendamiseks toetust summas 800 000 rubla ja ABBYY on valmis projekti kelleltki täielikult ära ostma. Ja see pole veel kõik töötoa tulemused!

2011. aasta alguses koguti FIVT kolmanda kursuse üliõpilased aulasse ja öeldi: järgmise aasta jooksul tuleb teil luua oma startup. Õpilased ei võtnud seda ideed kahemõtteliselt vastu: polnud üldse selge, kuidas seda teha, ja vastutus oli harjumatu - lõppude lõpuks oli vaja luua tehnoloogiline äri, mitte lihtsalt järjekordne haridusprojekt. Mida arvab sellest MIPT õpilaste füüsikaolümpiaadi võitja, Yandeska osakonna õpilane Viktor Kantor:

Sisseastumisel FIVT valides lootsin, et meil on midagi sarnast. Nii et mul on hea meel, et mu lootused ei olnud asjatud. Aasta jooksul oli tunda, et kursus alles kujuneb, selles oli palju uut, paljud küsimused osutusid vastuoluliseks mitte ainult üliõpilastele, vaid ka korraldajatele, kuid üldiselt arvan, et trendid on positiivsed. Mulle see kursus meeldis.

Üliõpilaste töö hõlbustamiseks olid kutsutud erinevad kuraatorid pakkuma oma ideid innovaatiliste ettevõtete ülesehitamiseks. Nende hulgas oli täiesti erinevaid inimesi: MIPT bakalaureuse- ja magistrantidest Ernst&Youngi innovatsiooninõustaja Juri Pavlovitš Ammosovini (tema oli kogu kursuse juht) ja Mihhail Batini, kes tegeleb regeneratiivse meditsiini ja eluea pikendamise küsimustega. Selle tulemusena valisid füüsika- ja tehnoloogiatudengid välja endale kõige huvitavamad ideed, meeskondadesse liitusid kuraatorid ning raske, kuid põnev töö algas.

Sellest ajast möödunud peaaegu aasta jooksul on poisid silmitsi paljude probleemidega, millest mõned on lahendatud. Nüüd saame nende tulemusi hinnata - vaatamata raskustele said poisid hakkama. MIPT tudengid (lisaks filosoofiateaduskonnale liitusid protsessiga ka filoloogiateaduskonna ja teiste teaduskondade üliõpilased) jõudsid ette valmistada mitu päris huvitavat ja elujõulist projekti:

Askeroid (endine Ask Droid) – nutitelefonide otsimine ( Anastasia Uryasheva)

Androidi rakendus, mis võimaldab mugavalt otsida paljudes otsingumootorites. Mõned eksperdid ilmutasid arenduse vastu huvi ja selle tulemusena veetis Anastasia terve möödunud suve Silicon Valley ühes kuulsaimas inkubaatoris - Plug&Play. tehnoloogiaettevõtluse põhitõdede õppimine ja rahvusvaheliste ettevõtmiste ekspertidega rääkimine.

1minute.ru – üks minut lõplikult (Lev Grunin)

See projekt annab igaühele võimaluse teha heategevustööd lihtsalt, kiiresti ja täiesti tasuta. Mudel on lihtne: reklaamijad pakuvad saidil teatud tegevusi, kasutajad osalevad neis vabatahtlikult ja kogu reklaamist saadav raha kantakse üle heategevusfondile. Nädala jooksul pärast käivitamist kogus projekt rohkem kui 6500 kasutajat ja sellega ei piirdu. Tänu Levile ja tema meeskonnale saavad 600 lastekodulast uueks aastaks jõuluvanalt hellitatud kingitusi. Kas oled juba ühe minuti heateole kulutanud?!

Manustatud töölaud – arvuti teie telefonis (Aleksei Vukolov)

Rakendus, mis võimaldab ühendada arvuti võimalused ja telefoni mobiilsuse ühte paketti – äärmiselt kasulik toode hõivatud inimestele, kes reisivad sageli ärireisidel. Piisab selle installimisest nutitelefoni ja kasutaja saab oma arvuti "saada" igas hotellis, kontoris ja tõepoolest kõikjal, kust leiab monitori (sobib ka teler), klaviatuuri ja hiir. Projekt sai idee arendamiseks toetust ja esitleti Technovation Cupi näitusel ning saadud raha eest soetab meeskond juba aktiivselt tehnikat. Ameerika protsessorite tootja MIPS on arendusest ülimalt huvitatud.

Nutikas sildistaja – semantiline otsing dokumentide kaudu (Victor Kantor)

Mida peaksite tegema, kui mäletate, et kuskil teie postkastis oli väga oluline kiri, mis rääkis viimasest Suure Paugu teooria episoodist, kuid te ei mäleta tekstist ühtegi märksõna? Yandex ja Google'i otsing on jõuetud. Appi tuleb Smart Taggeri arendus - semantilist otsingut kasutav “nutikas” programm annab teile kõik tekstid, mille tähendus on populaarsete telesarjadega läbi põimunud. Projekt võitis grandi konkursil U.M.N.I.K. kokku 400 000 rubla!

MathOcr – valemituvastus (Viktor Prun)

ABBYY pakkus rakendamiseks välja huvitava ülesande – luua programm, mis tunneks ära igasuguse keerukusega matemaatilisi valemeid. FIVT tudengid, olles teinud koostööd huvitatud õpilastega, täitsid ülesande – moodul tunneb tegelikult ära matemaatika või füüsika õpikutest skaneeritud valemid. Tulemus: ABBYY on valmis selle toote suure raha eest ostma.