Maja, projekteerimine, remont, sisustus.  Õu ja aed.  DIY

Maja, projekteerimine, remont, sisustus. Õu ja aed. DIY

» "Suurepärane andmeteadlane saab keskmise ettevõtte tegevjuhina palka." Yandex.Taxi masinõppe ekspert selle kohta, kuidas andmed ennustavad tulevikku ja kujundavad maailma

"Suurepärane andmeteadlane saab keskmise ettevõtte tegevjuhina palka." Yandex.Taxi masinõppe ekspert selle kohta, kuidas andmed ennustavad tulevikku ja kujundavad maailma

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

Saab. Siin on näide masinõppemeetodist nimega Otsuste puu, 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 mõtlesin selle välja, see on sõbratsooni haru! Üldiselt kirjutan, kui te ei tea ja pole atraktiivne, siis vastus on "jah, ei, tõenäoliselt." Kui teate, on vastus jaatav.

- Kui ma tean, on see ka oluline!

Ei, see on sõbratsooni haru.

Olgu, siis näitame siin välja, kas see on huvitav või mitte. Sellegipoolest, kui inimest ei tunne, on esimene reaktsioon välimusele, sõbraga juba vaatame, mida ta mõtleb ja kuidas.

Teeme seda teisiti. Ambitsioonikas või mitte. Kui ta on ambitsioonikas, siis on temaga raske sõbraks saada, ta tahab rohkem. Ja ambitsioonitud kannatavad.

(Victor lõpetab otsustuspuu.)

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

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 keskmised need üle. Ja nii lihtsa asjaga saab tegelikult tulevikku ennustada.

Kujutage nüüd ette, kui raske oli inimestel kakssada aastat tagasi 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 andmetele tuginedes ennustama 20. sajandi alguses. Ta võttis iirised ja jaotas need tupp- ja kroonlehtede pikkuses ja laiuses, nende parameetrite järgi määras ta taime tüübi.

Masinõppetööstust on viimastel aastakümnetel aktiivselt kasutatud: võimsad ja suhteliselt odavad masinad, mida on vaja suure andmemahu töötlemiseks, näiteks selliste otsustuspuude jaoks, ilmusid mitte nii kaua aega tagasi. Kuid see on ikkagi hingemattev: me joonistame need asjad iga ülesande jaoks ja kasutame neid tuleviku ennustamiseks.

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

Ei, noh, kus 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 klassifitseerimisel. Näiteks suudab arvuti ära tunda 20 tõugu terjereid ja tavaline inimene ei.

- Ja kasutajaid analüüsides on iga inimene teie jaoks numbrite komplekt?

Jämedalt öeldes jah. Andmetega töötades kirjeldame kõiki objekte, sealhulgas kasutaja käitumist, teatud numbrite komplektiga. Ja need numbrid peegeldavad inimeste käitumise iseärasusi: kui tihti nad taksoga sõidavad, mis klassi taksoga sõidavad, mis kohtadesse nad tavaliselt sõidavad.

Nüüd loome aktiivselt sarnase käitumisega inimeste gruppide tuvastamiseks sarnaseid mudeleid. Kui tutvustame uut teenust või tahame reklaamida vana, pakume seda huvilistele.

Näiteks siin on meil teenus – taksos on kaks lapseistet. Võime selle uudisega kõigile rämpsposti saata või adresseerida ainult teatud ringile inimesi. Meile on aastaga kogunenud teatud hulk kasutajaid, kes kirjutasid kommentaaridesse, et neil on vaja kahte turvatooli. Leidsime need ja inimestele meeldivad. Tavaliselt on need üle 30-aastased inimesed, kes reisivad regulaarselt ja armastavad Vahemere kööki. Kuigi märke on muidugi palju rohkem, olen siin näiteks mina.

- Isegi sellised peensused?

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

