A Taxi" arról szól, hogyan jósolják meg az adatok a jövőt és hogyan alakítják a világot. „Egy menő adattudós fizetést kap, mint egy átlagos vállalat vezérigazgatója.” A Yandex.Taxi gépi tanulási szakértő arról, hogyan jósolják meg az adatok a jövőt és formálják a világot A tapasztalat már nem játszik szerepet

- Elmondana egy teljesen primitív példát, hogyan működik a gépi tanulás?

Tud. Van egy példa a döntési fának nevezett gépi tanulási technikára, amely az egyik legrégebbi dolog. Most tegyük meg. Tegyük fel, hogy egy absztrakt személy randevúzni hív. Mi a fontos számodra?

- Először is, akár ismerem, akár nem...

(Victor ezt írja a táblára.)

...Ha nem tudom, akkor válaszolnom kell arra a kérdésre, hogy vonzó-e vagy sem.

És ha tudod, akkor nem számít? Azt hiszem értem, ez a barátzóna szál! Általában azt írom, hogy ha nem tudod, és nem vonzó, akkor a válasz „nem, valószínűleg”. Ha tudja, a válasz „igen”.

- Ha jól tudom, az is fontos!

Nem, ez egy barátzóna fiók lesz.

Oké, akkor itt jelezzük, hogy érdekes-e vagy sem. Mégis, ha nem ismersz valakit, az első reakció a megjelenés, egy ismerősnél már azt nézzük, hogy mit és hogyan gondol.

Csináljuk másképp. Akár ambiciózus, akár nem. Ha ambiciózus, akkor nehéz lesz barátzónába hozni, mert többet akar majd. De a ambiciózus kitart.

(Victor befejezi a döntő fa rajzolását.)

Kész. Most megjósolhatod, hogy melyik sráccal mész randevúzni a legnagyobb valószínűséggel. Egyébként egyes társkereső szolgálatok ilyeneket jósolnak. Analógia alapján megjósolhatja, hogy a vásárlók hány árut vásárolnak, és hol lesznek az emberek abban a napszakban.

A válaszok nem csak „igen” és „nem”, hanem számok formájában is lehetnek. Ha pontosabb előrejelzést szeretne, készíthet több ilyen fát, és átlagolhatja őket. És egy ilyen egyszerű dolog segítségével meg lehet jósolni a jövőt.

Képzeld el, nehéz volt az embereknek kétszáz évvel ezelőtt ilyen sémát kitalálni? Egyáltalán nem! Ez a séma nem hordoz semmiféle rakétatudományt. Mint jelenség, a gépi tanulás körülbelül fél évszázada létezik. Ronald Fisher a 20. század elején kezdett adatok alapján jósolni. Az íriszeket a csészelevelek és szirmok hossza és szélessége szerint osztotta ki, ezen paraméterek alapján határozta meg a növény fajtáját.

Az iparban az elmúlt évtizedekben aktívan alkalmazzák a gépi tanulást: nem is olyan régen jelentek meg olyan nagy teljesítményű és viszonylag olcsó gépek, amelyek nagy mennyiségű adat feldolgozásához szükségesek, például ilyen döntési fák esetében. De még mindig izgalmas: minden feladathoz ezeket a dolgokat lerajzoljuk, és felhasználjuk a jövő megjósolására.

- Nos, semmivel sem jobb, mint a focimeccsek polipjóslója...

Nem, mit törődünk a polipokkal? Bár nálunk nagyobb a változékonyság. Most a gépi tanulás segítségével időt, pénzt takaríthat meg, és javíthatja az élet kényelmét. A gépi tanulás néhány évvel ezelőtt legyőzte az embereket a képbesorolás terén. Például egy számítógép 20 terrier fajtát képes felismerni, de egy hétköznapi ember nem.

- És amikor elemezzük a felhasználókat, minden egyes személy egy számkészlet az Ön számára?

Durván szólva igen. Amikor adatokkal dolgozunk, az összes objektumot, beleértve a felhasználói viselkedést is, egy bizonyos számkészlet írja le. És ezek a számok az emberek viselkedésének sajátosságait tükrözik: milyen gyakran taxizik, milyen taxiosztályt használnak, milyen helyekre szoktak menni.

Jelenleg aktívan építünk hasonló modelleket, hogy felhasználjuk őket a hasonló viselkedésű embercsoportok azonosítására. Ha új szolgáltatást vezetünk be, vagy egy régit szeretnénk népszerűsíteni, az érdeklődőknek ajánljuk.

Például most van egy szolgáltatásunk – két gyerekülés egy taxiban. Ezzel a hírrel mindenkit spamelhetünk, vagy konkrétan csak egy meghatározott kört tájékoztathatunk róla. Az év során számos felhasználó gyűlt össze, akik kommentben írták, hogy két gyerekülésre van szükségük. Találtunk rájuk és hozzájuk hasonló emberekre. Általában 30 év feletti emberekről van szó, akik rendszeresen utaznak és szeretik a mediterrán konyhát. Bár persze sok más jel is van, ez csak egy példa.

- Még ilyen finomságokat is?

Ez egy egyszerű dolog. Mindent keresési lekérdezések segítségével számítanak ki.

Működhet ez valahogy egy alkalmazásban? Például tudja-e, hogy koldus vagyok, és előfizetek olyan csoportokra, mint a „Hogyan éljek túl havi 500 rubelből” – csak olcsó autókat kínálnak, előfizetnek a SpaceX híreire – és időről időre eladnak. egy Tesla?

