Kuća, dizajn, adaptacija, uređenje.  Dvorište i vrt.  Svojim vlastitim rukama

Kuća, dizajn, adaptacija, uređenje. Dvorište i vrt. Svojim vlastitim rukama

» "Teški znanstvenik za podatke postaje poput izvršnog direktora tvrtke srednje veličine." Stručnjak za strojno učenje u Yandex.Taxi - o tome kako podaci predviđaju budućnost i oblikuju svijet

"Težak podatkovni znanstvenik postaje kao izvršni direktor tvrtke srednje veličine." Stručnjak za strojno učenje u Yandex.Taxi - o tome kako podaci predviđaju budućnost i oblikuju svijet

U okviru projekta ABC AI u suradnji s MIPT-om, već smo pisali o takozvanim koji vam omogućuju da “rastete” programe prema principima i zakonima darvinističke evolucije. Međutim, dok je ovaj pristup umjetnoj inteligenciji, naravno, "gost iz budućnosti". Ali kako sustavi umjetna inteligencija stvoriti danas? Kako su obučeni? Viktor Kantor, viši predavač na Odjelu za algoritme i programske tehnologije na Moskovskom institutu za fiziku i tehnologiju, voditelj grupe za analizu ponašanja korisnika u Yandex Data Factory, pomogao nam je da to shvatimo.

Prema nedavnom izvješću istraživačke tvrtke Gartner, koja redovito ažurira svoj "ciklus zrelosti tehnologije", strojno učenje danas je na vrhu svih IT očekivanja. To nije iznenađujuće: u posljednjih nekoliko godina strojno učenje iselilo se iz sfere interesa uskog kruga matematičara i stručnjaka za teoriju algoritama i prodrlo najprije u rječnik IT biznismena, a potom i u svijet obični ljudi. Sada kada postoji takva stvar kao što su neuronske mreže sa svojom posebnom "magijom", zna svatko tko je koristio aplikaciju Prisma, tražio pjesme koristeći Shazam ili vidio slike koje prolaze kroz DeepDream.

Međutim, jedno je koristiti tehnologiju, a drugo razumjeti kako ona funkcionira. Uobičajene riječi poput "računalo može naučiti ako mu date nagovještaj" ili "neuronska mreža sastoji se od digitalnih neurona i raspoređena je poput ljudskog mozga" mogu nekome pomoći, ali češće samo zbunjuju situaciju. Oni koji će se ozbiljno baviti matematikom ne trebaju popularne tekstove: za njih postoje udžbenici i izvrsni online tečajevi. Pokušat ćemo ići srednjim putem: objasniti kako se učenje zapravo događa na najjednostavnijem zadatku, a zatim pokazati kako se isti pristup može primijeniti za rješavanje stvarno zanimljivih problema.

Kako strojevi uče

Za početak, da bismo razumjeli kako točno dolazi do strojnog učenja, definirajmo pojmove. Arthur Samuel, jedan od pionira u ovom području, definira strojno učenje kao metode koje "omogućuju računalima učenje bez izravnog programiranja". Postoje dvije široke klase metoda strojnog učenja: učenje pod nadzorom i učenje bez nadzora. Prvi se koristi kada, na primjer, trebamo naučiti računalo tražiti fotografije mačaka, drugi je kada nam je potreban stroj, na primjer, da može samostalno grupirati vijesti u zaplete, kao što se događa u uslugama poput Yandex.News ili Google News. Odnosno, u prvom slučaju imamo posla s problemom koji podrazumijeva postojanje točnog odgovora (mačka je ili na fotografiji ili ne), u drugom nema jedinstvenog točnog odgovora, ali postoji različiti putevi rješavanje problema. Usredotočit ćemo se na prvu klasu problema kao najzanimljivije.

Dakle, moramo naučiti računalo da daje neka predviđanja. Štoviše, poželjno je biti što točniji. Predviđanja mogu biti dvije vrste: ili trebate odabrati između nekoliko opcija odgovora (na slici je mačka ili ne - ovo je izbor jedne od dvije opcije, mogućnost prepoznavanja slova na slikama je izbor jedne opcija od nekoliko desetaka, i tako dalje), ili napraviti numeričko predviđanje ... Na primjer, predvidite težinu osobe na temelju njezine visine, dobi, veličine cipela i tako dalje. Dvije vrste ovih zadataka samo izgledaju različito, zapravo se rješavaju gotovo isto. Pokušajmo shvatiti kako točno.

Prvo što trebamo napraviti sustav predviđanja je prikupiti takozvani uzorak za obuku, odnosno podatke o težini ljudi u populaciji. Drugi je odlučiti se za skup znakova, na temelju kojih možemo izvući zaključke o težini. Jasno je da će jedan od "najjačih" takvih znakova biti visina osobe, stoga je za prvo približavanje dovoljno uzeti samo njega. Ako težina linearno ovisi o visini, tada će naše predviđanje biti vrlo jednostavno: težina osobe bit će jednaka njegovoj visini pomnoženoj s nekim koeficijentom, plus nekom konstantnom vrijednošću, koja je zapisana najjednostavnijom formulom y = kx + b. Sve što moramo učiniti da bismo uvježbali stroj da predvidi tjelesnu težinu je da nekako pronađemo ispravne vrijednosti za k i b.