Ja rakenduses saab see kuidagi toimida? Näiteks teate, et ma olen kerjus ja tellin selliseid gruppe nagu "Kuidas 500 rublaga kuus ära elada" – nad pakuvad mulle ainult pekstud odavaid autosid, tellin SpaceX-i uudiseid – ja saan aeg-ajalt Teslat?

See võib nii toimida, kuid Yandexis pole selliseid asju heaks kiidetud, kuna 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 töötab ka sel juhul?

Alati on privaatrežiim.

Kui ma ei taha, et keegi minu huvidest teaks või ütleme, et sõbrad tuleksid 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?

Raske küsimus. Ma ei tea, kuidas teistel on, kuid Yandex on isikuandmete kaitse suhtes range. Eelkõige kontrollige 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 võimalik teada saada. Enamikul töötajatel pole neile andmetele isegi 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 taksos punkti "B" ennustamise – sihtpunkti, siis võtsime kasutusele vihjed. Vaata siit.

(Victor siseneb Yandex.Taxi rakendusse.)

Näiteks takso arvab, et olen kodus. Ta pakub mulle, et lähen kas tööle või RUDN-i ülikooli (ma pean seal loenguid masinõppe andmekaeve tegevuses kursuse raames). Ja mingil hetkel, neid vihjeid välja töötades, mõistsime, et me ei pea kasutajat kompromisse tegema. Punkti "B" näeb igaüks. Nendel põhjustel keeldusime pakkumast kohti sarnasuse alusel. Ja siis istud korralikus kohas korralike inimestega, tellid takso ja sulle kirjutatakse seal: "Vaata, sa pole veel selles baaris käinud!"

- Mida sinised täpid vilgub teie kaardil?

Need on vastuvõtupunktid. Need punktid näitavad, kust on kõige mugavam takso kutsuda. Lõppude lõpuks saate helistada kohta, kus on üsna ebamugav helistada. Aga üldiselt saab helistada kõikjale.

- Jah, ükskõik millises. Lendasin sellega kuidagi kaks plokki.

Viimasel ajal on GPS-iga olnud erinevaid raskusi, mis tõid kaasa erinevaid naljakaid olukordi. Inimesed, näiteks Tverskajal, viidi navigatsiooni teel üle Vaikse ookeani. Nagu näha, on vahel möödalaskmisi ja rohkem kui kaks blokki.

- Ja kui taaskäivitate rakenduse ja torkate uuesti, muutub hind mõne rubla võrra. Miks?

Kui nõudlus ületab pakkumise, genereerib algoritm automaatselt kordaja – see aitab neil, kes peavad võimalikult kiiresti lahkuma, taksot kasutada ka suure nõudluse perioodil. Muide, masinõpet kasutades saab näiteks tunnis ennustada, kus on rohkem nõudlust. 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.

Mina ise näiteks kasutan erinevaid taksoteenuseid. Minu jaoks on ooteaeg oluline, seega vaatan mitmeid avaldusi, milline takso kiiremini kohale jõuab.


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

See pole minu koht kommenteerida. Ma arvan, et ühinemine on väga mõistlik otsus.

Saksamaal paigaldas üks mees droonidele vanni ja lendas burgeri järele. Kas olete mõelnud, et on aeg õhuruumi valdada?

Õhuruumist ma ei tea. Jälgime uudiseid "Uber käivitas taksopaadid" vaimus, kuid õhu kohta ei oska ma midagi öelda.

Aga droontaksod?

Siin on huvitav punkt. Me arendame neid, kuid peame mõtlema, kuidas neid täpselt kasutada. Praegu on veel vara ennustada, kuidas ja millal need tänavatele ilmuvad, kuid töötame kõvasti selle nimel, et arendada tehnoloogiat täisautonoomsele autole, kus inimjuhti pole üldse vaja.

- Kas on muret, et droonide tarkvara saab häkkida masina kaugjuhtimiseks?