Lehet, hogy ez így működik, de az ilyesmit a Yandex nem hagyja jóvá, mert ez diszkrimináció. Egy szolgáltatás személyre szabásakor jobb, ha nem a legelfogadhatóbbat, hanem az elérhető legjobbat kínálja, és azt, amit az illető szeret. Az „ennek jobb autó kell, ennek meg kevésbé jó” logika szerinti elosztás pedig gonosz.


Mindenkinek vannak perverz vágyai, és néha nem egy mediterrán étel receptjét kell keresni, hanem például képeket a koprofíliáról. Ebben az esetben is működni fog a személyre szabás?

Mindig van privát mód.

Ha nem akarom, hogy bárki is tudjon az érdeklődési köreimről, vagy mondjuk, hogy a barátaim hozzám jönnek, és meg akarnak nézni egy szemetet, akkor jobb, ha inkognitómódot használok.

Azt is eldöntheti, hogy melyik cég szolgáltatását használja, például a Yandexet vagy a Google-t.

- Van különbség?

Komplex probléma. Nem tudok másokról, de a Yandex szigorúan védi a személyes adatokat. Az alkalmazottakat különösen figyelik.

- Azaz, ha szakítottam egy sráccal, nem fogom tudni megtudni, hogy elment-e ebbe a dachába vagy sem?

Még akkor is, ha a Yandexnél dolgozik. Ez persze szomorú, de igen, ezt nem lehet kideríteni. A legtöbb alkalmazott nem is fér hozzá ezekhez az adatokhoz. Minden titkosítva van. Egyszerű: nem kémkedhetsz emberek után, ezek személyes adatok.

Egyébként volt egy érdekes esetünk a srácokkal való szakítás témájában. Amikor előrejelzést készítettünk a „B” pontra - a taxi célpontjára, tippeket vezettünk be. Ide nézd.

(Victor bejelentkezik a Yandex.Taxi alkalmazásba.)

Például a taxi azt hiszi, hogy otthon vagyok. Azt javasolja, hogy menjek dolgozni vagy a RUDN Egyetemre (ott tartok előadásokat a Data Mining in Action gépi tanulási kurzus részeként). És egy ponton, miközben ezeket a tippeket kidolgoztuk, rájöttünk, hogy el kell kerülnünk a felhasználó kompromittálását. Bárki láthatja a B pontot. Ezen okok miatt nem voltunk hajlandóak hasonlóság alapján helyeket javasolni. Ellenkező esetben leülsz egy tisztességes helyre tisztességes emberekkel, rendelsz egy taxit, és azt írják neked: "Nézd, még nem jártál ebben a bárban!"

- Mik azok a kék pontok, amelyek villognak a térképen?

Ezek átvételi pontok. Ezek a pontok megmutatják, hol a legkényelmesebb taxit hívni. Hiszen olyan helyre is telefonálhat, ahova teljesen kényelmetlen lenne elmenni. De általában bárhol hívhat.

- Igen, bármikor. Ezzel valahogy két blokkot repültem.

Az utóbbi időben különféle nehézségek adódtak a GPS-szel, ami különféle vicces helyzetekhez vezetett. Az embereket például a Tverszkaján hajóval szállították át a Csendes-óceánon. Amint látja, néha vannak kihagyások és kettőnél több blokk.

- És ha újraindítja az alkalmazást, és újra rákattint, az ár több rubelre változik. Miért?

Ha a kereslet meghaladja a kínálatot, az algoritmus automatikusan növelő együtthatót generál – ez segíti azokat, akiknek a lehető leggyorsabban kell távozniuk, még a nagy kereslet időszakában is taxizáshoz. A gépi tanulás segítségével egyébként megjósolható, hogy hol lesz nagyobb kereslet például egy órán belül. Ez segít nekünk megmondani a járművezetőknek, hogy hol lesz több megrendelés, hogy a kínálat megfeleljen a keresletnek.

- Nem gondolja, hogy a Yandex.Taxi hamarosan megöli az egész taxipiacot?

Szerintem nem. Az egészséges versenyért vagyunk, és nem félünk tőle.

Jómagam például különböző taxiszolgáltatásokat veszek igénybe. Számomra fontos a várakozási idő, ezért több alkalmazást is megnézek, hogy melyik taxi érkezik gyorsabban.


- Összeálltál az Uberrel. Miért?

Nem az én dolgom kommentálni. Szerintem az egyesülés mélyen ésszerű döntés.

Németországban egy srác fürdőkádat szerelt fel a drónokra, és elrepült egy hamburgert. Gondoltad volna, hogy eljött az idő, hogy urald a légteret?

A légtérről nem tudok. Olyan híreket követünk, mint „Az Uber taxikat bocsátott ki a hajókon”, de a levegőről nem tudok mit mondani.

- Mi a helyzet az önvezető taxikkal?

Van itt egy érdekes pont. Fejlesztjük őket, de át kell gondolnunk, hogyan is kell pontosan használni őket. Még korai megjósolni, hogy milyen formában és mikor jelennek meg az utcákon, de mindent megteszünk annak érdekében, hogy egy teljesen autonóm autó technológiáját fejlesszük, ahol emberi sofőrre egyáltalán nem lesz szükség.

- Félnek attól, hogy a drónszoftvert feltörik az autó távirányítása érdekében?

Mindig és mindenhol vannak kockázatok, ahol vannak technológiák és kütyük. De a technológia fejlődésével együtt egy másik irány is fejlődik - a védelme és a biztonság. Mindenki, aki valamilyen módon részt vesz a technológiai fejlesztésben, biztonsági rendszereken dolgozik.