Ljepota strojnog učenja je u tome što se čak i ako je ovisnost koju proučavamo vrlo složena, u samom našem pristupu, u biti, gotovo ništa neće promijeniti. I dalje ćemo se baviti istom regresijom.

Recimo da na težinu osobe utječe njegova visina ne linearno, već u trećem stupnju (što je, općenito govoreći, očekivano, jer težina ovisi o volumenu tijela). Da bismo uzeli u obzir ovu ovisnost, jednostavno u našu jednadžbu uvodimo još jedan pojam, naime treći stupanj rasta s vlastitim koeficijentom, dobivajući tako y = k 1 x + k 2 x 3 + b. Sada, da bismo trenirali stroj, moramo pronaći ne dvije, već tri veličine (k 1, k 2 i b). Recimo da u našem predviđanju želimo uzeti u obzir i veličinu cipela osobe, njezinu dob, vrijeme koje je proveo gledajući TV i udaljenost od njegovog stana do najbližeg mjesta brze hrane. Nema problema: ove značajke samo stavljamo kao zasebne pojmove u istu jednadžbu.

Najvažnije je stvoriti univerzalni način za pronalaženje traženih koeficijenata (k 1, k 2,… k n). Ako je tu, bit će nam gotovo svejedno koje znakove koristiti za predviđanje, jer će sam stroj naučiti davati veliku težinu važnim, a malim nevažnim znakovima. Srećom, takva je metoda već izumljena i gotovo svo strojno učenje uspješno radi na njoj: od najjednostavnijih linearnih modela do sustava za prepoznavanje lica i analizatora govora. Ova metoda se naziva gradijentno spuštanje. No, prije nego što objasnite kako to funkcionira, morate napraviti malu digresiju i razgovarati o neuronskim mrežama.

Neuronske mreže

Godine 2016. neuronske mreže ušle su u informatičku agendu tako čvrsto da su se gotovo poistovjećile s bilo kojim strojnim učenjem i naprednim IT općenito. Formalno gledano, to nije točno: neuronske mreže se ne koriste uvijek u matematičkom učenju, postoje i druge tehnologije. No općenito je, naravno, takva asocijacija razumljiva, jer upravo sustavi bazirani na neuronskim mrežama sada daju „najmagičnije“ rezultate, poput mogućnosti traženja osobe po fotografiji, pojave aplikacija koje prenose stil jedne slike drugoj, ili sustavi za generiranje tekstova na način govora određene osobe.

Već znamo kako funkcioniraju neuronske mreže. Ovdje samo želim naglasiti da snaga neuronskih mreža u usporedbi s drugim sustavima strojnog učenja leži u njihovoj višeslojnoj prirodi, ali to ih ne čini nečim bitno drugačijim u načinu rada. Raslojavanje vam doista omogućuje da pronađete vrlo apstraktno osnovne značajke i ovisnosti u složenim skupovima značajki, poput piksela na slici. No, važno je razumjeti da se sa stajališta principa treninga neuronska mreža ne razlikuje radikalno od skupa običnih formula linearne regresije, tako da ista metoda gradijentnog spuštanja odlično funkcionira i ovdje.

"Snaga" neuronske mreže leži u prisutnosti međusloja neurona koji sažimaju vrijednosti ulaznog sloja. Zbog toga neuronske mreže mogu pronaći vrlo apstraktne značajke podataka koje je teško svesti na jednostavne formule kao što su linearni ili kvadratni odnosi.

Objasnimo na primjeru. Zaustavili smo se na predviđanju u kojem težina osobe ovisi o njegovoj visini i visini u kocki, što se izražava formulom y = k 1 x + k 2 x 3 + b. Uz malo natezanja, ali zapravo, čak se i takva formula može nazvati neuronskom mrežom. U njemu, kao u konvencionalnoj neuronskoj mreži, postoji prvi sloj "neurona", on je također sloj značajki: to su x i x 3 (pa, i "jedan neuron" koji imamo na umu i za za koje je odgovoran koeficijent b). Gornji ili rezultantni sloj predstavlja jedan "neuron" y, odnosno predviđena težina osobe. A između prvog i posljednjeg sloja "neurona" postoje veze čija je snaga ili težina određena koeficijentima k 1, k 2 i b. Istrenirati ovu "neuralnu mrežu" znači jednostavno pronaći te iste koeficijente.

Jedina razlika od "pravih" neuronskih mreža je u tome što nemamo niti jedan srednji (ili skriveni) sloj neurona čija je zadaća kombinirati ulazna svojstva. Uvođenje takvih slojeva omogućuje ne razmišljanje o mogućim ovisnostima između postojećih značajki, već oslanjanje na njihove već postojeće kombinacije u neuronskoj mreži. Primjerice, dob i prosječno vrijeme pred televizorom mogu imati sinergijski učinak na tjelesnu težinu osobe, ali imajući neuronsku mrežu, ne moramo to znati unaprijed i unositi njihov proizvod u formulu. U neuronskoj mreži sigurno će postojati neuron koji kombinira utjecaj bilo koje dvije značajke, a ako je taj utjecaj stvarno uočljiv u uzorku, onda će nakon treninga ovaj neuron automatski dobiti veliku težinu.