Riskid on alati ja kõikjal, kus on tehnoloogiaid ja vidinaid. Kuid koos tehnoloogia arenguga areneb ka teine ​​suund - nende kaitse ja ohutus. Kõik, kes ühel või teisel viisil tehnoloogia arendamisega seotud on, tegelevad kaitsesüsteemidega.

- Milliseid kasutajaandmeid te kogute ja kuidas neid kaitsete?

Kogume tuvastamata kasutusandmeid, näiteks seda, kus, millal ja kuhu reisisite. Kõik oluline on räsitud.

- Kas arvate, et droonid vähendavad töökohtade arvu?

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 mis teha.

- Gref ütleb igal oma loengul, et inimene muudab oma eriala vähemalt kolm korda dramaatiliselt.

Ma ei oska nimetada ühtegi eriala, mis kestaks igavesti. Arendaja ei tööta kogu elu samas keeles ja samade tehnoloogiatega. Kõikjal tuleb ümber ehitada. Masinõppega tunnen selgelt, kuidas minust kuus aastat nooremad poisid on minust palju kiiremad. Samas 40-45-aastased inimesed tunnetavad seda veelgi tugevamalt.

Kas kogemustel pole enam tähtsust?

Mängib. Aga meetodid muutuvad, võid jõuda valdkonda, kus näiteks süvaõpet ei kasutatud, töötad seal mõnda aega, siis võetakse kõikjal kasutusele süvaõppe meetodid ja sa ei saa sellest midagi aru. Ja see ongi kõik. Teie kogemused võivad olla kasulikud ainult meeskonna planeerimisel ja mitte alati.

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

Nõudlus andmeteadlaste järele kasvab hüppeliselt. On ilmselge, et praegu on meeletu hype periood. Jumal tänatud, plokiahel aitas seda hüpet veidi vaigistada. Plokiahela spetsialistid lammutatakse veelgi kiiremini.

Kuid paljud ettevõtted arvavad praegu, et kui nad investeerivad masinõppesse, lähevad nende aiad kohe õitsele. See ei ole tõsi. Masinõpe peaks lahendama konkreetseid probleeme, mitte ainult eksisteerima.

On aegu, kus pank soovib teha kasutajatele soovitajate teenuste süsteemi. Küsime: "Kas see on teie arvates majanduslikult põhjendatud?" Nad vastavad: "Jah, me ei hooli. Tee seda. Kõigil on soovitussüsteemid, oleme trendis.

Valu on selles, et midagi ärile tõeliselt kasulikku ei saa ühe päevaga tehtud. Peame vaatama, kuidas süsteemi koolitatakse. Ja ta töötab alguses alati vigadega, tal võib treeningutel andmetest puudu jääda. Parandate vead, seejärel parandate need uuesti ja isegi teete kõik uuesti. Pärast seda peate selle seadistama nii, et süsteem 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 vaadata masinõppe meetodeid kui musta kasti, siis võib kergesti kahe silma vahele jääda, kuidas mingi jama hakkab juhtuma. Seal 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, katsetasid, kvaliteet on suurepärane, kõik on suurepärane, nad andsid selle sõjaväele. Sõjaväelased tulevad ja ütlevad, et miski ei tööta. Teadlased hakkavad närviliselt aru saama. Selgub, et kõigil tankiga piltidel, mille sõjaväelased tõid, oli nurgas pastakaga linnuke. Algoritm õppis suurepäraselt linnukese leidmise, paagist ei teadnud ta midagi. Loomulikult ei olnud uutel piltidel linnukesi.

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

Olen juba pikemat 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, asusin saatesse ja tüdruk ütles: "Ah, me tahame seda asja minimeerida." Vaatan ja mõtlen, aga tõesti, miks, ja tõde saab minimeerida ja ega siin polegi midagi erilist tõestada. Juba mitu aastat on möödas, nüüd kuulab ta meie loenguid Phystechi tudengina. Yandexil on muide Yandex.Lyceum, kus koolilapsed saavad algteadmisi programmeerimisest tasuta.

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

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