- Milyen felhasználói adatokat gyűjt, és hogyan védi azokat?

Anonimizált használati adatokat gyűjtünk, például hol, mikor és hol történt az utazás. Minden fontos kivonatolva van.

- Ön szerint a drónok miatt csökkenni fog a munkahelyek száma?

Szerintem csak nagyobb lesz. Ennek ellenére ezeket a drónokat is karban kell tartani valahogy. Ez persze egy kicsit megterhelő helyzet, megváltoztatja a szakterületét, de mit tehet?

- Gref minden előadásán azt mondja, hogy az ember legalább háromszor radikálisan megváltoztatja a szakmáját.

Nem tudok megnevezni egyetlen olyan specialitást sem, ami örökké tart. Egy fejlesztő nem ugyanazon a nyelven és nem ugyanazokkal a technológiákkal dolgozik egész életében. Mindenhol újjá kell építeni. A gépi tanulással tisztán érzem, hogy a nálam hat évvel fiatalabb srácok sokkal gyorsabban tudnak gondolkodni, mint én. Ugyanakkor a 40-45 évesek ezt még erősebben érzik.

- A tapasztalat már nem játszik szerepet?

Játék. De a módszerek változnak, el lehet jönni egy olyan területre, ahol például a mélytanulást nem alkalmazzák, ott dolgozol egy ideig, aztán mindenhol bevezetik a mély tanulási módszereket, és nem értesz hozzá semmit. Ez minden. Tapasztalata csak a csapat munkájának tervezésében lehet hasznos, és akkor sem mindig.

- És az ön szakmája adattudós, van rá igény?

Az adattudományi szakemberek iránti kereslet egyszerűen lekerült a listáról. Nyilvánvalóan ez az őrült hype időszaka. Hála Istennek, a blokklánc segített egy kicsit alábbhagyni ezt a hype-ot. A blokklánc-specialisták még gyorsabban felvehetők.

De sok cég most úgy gondolja, hogy ha pénzt fektet be a gépi tanulásba, akkor kertje azonnal virágba borul. Ez rossz. A gépi tanulásnak konkrét problémákat kell megoldania, nem csak léteznie.

Előfordul, hogy egy bank ajánló rendszert szeretne készíteni a felhasználók számára nyújtott szolgáltatásokhoz. Azt kérdezzük: „Ön szerint ez gazdaságilag indokolt lesz?” Azt válaszolják: „Nem érdekel minket. Csináld. Mindenkinek van ajánlási rendszere, trendben leszünk.”

A fájdalom az, hogy az üzleti életben igazán hasznos dolgokat nem lehet egy nap alatt elvégezni. Figyelnünk kell, hogyan tanul a rendszer. De az elején mindig hibázik; előfordulhat, hogy edzés közben hiányoznak az adatok. Kijavítod a hibákat, majd újra kijavítod, sőt mindent újra csinálsz. Ezek után úgy kell beállítani a rendszert, hogy élesben is működjön, hogy stabil és skálázható legyen, ez még ideje. Ennek eredményeként egy projekt hat hónapot, egy évet vagy többet vesz igénybe.


Ha a gépi tanulási módszereket fekete doboznak tekinti, könnyen elszalasztja, amikor valami őrült dolog kezd megtörténni. Van egy szakállas történet. A katonaság egy olyan algoritmus kidolgozását kérte, amellyel elemezni lehet, hogy van-e tank a képen vagy sem. A kutatók elkészítették, tesztelték, kiváló a minőség, minden szuper, a katonaságnak adták. Jön a katonaság és azt mondja, hogy semmi sem működik. A tudósok kezdik idegesen megérteni. Kiderült, hogy a katonaság által hozott tankkal készült összes fényképen egy kullancs került a sarokba egy tollal. Az algoritmus hibátlanul megtanulta megtalálni a pipát, semmit sem tudott a tankról. Természetesen az új képeken nem volt pipa.

Találkoztam olyan gyerekekkel, akik kialakítják saját párbeszédrendszerüket. Gondolt már arra, hogy együtt kell működnie a gyerekekkel?

Már jó ideje járok mindenféle iskolásoknak szóló rendezvényekre, előadásokat tartok a gépi tanulásról. És mellesleg az egyik témát egy tizedik osztályos tanította nekem. Teljesen biztos voltam benne, hogy jó és érdekes lesz a történetem, büszke voltam magamra, elkezdtem sugározni, és a lány azt mondta: "Ó, ezt minimalizálni akarjuk." Nézem és gondolkodom, tényleg, hogy miért, és az igazságot minimálisra lehet csökkenteni, és nincs itt semmi különös, amit bizonyítani kell. Már több év eltelt, most a Fizikai és Technológiai Intézet hallgatójaként hallgatja előadásainkat. A Yandexnél egyébként van a Yandex.Lyceum, ahol az iskolások ingyenesen sajátíthatják el az alapvető programozási ismereteket.

- Olyan egyetemek és karok ajánlása, ahol jelenleg gépi tanulást tanítanak.

Vannak MIPT, FIVT és FUPM karok. A HSE-nek is van egy csodálatos számítástechnikai tanszéke, a Moszkvai Állami Egyetemen pedig gépi tanulás folyik a számítástechnikai komplexumban. Nos, most meghallgathatja kurzusunkat a RUDN Egyetemen.

Mint már mondtam, ez a szakma keresett. A műszaki oktatásban részesült emberek nagyon sokáig teljesen más dolgokat csináltak. A gépi tanulás csodálatos példa arra, hogy mindaz, amit a műszaki végzettségűek tanítottak, ma már közvetlenül szükséges, hasznos és jól fizetett.