Gradijentno spuštanje

Dakle, imamo skup primjera za obuku s poznatim podacima, odnosno tablicu s točno izmjerenom težinom osobe i neku hipotezu ovisnosti, u ovom slučaju linearnu regresiju y = kx + b. Naš je zadatak pronaći ispravne vrijednosti za k i b, i to ne ručno, već automatski. I po mogućnosti, univerzalnom metodom koja ne ovisi o broju parametara uključenih u formulu.

Općenito, to nije teško učiniti. Glavna ideja je stvoriti određenu funkciju koja će mjeriti trenutnu ukupnu stopu pogreške i "podesiti" koeficijente tako da ukupna razina pogreške postupno pada. Kako smanjiti razinu pogreške? Moramo okrenuti naše parametre u pravom smjeru.

Zamislite naša dva parametra koja tražimo, isti k i b, kao dva smjera na ravnini, kao osi sjever-jug i zapad-istok. Svaka točka na takvoj ravnini odgovarat će određenoj vrijednosti koeficijenata, određenom specifičnom odnosu između visine i težine. Za svaku takvu točku na ravnini možemo izračunati ukupnu razinu pogrešaka koju ovo predviđanje daje za svaki od primjera u našem uzorku.

Ispada nešto poput određene visine na ravnini, a cijeli okolni prostor počinje nalikovati planinskom krajoliku. Planine su točke gdje je stopa grešaka vrlo visoka, doline su mjesta gdje ima manje grešaka. Jasno je da obuka našeg sustava znači pronalaženje najniže točke na terenu, točke u kojoj je razina pogrešaka minimalna.

Kako možete pronaći ovu točku? Najviše Pravi put- da se cijelo vrijeme krećemo prema dolje od točke na kojoj smo prvotno završili. Tako ćemo prije ili kasnije doći do lokalnog minimuma – točke ispod koje nema ničega u neposrednoj blizini. Štoviše, preporučljivo je poduzeti korake različitih veličina: kada je nagib strm, možete hodati šire, kada je nagib mali, onda je bolje prišuljati se lokalnom minimumu "na vrhovima prstiju", inače se možete provući .

Ovako funkcionira metoda gradijentnog spuštanja: mijenjamo težine značajki u smjeru najvećeg pada funkcije pogreške. Mijenjamo ih iterativno, odnosno s određenim korakom čija je vrijednost proporcionalna strmini padine. Zanimljivo, s povećanjem broja značajki (dodavanjem kocke visine osobe, njezine dobi, veličine cipela i tako dalje), zapravo se ništa ne mijenja, samo naš krajolik postaje ne dvodimenzionalan, već višedimenzionalan.

Funkcija pogreške može se definirati kao zbroj kvadrata svih odstupanja koja trenutna formula dopušta u odnosu na ljude čiju težinu već pouzdano znamo. Uzmimo malo slučajne varijable k i b, na primjer 0 i 50. Tada će nam sustav predvidjeti da je težina svake osobe u uzorku uvijek 50 kilograma y = 0 × x + 50 Na grafu će ova ovisnost izgledati kao paralelna ravna linija do horizontale. Jasno je da to nije baš dobro predviđanje. Sada uzimamo odstupanje u težini od ove predviđene vrijednosti, kvadriramo ga (tako da se u obzir uzmu i negativne vrijednosti) i zbrajamo - to će biti pogreška u ovom trenutku. Ako ste upoznati s početkom analize, onda možete čak i pojasniti da je smjer najvećeg pada zadan parcijalnom derivacijom funkcije pogreške s obzirom na k i b, a korak je vrijednost koja se bira između praktična razmatranja: mali koraci zahtijevaju puno vremena za računanje, a veliki koraci mogu dovesti do činjenice da prođemo minimum.

Pa, što ako nemamo samo složenu regresiju s mnogo značajki, već pravu neuronsku mrežu? Kako u ovom slučaju primijeniti gradijentni pad? Ispostavilo se da gradijentni silazak radi s neuronskom mrežom na isti način, samo što se trening događa 1) u fazama, od sloja do sloja i 2) postupno, od jednog primjera u uzorku do drugog. Metoda koja se ovdje koristi naziva se algoritam povratnog širenja pogreške, a neovisno su je opisali 1974. sovjetski matematičar Alexander Galushkin i matematičar sa Sveučilišta Harvard Paul John Webros.

Iako će za rigoroznu prezentaciju algoritma biti potrebno ispisati parcijalne derivacije (kao što je npr.), na intuitivnoj razini sve je prilično jednostavno: za svaki od primjera u uzorku imamo određeno predviđanje na izlaz neuronske mreže. Imajući točan odgovor, možemo oduzeti točan odgovor od predviđanja i tako dobiti pogrešku (točnije, skup pogrešaka za svaki neuron u izlaznom sloju). Sada ovu pogrešku trebamo prenijeti na prethodni sloj neurona, a što je više ovaj određeni neuron ovog sloja pridonio pogrešci, to više trebamo smanjiti njegovu težinu (zapravo, opet govorimo o uzimanju djelomične derivacije, o kretanju po maksimalnoj strmini našeg imaginarnog krajolika) ... Kada smo to učinili, isti postupak moramo ponoviti za sljedeći sloj, krećući se u suprotnom smjeru, odnosno od izlaza neuronske mreže prema ulazu.