Nagu ma ütlesin, on see eriala nõutud. Tehnilise hariduse saanud inimesed tegelesid väga pikka aega täiesti erinevate asjadega. Masinõpe on suurepärane näide, kui kõik asjad, millest inimesed õppisid tehniline haridus, on nüüd otseselt vajalikud, kasulikud ja hästi tasustatud.

- Kui hea?

Nimetage summa.

- 500 tuhat kuus.

Saate seda teha, kui te pole tavaline andmeteadlane. Aga mõnes firmas võib väga-väga praktikant lihttöö eest saada 50 tuhat.Levi on väga lai. Üldiselt võib laheda andmeteadlase palka võrrelda mõne keskmise ettevõtte tegevjuhi palgaga. Paljudes ettevõtetes langeb töötajale lisaks palgale palju head-paremat ja kui on selge, et inimene ei tulnud CV-sse head brändi kirjutama, vaid päriselt tööd tegema, siis on kõik korras. tema.

Peaaegu aasta on möödas ebatavalise teema algusest FIFTis - uuenduslikus töötoas. Selle sisuks on IT-idufirmade loomine tudengimeeskondade poolt kogenud mentorite juhendamisel. Selgus, et see pole halb: tänu kursusele veetis keegi osa suvest Kremieva orus, keegi sai projekti arendamiseks toetust summas 800 000 rubla ja ABBYY on valmis projekti kelleltki täielikult ostma. Ja see pole veel kõik töötoa tulemused!

2011. aasta alguses kogunesid FIVT III kursuse üliõpilased aulasse ja teatati: ajal järgmine aasta peate looma oma käivitusprogrammi. Õpilased võtsid seda ideed kahemõtteliselt: polnud üldse selge, kuidas seda teha, ja vastutus oli ebatavaline - lõppude lõpuks oli vaja luua tehnoloogiaettevõte, mitte lihtsalt järjekordne haridusprojekt. MIPT õpilaste füüsikaolümpiaadi võitja, Yandeska osakonna üliõpilane Victor Kantor arvab selle kohta järgmist:

Kui ma valisin sisseastumisel FIVT, siis lootsin, et meil on midagi sarnast. Nii et mul on hea meel, et ma asjata ei lootnud. Aasta jooksul oli tunda, et kursus alles kujuneb, suur osa sellest on uus, paljud teemad on vastuolulised mitte ainult üliõpilastele, vaid ka korraldajatele, kuid üldiselt on trendid minu arvates 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: alates Moskva Füüsika- ja Tehnoloogiainstituudi abiturientidest ja magistrantidest kuni Ernst & Youngi innovatsiooninõuniku Juri Pavlovitš Ammosovini (ta oli kogu kursuse juht) ja Mihhail Batini, kes tegeles regeneratiivse meditsiini ja eluga. pikendamise probleemid. Selle tulemusena valisid füüsikud välja ideed, mis neile kõige rohkem huvi pakkusid, kuraatorid sidusid end meeskondadesse ja algas raske, kuid põnev töö.

Sellest ajast möödunud peaaegu aasta jooksul on poisid silmitsi paljude probleemidega, millest mõned on lahendatud. Nüüd saate nende tulemusi hinnata - vaatamata raskustele said poisid hakkama. MIPT tudengid (peale füüsikateaduskonna liitusid protsessiga mõned FAPF-i ja teiste teaduskondade üliõpilased) suutsid 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 riskikapitali ekspertidega vestlemine.

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

See projekt võimaldab kõigil lihtsalt, kiiresti ja täiesti tasuta heategevustööd teha. Mudel on lihtne: reklaamijad pakuvad saidil teatud tegevusi, kasutajad osalevad neis vabatahtlikult, kogu reklaamiraha kantakse üle heategevusfondile. Nädal pärast käivitamist on projekt kogunud üle 6500 kasutaja ja sellega ei piirdu. Selle tulemusena saavad tänu Levile ja tema meeskonnale 600 lastekodulast Uus aasta kallid kingitused jõuluvanalt. Kas oled juba ühe minuti heateole kulutanud?!

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