- Milyen jó?

Nevezze meg az összeget.

- 500 ezer havonta.

Megteheti, anélkül, hogy közönséges adattudós lennél. De egyes cégeknél egyszerű munkáért 50 ezret is kereshet egy gyakornok.Nagyon széles a kínálat. Általánosságban elmondható, hogy egy menő adattudós fizetése összehasonlítható néhány középvállalat vezérigazgatójának fizetésével. Sok cégben a fizetésen túl sok egyéb juttatás is jár a munkavállalónak, és ha jól látható, hogy az illető nem azért jött, hogy egy jó márkát tegyen az önéletrajzába, hanem hogy ténylegesen dolgozzon, akkor minden rendben lesz vele.

Majdnem egy év telt el azóta, hogy az FIVT-ben elindult egy szokatlan téma – egy innovatív műhely. Lényege az IT startupok létrehozása hallgatói csapatok által tapasztalt mentorok irányításával. Jól sikerült: a tanfolyamnak köszönhetően valaki a nyár egy részét a Krémvölgyben töltötte, valaki 800 000 rubel összegű támogatást kapott a projekt fejlesztésére, és az ABBYY kész teljesen megvenni valakitől a projektet. És ez nem minden eredménye a workshopnak!

2011 elején az FIVT harmadéves hallgatói összegyűltek a díszteremben, és elmondták: a következő évben létre kell hoznia egy saját startupot. A diákok nem fogadták el félreérthetően ezt az ötletet: egyáltalán nem volt világos, hogyan kell csinálni, és a felelősség szokatlan volt - elvégre technológiai vállalkozást kellett létrehozni, és nem csak egy újabb oktatási projektet. Íme, mit gondol erről a MIPT fizika diákolimpiájának győztese, a Yandeska tanszék hallgatója, Kantor Viktor:

Amikor a felvételkor az FIVT-t választottam, abban reménykedtem, hogy lesz valami hasonló. Szóval örülök, hogy nem volt hiábavaló reményem. Az év során érezhető volt, hogy a szak még formálódik, sok újdonság van benne, sok kérdés nem csak a hallgatók, hanem a szervezők számára is vitathatóvá vált, de összességében úgy gondolom, hogy a tendenciák pozitívak. Tetszett ez a tanfolyam.

A hallgatók munkájának megkönnyítése érdekében különböző kurátorokat kértek fel, hogy kínálják ötleteiket innovatív vállalkozások építésére. Teljesen különböző emberek voltak közöttük: a MIPT egyetemi és posztgraduális hallgatóitól kezdve az Ernst&Young innovációs tanácsadóig, Jurij Pavlovics Ammosovig (ő volt az egész tanfolyam vezetője) és Mihail Batinig, aki regeneratív gyógyászattal és élethosszabbítási kérdésekkel foglalkozik. Ennek eredményeként a fizikus és technikus hallgatók kiválasztották a számukra legérdekesebb ötleteket, kurátorok csatlakoztak a csapatokhoz, és megkezdődött a kemény, de izgalmas munka.

Az azóta eltelt közel egy év alatt a srácok sok problémával szembesültek, amelyek egy része megoldódott. Most értékelhetjük az eredményeiket – a nehézségek ellenére a srácok megbirkóztak. A MIPT hallgatóinak (a Filozófiai Karon kívül a Filológiai Kar és más karok hallgatói is bekapcsolódtak a folyamatba) több igen érdekes és életképes projektet sikerült elkészíteniük:

Askeroid (korábban Ask Droid) – okostelefonok keresése ( Anasztázia Urjaseva)

Androidos alkalmazás, amellyel kényelmesen kereshet számos keresőben. Néhány szakértő érdeklődést mutatott a fejlesztés iránt, és ennek eredményeként Anastasia az egész elmúlt nyarat a Szilícium-völgy egyik leghíresebb inkubátorában, a Plug&Play-ben töltötte. a technológiai vállalkozás alapjainak elsajátítása és a nemzetközi vállalati szakértőkkel való beszélgetés.

1minute.ru – egy perc végleg (Lev Grunin)

Ez a projekt lehetőséget ad bárkinek arra, hogy egyszerűen, gyorsan és teljesen ingyenesen jótékonykodjon. A modell egyszerű: a hirdetők bizonyos tevékenységeket kínálnak az oldalon, a felhasználók önként vesznek részt bennük, és a hirdetésből származó összes pénzt egy jótékonysági alapítványnak utalják át. Az indulástól számított egy héten belül a projekt több mint 6500 felhasználót gyűjtött össze, és nem áll meg itt. Ennek eredményeként Lev és csapatának köszönhetően 600 árvaházi gyermek kap megtisztelő ajándékot a Mikulástól az újévre. Eltöltöttél már egy percet egy jó tettre?!

Embedded Desktop – számítógép a telefonban (Alexey Vukolov)

Egy alkalmazás, amely lehetővé teszi, hogy egy csomagban egyesítse a számítógép képességeit és a telefon mobilitását - rendkívül hasznos termék az elfoglalt emberek számára, akik gyakran utaznak üzleti utakra. Elég egy okostelefonra telepíteni, és a felhasználó „beszerezheti” a saját számítógépét bármely szállodában, irodában, sőt bárhol, ahol monitort (tévé is megfelelő), billentyűzetet és egy egér. A projekt támogatást kapott az ötlet kidolgozására és a Technovation Cup kiállításon is bemutatásra került, a befolyt pénzből pedig már aktívan vásárol a csapat a felszereléseket. A MIPS amerikai processzorgyártó rendkívül érdeklődő a fejlesztés iránt.