Prolazeći na ovaj način kroz neuronsku mrežu sa svakim primjerom uzorka za obuku i „uvijajući“ utege neurona u pravom smjeru, konačno bismo trebali dobiti istreniranu neuronsku mrežu. Metoda povratnog širenja je jednostavna modifikacija metode gradijentnog spuštanja za višeslojne neuronske mreže i stoga bi trebala raditi za neuronske mreže bilo koje složenosti. Ovdje kažemo "trebalo bi" jer zapravo postoje slučajevi u kojima gradijentni silazak ne uspije i ne dopušta dobru regresiju ili obuku neuronske mreže. Može biti korisno znati što uzrokuje takve poteškoće.

Poteškoće gradijentnog spuštanja

Pogrešan izbor apsolutnog minimuma. Metoda gradijentnog spuštanja pomaže u pronalaženju lokalnog ekstremuma. Ali ne možemo ga uvijek koristiti za postizanje apsolutnog globalnog minimuma ili maksimuma funkcije. To se događa jer se pri kretanju po antigradijentu zaustavljamo u trenutku kada dođemo do prvog lokalnog minimuma koji naiđemo, a algoritam prestaje raditi.

Zamislite da stojite na vrhu planine. Ako se želite spustiti do najniže površine u tom području, gradijentno spuštanje vam možda neće uvijek pomoći, jer prva niska točka na vašem putu neće nužno biti najniža točka. A ako ste u životu sposobni vidjeti da vrijedi ići malo gore pa se tada možete spustiti još niže, tada će algoritam u takvoj situaciji jednostavno prestati. Ova se situacija često može izbjeći odabirom pravog koraka.

Pogrešan izbor koraka. Metoda gradijenta spuštanja je iterativna metoda. Odnosno, mi sami trebamo odabrati veličinu koraka – brzinu kojom se spuštamo. Odabirom prevelikog koraka možemo preletjeti kraj ekstrema koji nam je potreban i ne pronaći minimum. To se može dogoditi ako se nađete pred vrlo naglim spustom. A izbor premalog koraka prijeti iznimno sporim radom algoritma ako se nađemo na relativno ravna površina... Ako opet zamislimo da se nalazimo na vrhu strme planine, možemo doći u situaciju da ćemo je zbog vrlo strmog spuštanja blizu minimuma jednostavno preletjeti.

Mrežna paraliza. Ponekad se dogodi da metoda gradijentnog spuštanja uopće ne uspije pronaći minimum. To se može dogoditi ako postoje ravni dijelovi s obje strane minimuma - algoritam, nakon što je pogodio ravan dio, smanjuje korak i na kraju se zaustavlja. Ako se, dok stojite na vrhu planine, odlučite preseliti u svoj dom u nizini, put može biti predug ako slučajno zalutate u vrlo ravno područje. Ili, ako uz rubove ravnih područja postoje praktički strme "padine", algoritam će, nakon što je odabrao vrlo veliki korak, skočiti s jedne padine na drugu, praktički se ne pomičući na minimum.

Sve ove složenosti moraju se uzeti u obzir pri projektiranju sustava strojnog učenja. Na primjer, uvijek je korisno pratiti kako se točno funkcija pogreške mijenja tijekom vremena - pada li sa svakim novim ciklusom ili stagnira, kako se priroda ovog pada mijenja ovisno o promjeni veličine koraka. Kako biste izbjegli ulazak u loš lokalni minimum, korisno je krenuti od različitih nasumično odabranih točaka na krajoliku - tada je vjerojatnost zaglavljivanja puno manja. Postoji još mnogo velikih i malih tajni kako se nositi s gradijentnim spustom, a ima i egzotičnijih metoda učenja koje nisu jako slične gradijentnom silasku. To je, međutim, već tema za drugi razgovor i zaseban članak u okviru projekta AI ABC.

Priredio Aleksandar Eršov

- Možete li na potpuno primitivnom primjeru opisati kako funkcionira strojno učenje?

Limenka. Postoji primjer metode strojnog učenja koja se zove Drvo odluka, jedna od najstarijih stvari. Učinimo to sada. Recimo da vas apstraktna osoba pozove na spoj. Što vam je važno?

- Prvo, poznajem ga ili ne...

(Victor to zapisuje na ploču.)

… Ako ne znam, onda moram odgovoriti na pitanje je li privlačno ili ne.

A ako znaš, nije važno? Mislim da razumijem, ovo je ogranak frend zone! Općenito, pišem, ako ne znate i neprivlačno, onda je odgovor "da ne, vjerojatno". Ako znate, odgovor je da.

- Ako znam, i to je važno!

Ne, ovo će biti ogranak zone prijatelja.