Äärmiselt on rakendus, mis võimaldab ühes korpuses ühendada arvuti võimalused ja telefoni mobiilsuse kasulik toode hõivatud inimestele, kes käivad sageli ärireisidel. Piisab selle installimisest nutitelefoni ja kasutaja saab "saada" oma arvuti igas hotellis, kontoris ja tõepoolest kõikjal, kus leiate monitori (sobib ka teler), klaviatuuri ja hiire . Projekt sai idee arendamiseks toetust ja esitleti Technovation Cupi näitusel ning saadud raha eest soetab meeskond juba aktiivselt seadmeid. Ameerika MIPS-protsessorite tootja on arendusest äärmiselt huvitatud.

Nutikas sildistaja – semantiline otsing dokumentide kaudu (Viktor Kantor)

Mida teha, kui see kuskilt meeles on postkasti seal oli väga oluline kiri, mis rääkis viimasest Suure Paugu teooria seeriast, kuid te ei mäleta tekstist ühtegi märksõna? Yandexi ja Google'i otsing on jõuetud. Appi tuleb Smart Taggeri arendus - semantilist otsingut kasutav "tark" programm annab teieni kõik tekstid, mille tähendus on populaarse sarjaga läbi põimunud. Projekt võitis grandi U.M.N.I.K. kogusumma 400 000 rubla!

MathOcr – valemituvastus (Viktor Prun)

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

ABC AI projekti raames koos MIPT-ga oleme juba kirjutanud nn neist, mis võimaldavad programme “kasvatada” Darwini evolutsiooni põhimõtete ja seaduste järgi. Samas, kuigi selline lähenemine tehisintellektile on loomulikult "külaline tulevikust". Aga kuidas süsteemid tehisintellekt luua täna? Kuidas neid koolitatakse? Viktor Kantor, Moskva Füüsika- ja Tehnoloogiainstituudi algoritmide ja programmeerimistehnoloogiate osakonna vanemlektor, Yandexi andmetehase kasutajakäitumise analüüsirühma juht, aitas meil seda välja mõelda.

Oma tehnoloogia küpsustsüklit regulaarselt värskendava uuringufirma Gartner hiljutise aruande kohaselt on masinõpe täna ootuste tipus. See pole üllatav: masinõpe on viimastel aastatel väljunud kitsa matemaatikute ja algoritmiteooria spetsialistide huviorbiidist ning tunginud esmalt IT-ärimeeste sõnavarasse ja seejärel maailma. tavainimestest. Nüüd, kui on olemas selline asi nagu närvivõrgud oma erilise "maagiaga", teavad kõik, kes on Prisma rakendust kasutanud, Shazamiga laule otsinud või DeepDreami kaudu edastatud pilte näinud.

Üks asi on aga tehnoloogiat kasutada ja teine ​​asi mõista selle toimimist. Levinud sõnad nagu "arvuti saab õppida, kui annate talle vihje" või "närvivõrk koosneb digitaalsetest neuronitest ja on paigutatud nagu inimese aju" võivad kedagi aidata, kuid sagedamini ajavad need olukorra segadusse. Need, kes kavatsevad matemaatikaõppega tõsiselt tegeleda, ei vaja populaarseid tekste: neile on olemas õpikud ja suurepärased veebikursused. Proovime minna keskteed: selgitada, kuidas õppimine tegelikult toimub võimalikult lihtsa ülesande puhul, ja seejärel näidata, kuidas saab sama lähenemisviisi rakendada tõeliste huvitavate probleemide lahendamisel.

Kuidas masinad õpivad