Intelligens címkéző – szemantikus keresés a dokumentumok között (Victor Kantor)

Mit tegyen, ha eszébe jut, hogy valahol a postaládájában volt egy nagyon fontos levél, amely a Big Bang Theory legújabb epizódjáról szólt, de nem emlékszik egyetlen kulcsszóra sem a szövegből? A Yandex és a Google kereső tehetetlen. A Smart Tagger fejlesztése a segítségére lesz - egy „intelligens” program, amely szemantikus keresést használ, megadja az összes olyan szöveget, amelynek jelentése összefonódik a népszerű TV-sorozattal. A projekt támogatást nyert az U.M.N.I.K. versenyen. összesen 400 000 rubel!

MathOcr – képlet felismerés (Viktor Prun)

Az ABBYY egy érdekes feladatot javasolt a megvalósításhoz - egy olyan program létrehozását, amely bármilyen bonyolultságú matematikai képletet felismer. A FIVT hallgatói az érdeklődő hallgatókkal együttműködve teljesítették a feladatot - a modul valójában matematikai vagy fizika tankönyvekből szkennelt képleteket ismer fel. Eredmény: Az ABBYY készen áll arra, hogy sok pénzért megvásárolja ezt a terméket.

A MIPT-vel közös „ABC of AI” projekt keretében már írtunk az úgynevezett programokról, amelyek lehetővé teszik a programok „növekedését” a darwini evolúció elvei és törvényei szerint. A mesterséges intelligencia ezen megközelítése azonban egyelőre minden bizonnyal „a jövő vendége”. De hogyan jönnek létre manapság a mesterséges intelligencia rendszerek? Hogyan képezik őket? Victor Kantor, a MIPT Algoritmusok és Programozási Technológiák Tanszékének vezető oktatója, valamint a Yandex Data Factory felhasználói viselkedéselemző csoportjának vezetője segített ennek kiderítésében.

A Gartner kutatócég friss jelentése szerint, amely rendszeresen frissíti a „technológia érettségi ciklusát”, a gépi tanulás jelenleg az összes IT területén az elvárások csúcsán van. Ez nem meglepő: az elmúlt években a gépi tanulás kikerült a matematikusok és az algoritmuselméleti szakemberek szűk körének érdeklődési köréből, és először az informatikai üzletemberek szókincsébe, majd a világba is behatolt. hétköznapi embereké. Most már mindenki, aki használta a Prisma alkalmazást, keresett dalokat a Shazam segítségével, vagy látott képeket a DeepDreamen keresztül, tudja, hogy létezik olyan dolog, mint a neurális hálózatok különleges „varázslatukkal”.

Egy dolog azonban a technológiát használni, és egy másik, hogy megértsük, hogyan működik. Az olyan általános szavak, mint „a számítógép képes tanulni, ha adsz neki egy tippet” vagy „egy neurális hálózat digitális neuronokból áll, és úgy épül fel, mint az emberi agy”, segíthetnek valakinek, de gyakran csak összekeverik a helyzetet. Aki komolyan fog matematikát tanulni, annak nincs szüksége népszerű szövegekre: vannak tankönyvek és kiváló online kurzusok számukra. Megpróbálunk egy középutat választani: elmagyarázzuk, hogyan történik valójában a tanulás egy nagyon egyszerű feladatnál, majd megmutatjuk, hogyan lehet ugyanazt a megközelítést alkalmazni valódi érdekes problémák megoldására.

Hogyan tanulnak a gépek

Először is, hogy pontosan megértsük, hogyan történik a gépi tanulás, határozzuk meg a fogalmakat. E terület egyik úttörője, Arthur Samuel meghatározása szerint a gépi tanulás olyan módszerekre utal, amelyek „lehetővé teszik a számítógépek számára, hogy közvetlenül programozás nélkül tanuljanak”. A gépi tanulási módszereknek két nagy csoportja van: a felügyelt tanulás és a felügyelet nélküli tanulás. Az elsőt akkor használjuk, ha például meg kell tanítanunk a számítógépet macskák képeivel keresni, a második pedig akkor, amikor szükségünk van a gépre, például, hogy a híreket önállóan történetekbe tudjuk csoportosítani, ahogy az a szolgáltatásokban történik. mint a Yandex.News vagy a Google News. Vagyis az első esetben egy olyan feladattal van dolgunk, amely a helyes válasz meglétét feltételezi (a képen látható macska vagy ott van, vagy nincs), a második esetben nincs egyetlen helyes válasz, de többféle mód van. hogy megoldja a problémát. Kifejezetten a problémák első osztályára fogunk összpontosítani, mint a legérdekesebbekre.

Tehát meg kell tanítanunk a számítógépet előrejelzések készítésére. Ezenkívül kívánatos, hogy a lehető legpontosabb legyen. Az előrejelzések kétféleek lehetnek: vagy több válaszlehetőség közül kell választani (hogy van-e macska a képen vagy sem, az egyik lehetőség közül választhat, a betűk felismerése a képeken az egyik lehetőség közül választhat több tucatból és így tovább), vagy készítsen számszerű előrejelzést . Például megjósolhatja egy személy súlyát magassága, életkora, cipőmérete stb. alapján. Ez a két típusú probléma csak látszólag különbözik, de valójában szinte azonos módon oldódnak meg. Próbáljuk megérteni, pontosan hogyan.