Dobro, pa pokažimo ovdje je li zanimljivo ili ne. Ipak, kad ne poznaješ osobu, prva reakcija je na izgled, s prijateljem već vidimo što misli i kako.

Učinimo to drugačije. Bio on ambiciozan ili ne. Ako je ambiciozan, onda će ga biti teško sprijateljiti, on će također htjeti više. A neambiciozni će tolerirati.

(Victor dovršava odlučujuće drvo.)

Spreman. Sada možete predvidjeti s kojim ćete momkom najvjerojatnije izlaziti. Usput, neki servisi za upoznavanje predviđaju ovakve stvari. Analogno, možete predvidjeti koliko će proizvoda kupci kupiti i gdje će ljudi biti u to doba dana.

Odgovori mogu biti ne samo "da" i "ne", već i u obliku brojeva. Ako želite točniju prognozu, možete napraviti nekoliko ovih stabala i prosječno ih postaviti. A uz tako jednostavnu stvar, zapravo možete predvidjeti budućnost.

Zamislite sada je li ljudima bilo teško smisliti takvu shemu prije dvjesto godina? Apsolutno ne! Ova shema ne nosi nikakvu senzaciju rakete. Kao fenomen, strojno učenje postoji oko pola stoljeća ili stoljeća. Ronald Fisher počeo je prognozirati na temelju podataka početkom 20. stoljeća. Uzeo je perunike i rasporedio ih po dužini i širini čašice i latice, prema tim parametrima odredio je vrstu biljke.

U industriji se strojno učenje aktivno koristi posljednjih desetljeća: jaki i relativno jeftini strojevi koji su potrebni za obradu velikih količina podataka, na primjer, za takva stabla odluka, pojavili su se ne tako davno. Ali svejedno nam oduzima dah: te stvari crtamo za svaki zadatak i koristimo ih za predviđanje budućnosti.

- Pa, definitivno nije bolje od bilo koje hobotnice koja predviđa nogometne utakmice...

Ne, pa gdje smo mi hobotnice. Iako imamo više varijabilnosti. Strojno učenje sada može uštedjeti vrijeme, novac i poboljšati udobnost života. Strojno učenje pobijedilo je ljude u klasifikaciji slika prije nekoliko godina. Na primjer, računalo može prepoznati 20 pasmina terijera, i obična osoba Ne.

- A kada analizirate korisnike, je li vam svaka osoba skup brojeva?

Grubo rečeno, da. Kada radimo s podacima, svi objekti, uključujući ponašanje korisnika, opisuju se određenim skupom brojeva. I ove brojke odražavaju osobitosti ponašanja ljudi: koliko često voze taksi, koju klasu taksija koriste, na koja mjesta obično idu.

Sada aktivno gradimo slične modele kako bismo pomoću njih identificirali skupine ljudi sličnog ponašanja. Kada uvodimo novu uslugu ili želimo promovirati staru, nudimo je onima koji će biti zainteresirani.

Primjerice, sada imamo uslugu – dvije dječje sjedalice u taksiju. S ovom viješću možemo svakoga poslati spam ili o tome obavijestiti samo određeni krug ljudi. Tijekom godine nakupili smo određeni broj korisnika koji su u komentarima napisali da im trebaju dvije dječje sjedalice. Pronašli smo njih i ljude poput njih. Uobičajeno, to su osobe starije od 30 godina koje redovito putuju i vole mediteransku kuhinju. Iako, naravno, ima puno više znakova, ovo sam ja za primjer.

- Čak i takve suptilnosti?

Ovo je jednostavna stvar. Sve se izračunava pomoću upita za pretraživanje.

A u aplikaciji može nekako funkcionirati? Na primjer, znate li da sam prosjak i pretplaćen sam na grupe poput "Kako preživjeti s 500 rubalja mjesečno" - nude mi se samo pohabani jeftini automobili, pretplaćeni na vijesti o SpaceX -u - a ja s vremena na vrijeme dobijem Teslu?

Možda funkcionira na ovaj način, ali Yandex ne odobrava takve stvari, jer je to diskriminacija. Kada personalizirate uslugu, bolje je ponuditi ne najprihvatljiviju, već najbolju dostupnu i ono što se osobi sviđa. A distribucija po logici “ovom treba bolji auto, a ovome manje dobar” je zla.


Svatko ima perverzne želje, a ponekad ne morate pronaći recept za mediteransko jelo, već, na primjer, slike o koprofiliji. Hoće li personalizacija funkcionirati i u ovom slučaju?

Uvijek postoji privatni način rada.

Ako ne želim da itko zna za moje interese, ili su mi, na primjer, došli prijatelji i htjeli gledati smeće, onda je bolje koristiti anonimni način rada.

Također možete odlučiti koju ćete tvrtku koristiti, na primjer, Yandex ili Google.

- Ima li razlike?

Kompleksno pitanje. Ne znam za druge, ali Yandex je težak sa zaštitom osobnih podataka. Posebno nadzirite zaposlenike.

- To jest, ako sam prekinula s nekim tipom, neću moći saznati je li otišao na ovu daču ili ne?