Alustuseks, et täpselt mõista, kuidas masinõpe toimub, määratleme mõisted. Nagu on määratlenud üks valdkonna teerajajatest Arthur Samuel, viitab masinõpe meetoditele, mis "võimaldavad arvutitel õppida ilma, et neid oleks otseselt programmeeritud". Masinõppe meetodeid on kaks laia klassi: juhendatud õpe ja juhendamata õpe. Esimest kasutatakse siis, kui näiteks peame õpetama arvutit otsima kassi kujutisega fotosid, teist - kui vajame masinat näiteks selleks, et saaksime iseseisvalt uudiseid lugudeks grupeerida, nagu see juhtub teenused nagu Yandex.News või Google News. See tähendab, et esimesel juhul on meil tegemist ülesandega, mis eeldab õige vastuse olemasolu (fotol olev kass on kas seal või mitte), teisel juhul pole ühest õiget vastust, kuid on erinevaid viise probleemi lahendamine. Keskendume esimesele probleemide klassile kui kõige huvitavamatele.

Seega peame õpetama arvutit ennustama. Ja eelistatavalt võimalikult täpselt. Ennustusi võib olla kahte tüüpi: kas tuleb valida mitme vastusevariandi vahel (kas pildil on kass või mitte - see on kahe variandi valik, piltidel tähtede äratundmise võimalus on ühe valik valik mitmekümne hulgast 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; tegelikult lahendatakse neid peaaegu samal viisil. Proovime mõista, kuidas.

Esimese asjana tuleb ennustussüsteem koostada, on koguda nn treeningvalim ehk andmed inimeste kaalu kohta elanikkonnas. Teine on tunnuste kogumi otsustamine, mille põhjal saame teha järeldusi kaalu kohta. On selge, et üks "tugevamaid" neist märkidest on inimese kasv, seetõttu piisab esmase hinnanguna ainult sellest. Kui kaal sõltub pikkusest lineaarselt, on meie ennustus väga lihtne: inimese kaal võrdub tema pikkusega, mis on korrutatud mõne koefitsiendiga, millele lisandub konstantne väärtus, mis on kirjutatud lihtsaima valemiga y \u003d kx + b. Kõik, mida me peame tegema, et treenida masinat inimese kehakaalu ennustamiseks, on kuidagi leida k ja b jaoks õiged väärtused.

Masinõppe ilu seisneb selles, et isegi kui uuritav sõltuvus on väga keeruline, ei muutu meie lähenemisviis sisuliselt vähe. Me tegeleme endiselt sama regressiooniga.

Ütleme nii, et inimese pikkus ei mõjuta inimese kaalu lineaarselt, vaid kuni kolmanda astmeni (mida üldiselt eeldatakse, sest kaal oleneb kehamahust). Selle sõltuvuse arvessevõtmiseks lisame võrrandisse lihtsalt veel ühe liikme, nimelt kolmanda kasvuastme oma koefitsiendiga, saades y=k 1 x+k 2 x 3 +b. Nüüd peame masina treenimiseks leidma mitte kaks, vaid kolm väärtust (k 1, k 2 ja b). Oletame, et tahame oma ennustuses arvesse võtta inimese jalanõude suurust, vanust, televiisori vaatamise aega ja kaugust tema korterist lähima kiirtoidukohani. Pole probleemi: paneme need funktsioonid lihtsalt samasse võrrandisse eraldi terminitena.

Kõige olulisem on luua universaalne viis vajalike koefitsientide (k 1 , k 2 , … k n ) leidmiseks. Kui jah, siis on meie jaoks peaaegu ükskõik, milliseid funktsioone ennustamiseks kasutada, sest masin ise õpib olulistele ja vähetähtsatele funktsioonidele palju kaalu andma. Õ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 peaaegu samastusid igasuguse masinõppe ja arenenud IT-ga üldiselt. Vormiliselt pole see tõsi: matemaatikaõppes ei kasutata alati närvivõrke, on ka teisi tehnoloogiaid. Kuid ü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 inimest foto järgi, rakenduste tekkimine, mis edastavad ühe pildi stiil teiseks või süsteemid tekstide genereerimiseks teatud isiku kõneviisis.

Seda, kuidas närvivõrgud on paigutatud, me juba. Siinkohal tahan lihtsalt rõhutada, et närvivõrkude tugevus võrreldes teiste masinõppesüsteemidega seisneb nende mitmekihilisuses, kuid see ei tee neist midagi põhimõtteliselt erinevat tööviisi poolest. Kihistamine võimaldab tõesti leida väga abstraktseid ühiseid jooni ja sõltuvused keerukatest funktsioonide komplektidest, nagu pildi pikslid. Kuid on oluline mõista, et õppimispõhimõtete poolest ei erine närvivõrk radikaalselt tavapäraste lineaarse regressiooni valemite komplektist, seega töötab sama gradiendi laskumise meetod ka siin suurepäraselt.

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

Selgitame näitega. Lähtusime ennustusest, mille puhul inimese kaal sõltub tema pikkusest ja pikkusest kuubik, mida väljendatakse valemiga y=k 1 x+k 2 x 3 +b. Mõnevõrra venitades, aga tegelikult võib isegi sellist valemit nimetada närvivõrguks. Selles, nagu ka tavalises närvivõrgus, on esimene kiht "neuroneid", mis on ühtlasi ka tunnuste kiht: need on x ja x 3 (noh, "üks neuron", mida me meeles peame ja mille jaoks vastutav koefitsient b). Ülemist ehk resultatiivset kihti tähistab üks "neuroni" y, st inimese prognoositav kaal. Ja esimese ja viimase "neuronite" kihi vahel on ühendused, mille tugevus või kaal on määratud koefitsientidega k 1 , k 2 ja b. Selle "närvivõrgu" treenimine 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 sisendtunnuste kombineerimine. Selliste kihtide kasutuselevõtt võimaldab mitte välja mõelda võimalikke sõltuvusi olemasolevate funktsioonide vahel, vaid tugineda nende juba olemasolevatele kombinatsioonidele närvivõrgus. Näiteks vanus ja keskmine telesaadete aeg võivad inimese kaalule sünergistlikult mõjuda, 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.

gradient laskumine

Niisiis, meil on teadaolevate andmetega näidete kogum, see tähendab tabel täpselt mõõdetud inimese kehakaaluga ja mingi sõltuvushü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.

Seda on üldiselt lihtne teha. Põhiidee on luua funktsioon, mis mõõdab praegust koguvea taset ja "väänab" koefitsiente nii, et koguvea tase järk-järgult langeks. Kuidas veataset langetada? Peame oma parameetreid õiges suunas kohandama.

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

Selgub, et lennukis on midagi kindla kõrguse taolist 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? Enamik Õige tee- liikuge kogu aeg allapoole punktist, kuhu me algselt sattusime. Nii et varem või hiljem jõuame kohaliku miinimumini – punktini, millest allapoole pole vahetus naabruses midagi. Pealegi on soovitav astuda erineva suurusega samme: kui kalle on järsk, võib astuda laiemalt, kui kalle on väike, siis parem hiilida kohaliku miinimumini "kikivarvul", muidu võib läbi lipsata.

Gradiendi laskumine toimib nii: muudame tunnuste kaalusid veafunktsiooni suurima languse suunas. Muudame neid iteratiivselt, st teatud sammuga, mille väärtus on võrdeline kalde järsusega. Huvitaval kombel ei muutu funktsioonide arvu suurenemisega (lisades inimese pikkuse, vanuse, kinga suuruse ja nii edasi kuubiku) tegelikult midagi, lihtsalt meie maastik ei muutu mitte kahemõõtmeliseks, 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 muutujad k ja b, näiteks 0 ja 50. Siis ennustab süsteem meile, et iga valimisse kuuluva inimese kaal on alati 50 kilogrammi y=0×x+50 Graafikul näeb selline sõltuvus välja sirgena horisontaaliga paralleelne joon. On selge, et see pole kuigi hea ennustus. Nüüd võtame kaalu hälbe sellest ennustatud väärtusest, ruudustage see (nii et negatiivseid väärtusi ka arvesse võetaks) ja summeerime - see on viga selles punktis. Kui olete analüüsi algusega tuttav, siis saate isegi selgitada, et suurima languse suuna annab veafunktsiooni osatuletis k ja b suhtes ning samm on väärtus, mis valitakse praktilised kaalutlused: väikeste sammude arvutamine võtab palju aega ja suured sammud võivad viia selleni, et me jääme miinimumist ilma.

Olgu, aga mis siis, kui meil pole lihtsalt paljude funktsioonidega kompleksne regressioon, vaid tõeline närvivõrk? Kuidas me sel juhul gradiendi laskumist rakendame? Selgub, et gradient-laskumine toimib närvivõrguga täpselt samamoodi, ainult treenimine toimub 1) etappide kaupa, 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 täpseks esitamiseks on vaja välja kirjutada osatuletised (näiteks), toimub intuitiivsel tasandil kõik üsna lihtsalt: iga valimi näite puhul on meil teatud ennustus närvivõrgu väljund. Õ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 osalise tuletise 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 õiges suunas “väänades”, 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. Kasulik on teada, mis selliseid raskusi põhjustab.