Az első dolog, hogy előrejelző rendszert készítsünk, egy úgynevezett képzési minta gyűjtése, vagyis a népességben lévő emberek súlyára vonatkozó adatok. A második az, hogy döntsünk egy sor jelről, amely alapján következtetéseket vonhatunk le a súlyra vonatkozóan. Nyilvánvaló, hogy az egyik „legerősebb” ilyen jel az ember magassága lesz, így első közelítésként elegendő csak ezt venni. Ha a súly lineárisan függ a magasságtól, akkor az előrejelzésünk nagyon egyszerű lesz: egy személy súlya egyenlő lesz a magasságának szorozva valamilyen együtthatóval, plusz egy állandó értékkel, amelyet a legegyszerűbb y=kx+b képlettel írunk fel. Csak annyit kell tennünk, hogy megtanítsuk a gépet, hogy előre jelezze egy személy súlyát, hogy valahogy megtaláljuk a helyes k és b értékeket.

A gépi tanulás szépsége abban rejlik, hogy még ha a vizsgált kapcsolat nagyon összetett is, lényegében semmi sem fog megváltozni a megközelítésünkön. Még mindig ugyanazzal a regresszióval fogunk foglalkozni.

Tegyük fel, hogy az ember súlyát a magassága nem lineárisan, hanem harmadfokig befolyásolja (ami általában elvárható, mert a súly a testtérfogattól függ). Ennek a függőségnek a figyelembe vételéhez egyszerűen bevezetünk egy másik tagot az egyenletünkbe, mégpedig a növekedés harmadik hatványát a saját együtthatójával, így y=k 1 x+k 2 x 3 +b-t kapunk. Most a gép betanításához nem két, hanem három mennyiséget kell találnunk (k 1, k 2 és b). Tegyük fel, hogy előrejelzésünkben figyelembe szeretnénk venni az ember cipőjének méretét, életkorát, a tévézéssel eltöltött időt, valamint a lakástól a legközelebbi gyorsétteremtől való távolságot is. Nem probléma: ezeket a jellemzőket egyszerűen hozzáadjuk külön kifejezésekként ugyanabba az egyenletbe.

A legfontosabb dolog egy univerzális módszer létrehozása a szükséges együtthatók (k 1, k 2, ... k n) megtalálására. Ha létezik, akkor szinte közömbös lesz számunkra, hogy milyen tulajdonságokat használjunk az előrejelzéshez, mert a gép maga megtanulja, hogy a fontosaknak nagy súlyt, a lényegtelennek pedig kis súlyt adjanak. Szerencsére egy ilyen módszert már feltaláltak, és szinte minden gépi tanulás sikeresen működik rajta: a legegyszerűbb lineáris modellektől az arcfelismerő rendszerekig és a beszédelemzőkig. Ezt a módszert gradiens süllyedésnek nevezik. Mielőtt azonban elmagyaráznánk, hogyan működik, egy kis kitérőt kell tennünk, és beszélnünk kell a neurális hálózatokról.

Neurális hálózatok

2016-ban a neurális hálózatok olyan szorosan bekerültek az információs napirendbe, hogy szinte azonosították őket minden gépi tanulással és általában a fejlett informatikával. Formálisan ez nem igaz: a neurális hálózatokat nem mindig használják a matematikai tanulásban, léteznek más technológiák is. De általánosságban persze érthető egy ilyen asszociáció, mert most éppen a neurális hálózatokon alapuló rendszerek adják a „legvarázslatosabb” eredményeket, mint például az ember keresésének képessége a fényképen, olyan alkalmazások megjelenése, amelyek továbbítják. az egyik kép stílusa a másikhoz, vagy rendszerek szövegek generálására egy bizonyos személy beszédmódjában.

A neurális hálózatok felépítésének módja már... Itt csak azt szeretném hangsúlyozni, hogy a neurális hálózatok erőssége más gépi tanulási rendszerekhez képest többrétegűségükben rejlik, de ettől még nem különböznek egymástól alapvetően a működésükben. A többrétegű funkció valóban lehetővé teszi, hogy nagyon absztrakt általános jellemzőket és függőségeket találjon összetett jellemzőkészletekben, például pixelekben a képen. Fontos azonban megérteni, hogy a tanulási elvek szempontjából egy neurális háló nem különbözik gyökeresen a hagyományos lineáris regressziós képletek halmazától, így ugyanaz a gradiens süllyedési módszer itt is remekül működik.

A neurális hálózat „ereje” a neuronok köztes rétegének jelenlétében rejlik, amely összefoglalóan egyesíti a bemeneti réteg értékeit. Emiatt a neurális hálózatok nagyon absztrakt jellemzőket találhatnak az adatokban, amelyeket nehéz egyszerű képletekre, például lineáris vagy másodfokú összefüggésekre redukálni.

Magyarázzuk meg egy példával. Megállapítottunk egy jóslatot, amelyben az ember súlya függ a magasságától és kockás magasságától, amelyet az y=k 1 x+k 2 x 3 +b képlettel fejezünk ki. Némi nyúlással, de valójában még egy ilyen képlet is nevezhető neurális hálózatnak. Ebben, mint egy reguláris neurális hálózatban, van egy „neuronok” első rétege, amely egyben a tulajdonságok rétege is: ezek az x és az x 3 (na jó, az „egységneuron”, amelyet szem előtt tartunk, és amelyre a b együttható a felelős). A felső vagy az eredményül kapott réteget egy y „neuron” jelenti, vagyis a személy előre jelzett súlya. A „neuronok” első és utolsó rétege között pedig olyan kapcsolatok vannak, amelyek erősségét vagy súlyát a k 1, k 2 és b együtthatók határozzák meg. Ennek a „neurális hálózatnak” a betanítása egyszerűen azt jelenti, hogy ugyanazokat az együtthatókat kell megtalálni.