Čak i ako radite za Yandex. To je, naravno, tužno, ali da, neće se moći saznati. Većina zaposlenika nema ni pristup tim podacima. Sve je šifrirano. Jednostavno je: ne možete špijunirati ljude, ovo su osobni podaci.

Inače, imali smo zanimljiv slučaj na temu rastanka s dečkima. Kada smo napravili predviđanja točke "B" - odredišne ​​točke u taksiju, uveli smo savjete. Evo pogledaj.

(Victor ulazi u aplikaciju Yandex.Taxi.)

Na primjer, taksi misli da sam kod kuće. Poziva me da idem ili na posao ili na Sveučilište RUDN (tamo čitam predavanja u sklopu tečaja strojnog učenja Data Mining in Action). I u nekom trenutku, dok smo razvijali ove savjete, shvatili smo da ne bismo trebali kompromitirati korisnika. Netko može vidjeti točku "B". Iz tih razloga odbili smo ponuditi mjesta na temelju sličnosti. I onda sjedneš na pristojno mjesto s pristojnim ljudima, naručiš taksi, a oni ti napišu: "Vidi, nisi još bio u ovom baru!"

- Kakve plave točke trepere na vašoj karti?

Ovo su mjesta preuzimanja. Ove točke pokazuju gdje je najprikladnije pozvati taksi. Uostalom, možete nazvati mjesto gdje će vam biti potpuno nezgodno nazvati. Ali općenito, možete nazvati bilo koju točku.

- Da, bilo koji. Nekako sam s ovim preletio dva bloka.

Nedavno je bilo raznih poteškoća s GPS-om, što je dovelo do različitih smiješnih situacija. Ljudi su, na primjer, na Tverskoj, plovidbu bacali preko Tihog oceana. Kao što vidite, ponekad postoje greške i više od dva bloka.

- A ako ponovo pokrenete aplikaciju i ponovno je gurnete, tada se cijena mijenja za nekoliko rubalja. Zašto?

Ako potražnja premašuje ponudu, algoritam automatski generira koeficijent množenja - to pomaže onima koji trebaju napustiti što je prije moguće koristiti taksi, čak i tijekom razdoblja velike potražnje. Inače, pomoću strojnog učenja možete predvidjeti gdje će potražnja biti veća za, primjerice, sat vremena. To nam pomaže da vozačima kažemo gdje će biti više narudžbi kako bi ponuda odgovarala potražnji.

- Ne mislite li da će Yandex.Taxi uskoro ubiti cijelo tržište taksija?

Mislim da ne. Mi smo za zdravu konkurenciju i ne bojimo je se.

Na primjer, i sam koristim različite taksi usluge. Vrijeme čekanja mi je bitno, pa pregledavam nekoliko aplikacija koji će taksi brže stići.


- Udružili ste se s Uberom. Za što?

Nije u mojoj nadležnosti komentirati. Mislim da je ujedinjenje duboko razumna odluka.

U Njemačkoj je jedan tip ugradio kadu na svoje dronove i tako odletio na hamburger. Jeste li pomislili da je vrijeme da ovladate zračnim prostorom?

Za zračni prostor ne znam. Pratimo vijesti u duhu “Uber je pokrenuo taksi na brodovima”, ali o zraku ne mogu ništa reći.

- A što je s taksi dronovima?

Evo jedne zanimljive točke. Razvijamo ih, ali moramo razmišljati kako ih točno koristiti. Prerano je davati prognoze u kojem obliku i kada će se pojaviti na ulicama, ali činimo sve kako bismo razvili tehnologiju za potpuno autonomni automobil, gdje ljudski vozač uopće neće biti potreban.

- Postoji li bojazan da bi se softver drona mogao hakirati kako bi se autom upravljalo na daljinu?

Rizici su uvijek i gdje god postoje tehnologije i gadgeti. Ali zajedno s razvojem tehnologija, razvija se još jedan smjer - njihova zaštita i sigurnost. Svi koji su na ovaj ili onaj način uključeni u razvoj tehnologija rade na sigurnosnim sustavima.

- Kakve korisničke podatke prikupljate i kako ih štitite?

Prikupljamo anonimne korisničke podatke, kao što su gdje, kada i gdje je putovanje napravljeno. Sve bitno je haširanje.

- Mislite li da će dronovi smanjiti broj radnih mjesta?

Mislim da će biti samo veći. Ipak, i ove dronove treba nekako servisirati. To je, naravno, malo stresna situacija, promjena specijalnosti, ali što možete.

- Gref na svakom svom predavanju kaže da će čovjek barem tri puta radikalno promijeniti profesiju.

Ne mogu imenovati nijednu specijalnost koja će trajati vječno. Programer ne radi cijeli život na istom jeziku i s istim tehnologijama. Svugdje trebate obnoviti. Strojnim učenjem jasno osjećam kako momci koji su šest godina mlađi od mene razmišljaju mnogo brže od mene. U isto vrijeme, ljudi u 40 ili 45 godina to još više osjećaju.

- Iskustvo više ne igra ulogu?