Gradiendi laskumise raskused

Vale absoluutse miinimumi valik. Gradiendi laskumise meetod aitab leida lokaalset 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 peatab oma töö.

Kujutage ette, et seisate mäe otsas. 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 elus suudad näha, et tasub natukene üles tõusta ja saab siis veelgi madalamale minna, siis sellises olukorras algoritm lihtsalt seiskub. Sageli saab seda olukorda vältida, valides õige sammu.

Vale sammu valik. Gradiendi laskumise meetod on iteratiivne meetod. See tähendab, et me peame ise valima sammu suuruse - kiiruse, millega laskume. Liiga suure sammu valides võime lennata mööda vajalikust ekstreemumist ja mitte leida miinimumi. See võib juhtuda, kui olete silmitsi väga järsu laskumisega. Ja liiga väikese sammu valimine ähvardab algoritmi üliaeglase tööga, kui leiame end suhteliselt tasane pind. Kui kujutame taas ette, et oleme järsu mäe tipus, siis võib kujuneda olukord, kus väga järsu miinimumi lähedale 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 siis, kui miinimumi mõlemal küljel on tasased alad – tasasele alale sattunud algoritm vähendab sammu ja lõpuks peatub. Kui otsustate mäe otsas seistes liikuda oma maja poole madalikul, võib tee olla liiga pikk, kui kogemata väga tasasele alale eksite. Või kui lamedate alade servades on praktiliselt järsud “nõlvad”, hüppab algoritm väga suure sammu valides ühelt nõlvalt teisele, praktiliselt ilma miinimumini liikumata.

Kõiki neid keerulisi punkte tuleb masinõppesüsteemi kujundamisel arvesse võtta. Näiteks on alati kasulik jälgida täpselt, kuidas veafunktsioon ajas muutub – kas see langeb iga uue tsükliga või märgib aega, kuidas muutub selle kukkumise iseloom olenevalt sammu suuruse muutusest. Vältimaks halva lokaalse miinimumi tabamist, võib olla kasulik alustada maastikul erinevatest juhuslikult valitud punktidest – siis on kinnijäämise tõenäosus palju väiksem. Gradiendi laskumisega tegelemisel on palju rohkem suuri ja väikeseid saladusi ning on ka eksootilisemaid õppimisviise, millel on vähe sarnasust gradiendi laskumisega. See aga on AI ABC projekti raames juba teise vestluse ja eraldi artikli teema.

Koostanud Aleksander Eršov