Az egyetlen különbség a „valódi” neurális hálózatoktól itt az, hogy nincs egyetlen köztes (vagy rejtett) neuronrétegünk, amelynek feladata a bemeneti funkciók kombinálása. Az ilyen rétegek bevezetése lehetővé teszi, hogy ne „fejből” találjon ki lehetséges függőséget a meglévő funkciók között, hanem a neurális hálózatban már meglévő kombinációikra hagyatkozzon. Például az életkor és az átlagos tévé előtt eltöltött idő szinergikusan hathat az ember testsúlyára, de ha van neurális hálózat, ezt nem kötelező előre tudnunk, és a termékét beírni a képletbe. Egy neurális hálózatban minden bizonnyal lesz olyan neuron, amely bármely két tulajdonság hatását egyesíti, és ha ez a hatás valóban észrevehető a mintában, akkor edzés után ez a neuron automatikusan nagy súlyt kap.

Gradiens Descent

Tehát van egy gyakorlati példakészletünk ismert adatokkal, vagyis egy táblázat egy pontosan mért személy súlyával, és az összefüggés néhány hipotézise, ​​jelen esetben lineáris regresszió y=kx+b. A mi feladatunk az, hogy megtaláljuk k és b helyes értékét, nem manuálisan, hanem automatikusan. És lehetőleg egy univerzális módszer, amely nem függ a képletben szereplő paraméterek számától.

Általában ezt nem nehéz megtenni. A fő ötlet egy olyan függvény létrehozása, amely méri az aktuális teljes hibaszintet, és „beállítja” az együtthatókat, hogy a teljes hibaszint fokozatosan csökkenjen. Hogyan csökkenthetem a hibaszintet? A megfelelő irányba kell módosítanunk a paramétereinket.

Képzelje el két keresett paraméterünket, ugyanazt a k-t és b-t, mint két irányt egy síkon, mint például az észak-déli és a nyugat-kelet tengely. Egy ilyen síkon minden pont megfelel az együtthatók egy bizonyos értékének, egy bizonyos specifikus kapcsolatnak a magasság és a súly között. És a sík minden egyes ilyen pontjára kiszámíthatjuk azt a teljes hibaszintet, amelyet ez az előrejelzés ad a mintánkban szereplő egyes példák esetében.

Kiderül, hogy valami olyan, mint egy adott magasság egy síkon, és az egész környező tér egy hegyi tájra kezd hasonlítani. A hegyek olyan pontok, ahol nagyon magas a hibaarány, a völgyek pedig azok, ahol kevesebb a hiba. Nyilvánvaló, hogy rendszerünk képzése azt jelenti, hogy megtaláljuk a legalacsonyabb pontot a talajon, ahol a hibaarány minimális.

Hogyan találja meg ezt a pontot? A leghelyesebb módszer az, ha állandóan lefelé haladunk onnan, ahol eredetileg találtuk magunkat. Tehát előbb-utóbb eljutunk egy helyi minimumhoz - egy olyan ponthoz, amely alatt nincs semmi a közvetlen közelében. Sőt, célszerű különböző méretű lépcsőket tenni: meredek lejtőn szélesebbeket, kicsi lejtőn pedig jobb „lábujjhegyen” osonni a helyi minimumig, különben túllőhet.

A gradiens süllyedés módszere pontosan így működik: a jellemzők súlyát a hibafüggvény legnagyobb esésének irányába változtatjuk. Ezeket iteratívan változtatjuk, vagyis egy bizonyos lépéssel, amelynek értéke arányos a lejtő meredekségével. Az érdekes az, hogy ha a jellemzők száma növekszik (egy kockával hozzáadva az ember magasságát, életkorát, cipőméretét stb.), akkor lényegében semmi sem változik, csupán a tájunk nem kétdimenziós, hanem többdimenzióssá válik.

A hibafüggvény definiálható az összes olyan eltérés négyzetösszegeként, amelyet a jelenlegi képlet lehetővé tesz olyan emberek számára, akiknek a súlyát már pontosan ismerjük. Vegyünk néhány k és b valószínűségi változót, például 0 és 50. Ekkor a rendszer megjósolja nekünk, hogy a mintában szereplő egyes személyek súlya mindig 50 kilogramm y=0×x+50 A grafikonon egy ilyen függőség a vízszintessel párhuzamos egyenesnek fog kinézni. Nyilvánvaló, hogy ez nem túl jó előrejelzés. Most vegyük a súly eltérését ettől a megjósolt értéktől, négyzetesítsük (hogy a negatív értékeket is figyelembe vegyék), és összegezzük – ez lesz a hiba ezen a ponton. Ha ismeri az elemzés kezdetét, akkor még azt is tisztázhatja, hogy a legnagyobb esés irányát a hibafüggvény parciális deriváltja adja meg k és b függvényében, és a lépés egy olyan érték, amelyet gyakorlati okok: a kis lépések kiszámítása sok időt vesz igénybe, a nagyok pedig oda vezethetnek, hogy túllépünk a minimumon.