Igra. Ali metode se mijenjaju, možete doći u područje u kojem se, primjerice, duboko učenje nije koristilo, tamo radite neko vrijeme, onda se metode dubokog učenja implementiraju posvuda, a vi tu ništa ne razumijete. I to je sve. Vaše iskustvo može biti korisno samo u planiranju rada tima, a i tada ne uvijek.

- A tvoja profesija - znanstvenik podataka, je li tražen?

Potražnja za stručnjacima za znanost o podacima jednostavno je izvan opsega. Očito, sada je razdoblje ludog hypea. Hvala Bogu, blockchain je pomogao da se ovaj hype malo smiri. Blockchain stručnjaci se još brže demontiraju.

No, mnoge tvrtke sada misle da će, ako ulože u strojno učenje, njihovi vrtovi odmah procvjetati. Ovo nije istina. Strojno učenje treba riješiti određene probleme, a ne samo postojati.

Postoje slučajevi kada banka želi napraviti sustav preporuka usluga za korisnike. Pitamo: "Mislite li da će to biti ekonomski opravdano?" Oni odgovaraju: “Da, nije nas briga. Učini to. Svi isti sustavi preporuka, bit ćemo u trendu."

Bol je u tome što se doista korisna stvar za posao ne može učiniti u jednom danu. Morate paziti kako će sustav naučiti. I uvijek radi s greškama na početku, možda će joj nedostajati neki podaci tijekom treninga. Popraviš greške, pa opet popraviš i čak sve ponoviš. Nakon toga se trebate konfigurirati da sustav radi u proizvodnji, da bude stabilan i skalabilan, još je vrijeme. Kao rezultat toga, jedan projekt traje šest mjeseci, godinu dana ili više.


Gledate li metode strojnog učenja kao crnu kutiju, onda vam lako može promaći kako se neka glupost počinje događati. Postoji bradata priča. Vojska je zatražila da se razvije algoritam koji se može koristiti za analizu nalazi li se tenk na slici ili ne. Istraživači su napravili, testirali, kvaliteta je izvrsna, sve je super, dano vojsci. Dolazi vojska i kaže da ništa ne radi. Znanstvenici počinju nervozno shvaćati. Ispada da su sve slike s tenkom koje je vojska donijela imale kvačicu u kutu olovkom. Algoritam je besprijekorno naučio pronaći kvačicu, nije znao ništa o spremniku. Naravno, na novim slikama nije bilo kvačica.

Upoznala sam djecu koja razvijaju vlastite sustave dijaloga. Jeste li ikada pomislili da morate surađivati ​​s djecom?

Već duže vrijeme idem na razna događanja za školarce, držim predavanja o strojnom učenju. I, inače, jednu od tema naučio me jedan učenik desetog razreda. Bio sam potpuno siguran da će moja priča biti dobra i zanimljiva, bio sam ponosan na sebe, počeo sam emitirati, a djevojka je rekla: "Oh, želimo minimizirati ovu stvar." Gledam i razmišljam, ali stvarno, zašto, i stvarno se može minimizirati, a pogotovo nema što dokazivati. Prošlo je nekoliko godina, sada sluša naša predavanja kao studentica Phystecha. Yandex, inače, ima Yandex.Lece, gdje studenti mogu besplatno dobiti osnovno znanje programiranja.

- Savjetujte sveučilišta i fakultete na kojima se sada uči strojno učenje.

Postoji MIPT, fakulteti FIVT i FUPM. Na HSE-u postoji i prekrasan odjel za informatiku, a strojno učenje dostupno je na VMC-u na Moskovskom državnom sveučilištu. Pa, sada možete slušati naš tečaj na Sveučilištu RUDN.

Kao što sam rekao, ovo zanimanje je traženo. Vrlo dugo su se ljudi koji su stekli tehničko obrazovanje bavili potpuno različitim stvarima. Strojno učenje je izvrstan primjer gdje su sve stvari iz kojih su ljudi naučili tehničko obrazovanje, sada su potrebni, korisni i dobro plaćeni.

- Kako dobro?

Navedite iznos.

- 500 tisuća mjesečno.

Možeš, samo ne kao običan podatkovni znanstvenik. Ali u nekim tvrtkama vrlo, vrlo pripravnik može dobiti 50 tisuća kuna za jednostavan posao.Radi se vrlo velik. Općenito, plaća tvrdog data znanstvenika može se usporediti s plaćom glavnog direktora neke prosječne tvrtke. U mnogim tvrtkama, osim plaće, puno lepinja pada na zaposlenika, a ako je jasno da osoba nije došla napisati dobru marku na svoj životopis, već da zaista radi, tada će sve biti u redu s mu.

Prošlo je gotovo godinu dana otkako je FIVT pokrenuo neobičnu temu – inovativnu radionicu. Njegova je bit stvaranje IT startupa od strane studentskih timova pod vodstvom iskusnih mentora. Ispalo je dobro: zahvaljujući tečaju netko je dio ljeta proveo u dolini Kremievo, netko je dobio potporu od 800.000 rubalja za razvoj projekta, a tuđi ABBYY spreman je u potpunosti otkupiti projekt. I to nisu svi rezultati radionice!

Početkom 2011. godine studenti treće godine FIVT-a okupljeni su u zbornici i ispričali: tijekom slijedeće godine morat ćete stvoriti vlastiti startup. Studenti su ovu ideju doživjeli dvosmisleno: uopće nije bilo jasno kako to učiniti, a odgovornost je bila neobična - uostalom, trebalo je raditi tehnološki posao, a ne još jedan obrazovni projekt. Evo što o tome misli Viktor Kantor, pobjednik studentske olimpijade MIPT -a iz fizike, student odjela Yandeska:

Kad sam pri prijemnom odabrao FIVT, nadao sam se da ćemo imati nešto slično. Zato mi je drago što se nisam uzalud nadao. Tijekom godine osjećalo se da se kolegij tek formira, da je u njemu puno toga novoga, mnoga pitanja su se pokazala kontroverznima ne samo za studente, već i za organizatore, ali općenito mislim da su tendencije bile pozitivne. Svidio mi se ovaj tečaj.

Kako bi studentima olakšali rad, pozvani su različiti kustosi koji su predložili svoje ideje za izgradnju inovativnih tvrtki. Među njima su bili potpuno različiti ljudi: od apsolventa i diplomskih studenata MIPT-a do savjetnika Ernst & Younga za inovacije Jurija Pavloviča Ammosova (bio je voditelj cijelog tečaja) i Mihaila Batina, koji se bavi regenerativnom medicinom i pitanjima produljenja života. Kao rezultat toga, fizičari su odabrali ideje koje su im bile najzanimljivije, kustosi su se priključili timovima i započeo je težak, ali uzbudljiv posao.

Gotovo godinu dana koliko je prošlo od tog trenutka, dečki su se suočili s brojnim problemima, od kojih su neki i riješeni. Sada možete procijeniti njihove rezultate - unatoč poteškoćama, dečki su se snašli. Studenti MIPT-a (osim FIVS-a, u proces su se uključili i neki studenti FOPF-a i drugih fakulteta) uspjeli su pripremiti nekoliko zanimljivih i isplativih projekata:

Askeroid (bivši Ask Droid) - traži pametne telefone ( Anastasia Uryasheva)

Aplikacija za Android koja vam omogućuje prikladno pretraživanje u velikom broju tražilica. Neki stručnjaci pokazali su interes za razvoj, pa je Anastasia cijelo prošlo ljeto provela u jednom od najpoznatijih inkubatora u Silicijskoj dolini - Plug & Play. učenje osnova tehnološkog poduzetništva i razgovor s međunarodnim stručnjacima za rizični kapital.

1minute.ru - jedna minuta zauvijek (Lev Grunin)

Ovaj projekt omogućuje svakoj osobi jednostavno, brzo i potpuno besplatno obavljanje humanitarnog rada. Model je jednostavan: oglašivači nude određeni skup aktivnosti na stranici, korisnici dobrovoljno sudjeluju u njima, sav novac od oglašavanja prenosi se u dobrotvornu zakladu. U tjedan dana nakon lansiranja, projekt je prikupio više od 6500 korisnika i tu neće stati. Kao rezultat toga, zahvaljujući Levu i njegovu timu, primit će 600 djece iz sirotišta Nova godina dragocjeni darovi Djeda Mraza. Jeste li već potrošili jednu minutu na dobro djelo?!

Embedded Desktop - računalo u vašem telefonu (Alexey Vukolov)

Aplikacija koja vam omogućuje kombiniranje mogućnosti računala i mobilnosti telefona u jednom kućištu - iznimno koristan proizvod za zaposlene osobe koje su često na poslovnim putovanjima. Dovoljno ga je instalirati na pametni telefon, a korisnik će moći "nabaviti" vlastito računalo u bilo kojem hotelu, uredu i zapravo svugdje gdje možete pronaći monitor (prikladan je i televizor), tipkovnicu i miš. Projekt je dobio bespovratna sredstva za razvoj ideje te je predstavljen na izložbi Technovation Cup, a dobivenim novcem tim već aktivno kupuje opremu. Američki proizvođač procesora MIPS ima veliki interes za razvoj.

Smart Tagger - semantička pretraga dokumenata (Victor Kantor)

Što učiniti ako se toga negdje sjećate poštanski sandučić bilo je vrlo važno pismo, koje govori o posljednjoj epizodi Teorije velikog praska, ali se ne sjećate nijedne ključne riječi iz teksta? Yandex i Google pretraživanje su nemoćni. U pomoć će doći razvoj Smart Taggera – "pametni" program koji koristi semantičku pretragu dat će vam sve tekstove čije je značenje isprepleteno s popularnim TV serijama. Projekt je dobio donaciju na U.M.N.I.K. ukupno 400.000 rubalja!

MathOcr - prepoznavanje formule (Victor Prun)

ABBYY je predložio zanimljiv zadatak za implementaciju - stvoriti program koji bi prepoznao matematičke formule bilo koje složenosti. Studenti FIVT-a su, udruživši se sa zainteresiranim fopfovima, izvršili zadatak - modul stvarno prepoznaje formule skenirane iz udžbenika matana ili fizike. Rezultat: ABBYY je spreman kupiti ovaj proizvod za mnogo novca.