Oké, mi van akkor, ha nem csak egy összetett regressziónk van sok jellemzővel, hanem egy igazi neurális hálózat? Hogyan alkalmazzuk ebben az esetben a gradiens süllyedést? Kiderült, hogy a gradiens süllyedés pontosan ugyanúgy működik egy neurális hálózatnál, csak a betanítás 1) lépésről lépésre történik, rétegről rétegre és 2) fokozatosan, a mintában szereplő egyik példából a másikba. Az itt használt módszert backpropagationnak nevezik, és egymástól függetlenül 1974-ben Alexander Galushkin szovjet matematikus és Paul John Webros, a Harvard Egyetem matematikusa írta le.

Bár az algoritmus szigorú bemutatásához részleges deriváltokat kell felírni (például), intuitív szinten minden egészen egyszerűen történik: a mintában szereplő minden egyes példánál van egy bizonyos előrejelzés a kimeneten a neurális hálózatról. A helyes válasz birtokában kivonhatjuk a helyes választ az előrejelzésből, és így hibát kapunk (pontosabban a kimeneti réteg minden egyes neuronjához tartozó hibahalmazt). Most ezt a hibát át kell vinnünk a neuronok előző rétegére, és minél jobban hozzájárult a hibához ennek a rétegnek az adott idegsejtje, annál inkább csökkenteni kell a súlyát (sőt, ismét a parciális derivált vételéről beszélünk, képzeletbeli tájunk maximális meredekségén való mozgásról) . Ha ezt megtettük, ugyanezt az eljárást meg kell ismételni a következő rétegre, ellenkező irányba haladva, vagyis a neurális hálózat kimenetétől a bemenet felé.

Ha a betanítási minta minden egyes példájával ilyen módon végigmegyünk a neurális hálózaton, és a neuronok súlyát a kívánt irányba „csavarjuk”, végül egy betanított neurális hálózatot kell kapnunk. A visszaterjesztési módszer a többrétegű neurális hálózatok gradiens süllyedési módszerének egyszerű módosítása, ezért bármilyen bonyolultságú neurális hálózaton működnie kell. Azért mondjuk itt „kell”, mert valójában vannak olyan esetek, amikor a gradiens süllyedés nem sikerül, és nem teszi lehetővé a jó regressziót vagy a neurális hálózat betanítását. Hasznos lehet tudni, miért merülnek fel ilyen nehézségek.

A gradiens süllyedés nehézségei

Az abszolút minimum helytelen kiválasztása. A gradiens süllyedés módszere segít a lokális szélsőség keresésében. De nem mindig tudjuk használni a függvény abszolút globális minimumának vagy maximumának eléréséhez. Ez azért van így, mert egy antigradiens mentén haladva megállunk abban a pillanatban, amikor elérjük az első lokális minimumot, amivel találkozunk, és az algoritmus leáll.

Képzeld el, hogy egy hegy tetején állsz. Ha le akarsz ereszkedni a környék legalacsonyabb felületére, akkor a gradiens süllyedés módszere nem mindig segít, mert az első mélypont az úton nem feltétlenül lesz a legalacsonyabb pont. És ha az életben képes vagy belátni, hogy ha egy kicsit felfelé haladsz, majd még lejjebb tudsz menni, akkor az algoritmus egy ilyen helyzetben egyszerűen leáll. Ez a helyzet gyakran elkerülhető, ha a megfelelő lépést választja.

Helytelen lépésválasztás. A gradiens süllyedés módszere iteratív módszer. Vagyis nekünk magunknak kell kiválasztanunk a lépésméretet - azt a sebességet, amellyel leereszkedünk. Ha túl nagy lépést választunk, előfordulhat, hogy túlrepülünk a szükséges szélsőségen, és nem találjuk meg a minimumot. Ez akkor fordulhat elő, ha nagyon éles ereszkedéssel találja szemben magát. Ha pedig túl kicsi lépést választunk, akkor az algoritmus rendkívül lelassulhat, ha viszonylag sík felületen találjuk magunkat. Ha ismét azt képzeljük, hogy egy meredek hegy tetején vagyunk, akkor olyan helyzet állhat elő, amikor egy nagyon meredek minimum közeli ereszkedés miatt egyszerűen átrepülünk rajta.

Hálózati bénulás. Néha előfordul, hogy a gradiens süllyedés módszere egyáltalán nem találja meg a minimumot. Ez akkor fordulhat elő, ha a minimum mindkét oldalán sík területek vannak – az algoritmus, amikor sík területet ér, csökkenti a lépést, és végül megáll. Ha egy hegy tetején áll, és úgy dönt, hogy otthona felé indul az alföldön, az út túl hosszú lehet, ha véletlenül egy nagyon sík területre téved. Vagy ha szinte függőleges „lejtők” vannak a sík területek szélei mentén, az algoritmus egy nagyon nagy lépést választva egyik lejtőről a másikra ugrik, gyakorlatilag nem halad a minimum felé.

Mindezeket az összetett kérdéseket figyelembe kell venni a gépi tanulási rendszer tervezésekor. Például mindig hasznos nyomon követni, hogy a hibafüggvény hogyan változik az idő múlásával – esik-e minden új ciklussal vagy jelölési idővel, hogyan változik ennek az esésnek a jellege a lépésméret változásától függően. A rossz lokális minimumba kerülés elkerülése érdekében hasznos lehet a táj különböző, véletlenszerűen kiválasztott pontjairól indulni – ekkor sokkal kisebb az elakadás valószínűsége. A gradiens süllyedés használatának sokkal több kisebb és nagyobb titka van, és vannak egzotikusabb tanulási módok is, amelyek halványan hasonlítanak a gradiens süllyedéshez. Ez azonban egy másik beszélgetés és egy külön cikk témája az ABC of AI projekt keretében.

Felkészítő: Alexander Ershov