Inovativna radionica u fizici i tehnologiji: prave priče o uspjehu u fizici i tehnologiji. “Kul podatkovni znanstvenik je plaćen kao izvršni direktor prosječne tvrtke.” Stručnjak za strojno učenje "Yandex.Taxi" - o tome kako podaci predviđaju budućnost i oblikuju svijet Koje su to plave točkice

Inovativna radionica u fizici i tehnologiji: prave priče o uspjehu u fizici i tehnologiji. “Kul podatkovni znanstvenik je plaćen kao izvršni direktor prosječne tvrtke.” Stručnjak za strojno učenje "Yandex.Taxi" - o tome kako podaci predviđaju budućnost i oblikuju svijet Koje su to plave točkice

23.11.2023

Prošlo je skoro godinu dana od trenutka kada je na FIVT-u krenuo neobičan predmet – inovativna radionica. Njegova bit je stvaranje IT startupa od strane studentskih timova pod vodstvom iskusnih mentora. Ispalo je dobro: zahvaljujući tečaju, netko je proveo dio ljeta u Cream Valley, netko je dobio bespovratna sredstva u iznosu od 800.000 rubalja za razvoj projekta, a ABBYY je spreman u potpunosti kupiti projekt od nekoga. I to nisu svi rezultati radionice!

Početkom 2011. u zbornici su okupljeni studenti treće godine FIVT-a i rečeno im je: tijekom sljedeće godine morat ćete napraviti vlastiti startup. Studenti ovu ideju nisu prihvatili dvosmisleno: nije bilo jasno kako to uopće učiniti, a odgovornost je bila neuobičajena - uostalom, trebalo je stvoriti tehnološki biznis, a ne samo još jedan obrazovni projekt. Evo što o tome misli pobjednik MIPT studentske olimpijade iz fizike, student odjela Yandeska, Viktor Kantor:

Kad sam pri upisnom birao FIVT, nadao sam se da ćemo imati nešto slično. Stoga mi je drago što moje nade nisu bile uzaludne. Tijekom godine osjetilo se da je kolegij još u fazi formiranja, puno je toga bilo novoga, mnoga pitanja su se pokazala kontroverznim ne samo za studente, već i za organizatore, ali općenito, mislim da su trendovi pozitivni. Svidio mi se ovaj tečaj.

Kako bi se studentima olakšao rad, pozvani su razni kustosi da ponude svoje ideje za izgradnju inovativnih poduzeća. Među njima su bili potpuno različiti ljudi: od studenata dodiplomskog i diplomskog studija MIPT-a do savjetnika za inovacije Ernst&Young Jurija Pavloviča Ammosova (on je bio voditelj cijelog tečaja) i Mihaila Batina koji se bavi regenerativnom medicinom i pitanjima produljenja života. Tako su studenti fizike i tehnike odabrali ideje koje su im bile najzanimljivije, kustosi su se pridružili timovima i težak, ali uzbudljiv rad je započeo.

U gotovo godinu dana koliko je od tada prošlo, dečki su se suočili s brojnim problemima od kojih su neki i riješeni. Sada možemo ocijeniti njihove rezultate - unatoč poteškoćama, dečki su se nosili. Studenti MIPT-a (uz Filozofski, u proces su se uključili i studenti Filološkog i drugih fakulteta) uspjeli su pripremiti nekoliko vrlo zanimljivih i održivih projekata:

Askeroid (ranije Ask Droid) – traženje pametnih telefona ( Anastazija Urjaševa)

Android aplikacija koja vam omogućuje jednostavno pretraživanje u velikom broju tražilica. Za razvoj su se zainteresirali neki stručnjaci, 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 pothvate.

1minute.ru – jedna minuta za dobro (Lev Grunin)

Ovaj projekt svakome daje priliku da se jednostavno, brzo i potpuno besplatno bavi humanitarnim radom. Model je jednostavan: oglašivači nude određeni skup aktivnosti na stranici, korisnici dobrovoljno sudjeluju u njima, a sav novac od oglašavanja prebacuje se u dobrotvornu zakladu. U tjedan dana od pokretanja projekt je prikupio više od 6500 korisnika i na tome neće stati. Kao rezultat toga, zahvaljujući Levu i njegovom timu, 600 djece iz sirotišta dobit će cijenjene darove od Djeda Mraza za Novu godinu. Jeste li već potrošili jednu minutu na dobro djelo?!

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

Aplikacija koja omogućuje spajanje mogućnosti računala i mobilnosti telefona u jednom paketu – iznimno koristan proizvod za zaposlene ljude koji često putuju na poslovna putovanja. Dovoljno ga je instalirati na pametni telefon i korisnik će moći "dobiti" svoje računalo u svakom hotelu, uredu, pa i svugdje gdje ima monitor (prikladan je i TV), tipkovnicu i miš. Projekt je dobio potporu za razvoj ideje te je predstavljen na izložbi Technovation Cup, a dobivenim novcem tim već aktivno nabavlja opremu. Američki proizvođač procesora MIPS iznimno je zainteresiran za razvoj.

Smart Tagger – semantičko pretraživanje dokumenata (Victor Kantor)

Što učiniti ako se sjetite da se negdje u vašem sandučiću nalazi 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 pretraga su nemoćni. U pomoć će doći razvoj Smart Taggera - "pametni" program koji koristi semantičko pretraživanje dat će vam sve tekstove čije je značenje isprepleteno s popularnom TV serijom. Projekt je dobio potporu na natječaju U.M.N.I.K. ukupno 400.000 rubalja!

MathOcr – prepoznavanje formula (Viktor 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 u suradnji sa zainteresiranim studentima odradili zadatak - modul zapravo prepoznaje formule skenirane iz udžbenika matematike ili fizike. Rezultat: ABBYY je spreman kupiti ovaj proizvod za puno novca.

- Možete li nam na potpuno primitivnom primjeru reći kako funkcionira strojno učenje?

Limenka. Postoji primjer tehnike strojnog učenja koja se zove Decision Tree, što je jedna od najstarijih stvari. Učinimo to sada. Recimo da vas apstraktna osoba pozove na spoj. Što je vama važno?

- Prvo, poznajem li ga ili ne...

(Victor zapisuje ovo na ploču.)

...Ako ne znam, onda moram odgovoriti na pitanje je li privlačan ili nije.

A ako znate, onda nije važno? Mislim da sam shvatio, ovo je nit prijateljske zone! Općenito, pišem, ako ne znate i nije privlačno, onda je odgovor "ne, vjerojatno." Ako znate, odgovor je "da".

- Ako znam, i to je važno!

Ne, ovo će biti podružnica prijateljske zone.

U redu, onda naznačimo ovdje je li zanimljivo ili ne. Ipak, kada osobu ne poznajete, prva reakcija je na izgled, kod poznanika već gledamo što i kako misli.

Učinimo to drugačije. Bio on ambiciozan ili ne. Ako je ambiciozan, bit će ga teško prijateljski povezati jer će željeti više. Ali neambiciozni će izdržati.

(Victor završava crtanje odlučujućeg stabla.)

Spreman. Sada možete predvidjeti s kojim ćete tipom najvjerojatnije izaći na spoj. Usput, neki servisi za upoznavanje takve stvari predviđaju. Po analogiji, možete predvidjeti koliko će robe 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 takvih stabala i napraviti njihov prosjek. A uz pomoć tako jednostavne stvari zapravo možete predvidjeti budućnost.

Sada zamislite, je li ljudima bilo teško smisliti takvu shemu prije dvjesto godina? Apsolutno ne! Ova shema ne nosi nikakvu raketnu znanost. Kao fenomen, strojno učenje postoji oko pola stoljeća. Ronald Fisher počeo je s predviđanjima na temelju podataka početkom 20. stoljeća. Uzeo je perunike i raspodijelio ih prema duljini i širini čašica i latica, pomoću tih parametara odredio je vrstu biljke.

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

- Pa definitivno ništa bolje od bilo koje hobotnice prognoze nogometnih utakmica...

Ne, što nas briga za hobotnice? Iako imamo više varijabilnosti. Sada, uz pomoć strojnog učenja, možete uštedjeti vrijeme, novac i poboljšati udobnost života. Strojno učenje pobijedilo je ljude prije nekoliko godina kada je u pitanju klasifikacija slika. Na primjer, računalo može prepoznati 20 pasmina terijera, ali običan čovjek ne može.

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

Grubo rečeno, da. Kada radimo s podacima, svi objekti, uključujući ponašanje korisnika, opisuju se određenim skupom brojeva. A ti brojevi odražavaju karakteristike 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 ih upotrijebili za identificiranje grupa ljudi sa sličnim ponašanjem. Kada uvedemo novu uslugu ili želimo promovirati staru, nudimo je onima koji bi bili zainteresirani.

Primjerice, sada imamo uslugu - dvije dječje sjedalice u taksiju. S ovom viješću možemo spamati svakoga ili je možemo posebno obavijestiti samo određeni krug ljudi. Tijekom godine nakupilo se dosta korisnika koji su u komentarima napisali da im trebaju dvije dječje sjedalice. Našli smo njih i njima slične. Konvencionalno, to su osobe starije od 30 godina koje redovito putuju i vole mediteransku kuhinju. Iako, naravno, postoji mnogo više znakova, ovo je samo primjer.

- Čak i takve suptilnosti?

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

Može li ovo nekako funkcionirati u aplikaciji? Na primjer, znate li da sam ja prosjak i da se pretplaćujem na grupe kao što je "Kako preživjeti s 500 rubalja mjesečno" - nude mi samo jeftine aute, pretplaćuju se na SpaceX vijesti - i s vremena na vrijeme me prodaju Tesla?

Možda tako funkcionira, ali takve stvari Yandex ne odobrava jer je to diskriminacija. Kada personalizirate uslugu, bolje je ponuditi ne najprihvatljivije, već najbolje dostupno i ono što osoba voli. A raspodjela po logici “ovom treba bolji auto, ovome manje dobar” je zlo.


Svatko ima izopačene želje, a ponekad ne treba pronaći recept za mediteransko jelo, već, primjerice, slike o koprofiliji. Hoće li personalizacija i dalje funkcionirati u ovom slučaju?

Uvijek postoji privatni način rada.

Ako ne želim da itko zna za moje interese ili, recimo, prijatelji dođu k meni i žele gledati neko smeće, onda je bolje koristiti anonimni način rada.

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

- Ima li razlike?

Složeno pitanje. Ne znam za druge, ali Yandex je strog u zaštiti osobnih podataka. Posebno se prate zaposlenici.

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

Čak i ako radite u Yandexu. To je, naravno, tužno, ali da, nema načina da se sazna. Većina zaposlenika niti nema 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 prekida s dečkima. Kada smo napravili prognozu za točku "B" - odredišnu točku u taksiju, uveli smo savjete. Evo pogledaj.

(Victor se prijavljuje u aplikaciju Yandex.Taxi.)

Na primjer, taksi misli da sam kod kuće. Predlaže mi da odem ili na posao ili na sveučilište RUDN (tamo držim predavanja u sklopu tečaja strojnog učenja Data Mining in Action). I u jednom trenutku, dok smo razvijali ove savjete, shvatili smo da moramo izbjeći kompromitiranje korisnika. Točku B može vidjeti bilo tko. Iz tih razloga odbili smo predložiti mjesta na temelju sličnosti. Inače, sjedneš na pristojno mjesto s pristojnim ljudima, naručiš taksi, a oni ti napišu: “Gle, nisi još bio u ovom baru!”

- Kakve su to plave točkice koje trepere na tvojoj karti?

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

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

Nedavno je bilo raznih poteškoća s GPS-om, što je dovelo do raznih smiješnih situacija. Ljudi su, na primjer, na Tverskoj, prevezeni navigacijom preko Tihog oceana. Kao što vidite, ponekad ima promašaja i više od dva bloka.

- A ako ponovno pokrenete aplikaciju i ponovno kliknete, cijena se mijenja za nekoliko rubalja. Zašto?

Ako potražnja premašuje ponudu, algoritam automatski generira rastući koeficijent - to pomaže onima koji trebaju otići što je brže moguće da koriste taksi, čak i tijekom razdoblja velike potražnje. Usput, uz pomoć strojnog učenja možete predvidjeti gdje će biti veća potražnja za, primjerice, sat vremena. To nam pomaže da kažemo vozačima 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. Važno mi je vrijeme čekanja, pa gledam nekoliko aplikacija da vidim koji će taksi brže stići.


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

Nije moje da komentiram. Mislim da je ujedinjenje duboko razumna odluka.

U Njemačkoj je jedan tip postavio kadu na dronove i odletio na hamburger. Jeste li pomislili da je došlo vrijeme da ovladate zračnim prostorom?

Ne znam za zračni prostor. Pratimo vijesti poput "Uber je pustio taksi na brodove", ali ne mogu reći ništa o zraku.

- Što je sa samovozećim taksijima?

Ovdje postoji zanimljiva točka. Razvijamo ih, ali moramo razmišljati kako ih točno koristiti. Prerano je prognozirati 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 će softver drona biti hakiran kako bi se daljinski upravljalo automobilom?

Rizika ima uvijek i svugdje gdje postoje tehnologije i gadgeti. No, s razvojem tehnologije razvija se i drugi smjer - njihova zaštita i sigurnost. Svi koji su na ovaj ili onaj način uključeni u razvoj tehnologije rade na sigurnosnim sustavima.

- Koje podatke o korisnicima prikupljate i kako ih štitite?

Prikupljamo anonimizirane podatke o korištenju, kao što su gdje, kada i kamo ste putovali. Sve važno je hashirano.

- Mislite li da će se zbog dronova smanjiti broj radnih mjesta?

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

- Na svakom svom predavanju Gref govori da će čovjek barem tri puta radikalno promijeniti profesiju.

Ne mogu navesti nijedan specijalitet koji će trajati zauvijek. Programer ne radi cijeli život na istom jeziku i s istim tehnologijama. Svugdje trebamo obnoviti. Sa strojnim učenjem jasno osjećam kako dečki koji su šest godina mlađi od mene mogu razmišljati puno brže od mene. U isto vrijeme, ljudi sa 40 ili 45 godina to još jače osjećaju.

- Iskustvo više ne igra ulogu?

Igranje. Ali metode se mijenjaju, možete doći u područje gdje se, na primjer, duboko učenje nije koristilo, radite tamo neko vrijeme, onda se metode dubokog učenja uvode posvuda, a vi o tome ništa ne razumijete. To je sve. Vaše iskustvo može biti korisno samo u planiranju rada tima, ali i to ne uvijek.

- A vaše zanimanje je data scientist, je li traženo?

Potražnja za stručnjacima za podatkovnu znanost jednostavno je izvan granica. Očito je ovo razdoblje ludog hypea. Hvala Bogu, blockchain je pomogao da se ovaj hype malo stiša. Stručnjaci za blockchain još se brže pokupe.

Ali mnoge tvrtke sada misle da će im vrtovi odmah procvjetati ako ulože novac u strojno učenje. To je pogrešno. Strojno učenje trebalo bi rješavati specifične probleme, a ne samo postojati.

Postoje slučajevi kada banka želi napraviti sustav preporuke za usluge za korisnike. Pitamo: “Mislite li da će to biti ekonomski opravdano?” Oni odgovaraju: “Baš nas briga. Učini to. Svi imaju sustave preporuka, bit ćemo u trendu.”

Bol je što se nešto stvarno korisno za posao ne može napraviti u jednom danu. Moramo gledati kako će sustav učiti. Ali uvijek griješi na početku; možda mu nedostaju neki podaci tijekom treninga. Ispravite greške, pa ih opet ispravite, pa čak i ponovite sve. Nakon ovoga trebate konfigurirati sustav tako da radi u produkciji, da bude stabilan i skalabilan, to je još vrijeme. Kao rezultat toga, jedan projekt traje šest mjeseci, godinu ili više.


Ako na metode strojnog učenja gledate kao na crnu kutiju, lako možete propustiti kada se počnu događati neke lude stvari. Postoji jedna bradata priča. Vojska je zatražila da se razvije algoritam koji se može koristiti za analizu postoji li tenk na slici ili ne. Istraživači su ga napravili, testirali, kvaliteta je odlična, sve je super, dali su ga vojsci. Dođe vojska i kaže da ništa ne radi. Znanstvenici počinju nervozno shvaćati. Ispostavilo se da je na svim fotografijama s tenkom koje je vojska donijela u kutu olovkom stavljena kvačica. Algoritam je besprijekorno naučio pronaći kvačicu, nije znao ništa o tenku. Naravno, na novim slikama nije bilo kvačica.

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

Već duže vrijeme idem na razna događanja za školarce, držim predavanja o strojnom učenju. I, usput, jednu od tema mi je predavao učenik desetog razreda. Bio sam apsolutno 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, stvarno, zašto, a istina se može minimizirati, i nema se tu što posebno dokazivati. Prošlo je već nekoliko godina, sada sluša naša predavanja kao studentica Fizičko-tehnološkog instituta. Yandex, inače, ima Yandex.Lyceum, gdje školarci mogu besplatno dobiti osnovna znanja o programiranju.

- Preporučite sveučilišta i fakultete na kojima se trenutno predaje strojno učenje.

Postoje MIPT, fakulteti FIVT i FUPM. HSE također ima prekrasan odjel za informatiku, a na Moskovskom državnom sveučilištu postoji strojno učenje u kompleksu informatike. Pa, sada možete slušati naš tečaj na Sveučilištu RUDN.

Kao što sam već rekao, ovo zanimanje je traženo. Jako dugo vremena ljudi koji su dobili tehničko obrazovanje radili su potpuno različite stvari. Strojno učenje je prekrasan primjer kada su sve stvari koje su podučavali ljudi s tehničkim obrazovanjem sada izravno potrebne, korisne i dobro plaćene.

- Kako dobro?

Navedite iznos.

- 500 tisuća mjesečno.

Možete, samo bez da ste obični podatkovni znanstvenik. Ali u nekim tvrtkama pripravnik za jednostavan rad može zaraditi i 50 tisuća kuna, raspon je vrlo širok. Općenito, plaća cool podatkovnog znanstvenika može se usporediti s plaćom direktora neke srednje velike tvrtke. U mnogim tvrtkama, osim plaće, zaposlenik ima i mnoge druge beneficije, a ako je jasno da osoba nije došla dodati dobar brend u svoj životopis, već stvarno raditi, onda će joj sve biti u redu.

U sklopu zajedničkog projekta “ABC of AI” s MIPT-om, već smo pisali o tzv., koji vam omogućuju da “uzgajate” programe prema principima i zakonima Darwinove evolucije. No, za sada je ovakav pristup umjetnoj inteligenciji svakako “gost iz budućnosti”. Ali kako se danas stvaraju sustavi umjetne inteligencije? Kako su obučeni? Victor Kantor, viši predavač na Odsjeku za algoritme i tehnologije programiranja na MIPT-u i 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 tehnološke zrelosti", strojno učenje trenutno je na vrhuncu očekivanja u cijelom IT-u. To i ne čudi: tijekom posljednjih nekoliko godina strojno učenje izašlo je iz sfere interesa uskog kruga matematičara i stručnjaka za teoriju algoritama i prodrlo najprije u vokabular IT poslovnih ljudi, a potom i u svijet. običnih ljudi. Sada, svatko tko je koristio aplikaciju Prisma, tražio pjesme koristeći Shazam ili vidio slike prošle kroz DeepDream zna da postoji nešto poput neuronskih mreža sa svojom posebnom "čarolijom".

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

Kako strojevi uče

Za početak, kako bismo točno razumjeli kako dolazi do strojnog učenja, definirajmo pojmove. Kako je definirao jedan od pionira ovog područja, Arthur Samuel, strojno učenje odnosi se na metode koje “dopuštaju računalima da uče bez da ih izravno programiraju”. Postoje dvije široke klase metoda strojnog učenja: nadzirano učenje i nenadzirano učenje. Prvi se koristi kada, na primjer, trebamo naučiti računalo da traži fotografije sa slikama mačaka, drugi je kada nam stroj treba, na primjer, da može samostalno grupirati vijesti u priče, kao što se događa u servisima poput Yandex.News ili Google News. Odnosno, u prvom slučaju imamo posla sa zadatkom koji podrazumijeva postojanje točnog odgovora (mačka na fotografiji ili je tu ili ne), u drugom slučaju ne postoji niti jedan točan odgovor, već postoje različiti načini riješiti problem. Posebno ćemo se usredotočiti na prvu klasu problema kao najzanimljiviju.

Dakle, moramo naučiti računalo da napravi neka predviđanja. Štoviše, poželjno je biti što točniji. Predviđanja mogu biti dvije vrste: ili trebate birati između nekoliko opcija odgovora (je li mačka na slici ili ne je izbor jedne od dvije mogućnosti, mogućnost prepoznavanja slova na slikama je izbor jedne opcije od nekoliko desetaka, i tako dalje), ili napravite numeričko predviđanje. Na primjer, predvidite nečiju težinu na temelju njegove visine, dobi, broja cipela i tako dalje. Ove dvije vrste problema samo izgledaju drugačije, ali se zapravo rješavaju gotovo identično. Pokušajmo točno shvatiti kako.

Prvo što trebamo napraviti sustav predviđanja je prikupiti takozvani trening uzorak, odnosno podatke o težini ljudi u populaciji. Drugi je odlučiti se o skupu znakova na temelju kojih možemo zaključiti o težini. Jasno je da će jedan od “najjačih” takvih znakova biti visina osobe, pa je kao prvu aproksimaciju dovoljno uzeti samo to. 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 neka konstantna vrijednost, koja je zapisana najjednostavnijom formulom y=kx+b. Sve što trebamo učiniti kako bismo istrenirali stroj da predvidi nečiju težinu jest nekako pronaći točne vrijednosti za k i b.

Ljepota strojnog učenja je u tome što čak i ako je odnos koji proučavamo vrlo složen, u biti se ništa neće promijeniti u našem pristupu. I dalje ćemo imati posla s istom regresijom.

Recimo da visina čovjeka na težinu ne utječe linearno, već do trećeg stupnja (što je općenito očekivano, jer težina ovisi o volumenu tijela). Da bismo uzeli u obzir ovu ovisnost, jednostavno uvodimo još jedan član u našu jednadžbu, naime treću potenciju rasta s vlastitim koeficijentom, čime dobivamo y=k 1 x+k 2 x 3 +b. Sada, da bismo uvježbali stroj, morat ćemo pronaći ne dvije, već tri veličine (k 1, k 2 i b). Recimo da u našem predviđanju također želimo uzeti u obzir broj nečijih cipela, njegovu dob, vrijeme koje je proveo gledajući TV i udaljenost stana od najbližeg lokala brze hrane. Nema problema: te značajke jednostavno dodajemo 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 postoji, bit će nam gotovo svejedno koje značajke koristiti za predviđanje, jer će sam stroj naučiti dati veliku težinu važnima, a malu težinu nevažnim značajkama. Srećom, takva je metoda već izumljena i na njoj uspješno rade gotovo sva strojna učenja: od najjednostavnijih linearnih modela do sustava za prepoznavanje lica i analizatora govora. Ova se metoda naziva gradijentnim spuštanjem. Ali prije nego što objasnimo kako funkcionira, moramo napraviti malu digresiju i govoriti o neuronskim mrežama.

Neuronske mreže

U 2016. neuronske mreže toliko su čvrsto ušle u informatičku agendu da su se gotovo poistovjetile s bilo kojim strojnim učenjem i naprednim IT-om općenito. Formalno gledano, to nije točno: neuronske mreže se ne koriste uvijek u učenju matematike, postoje i druge tehnologije. Ali općenito, naravno, takva je povezanost razumljiva, jer upravo sustavi temeljeni na neuronskim mrežama sada daju "najčarobnije" rezultate, poput mogućnosti traženja osobe na fotografiji, pojave aplikacija koje prenose stil jedne slike drugoj, ili sustavi za generiranje tekstova u načinu govora određene osobe.

Način na koji su neuronske mreže strukturirane, mi već... Ovdje samo želim naglasiti da snaga neuronskih mreža u usporedbi s drugim sustavima strojnog učenja leži u njihovoj višeslojnosti, ali to ih ne čini nečim bitno drugačijim u načinu na koji rade. Višeslojnost vam doista omogućuje pronalaženje vrlo apstraktnih općih značajki i ovisnosti u složenim skupovima značajki, poput piksela na slici. No važno je razumjeti da se sa stajališta principa učenja neuronska mreža ne razlikuje radikalno od skupa konvencionalnih formula linearne regresije, tako da ista metoda gradijentnog spuštanja i ovdje odlično funkcionira.

"Snaga" neuronske mreže leži u prisutnosti srednjeg sloja neurona, koji sumarno kombiniraju vrijednosti ulaznog sloja. Zbog toga neuronske mreže mogu pronaći vrlo apstraktne značajke u podacima koje je teško svesti na jednostavne formule poput linearnog ili kvadratnog odnosa.

Objasnimo na primjeru. Odlučili smo se za predviđanje u kojem težina osobe ovisi o njegovoj visini i visini kubiranoj, što se izražava formulom y=k 1 x+k 2 x 3 +b. Uz malo rastezanja, ali zapravo se čak i takva formula može nazvati neuronskom mrežom. U njoj, kao i u običnoj neuronskoj mreži, postoji prvi sloj "neurona", koji je također sloj značajki: to su x i x 3 (pa, "jedinica neurona" koju imamo na umu i za koju odgovoran je koeficijent b). Gornji ili rezultirajući 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. Uvježbavanje ove "neuronske mreže" jednostavno znači pronalaženje istih koeficijenata.

Jedina razlika od “pravih” neuronskih mreža ovdje je u tome što nemamo jedan posredni (ili skriveni) sloj neurona, čija je zadaća kombinirati ulazna svojstva. Uvođenje takvih slojeva omogućuje vam da ne izmišljate moguće ovisnosti između postojećih značajki "iz glave", već da se oslonite na njihove već postojeće kombinacije u neuronskoj mreži. Primjerice, dob i prosječno vrijeme pred TV-om mogu imati sinergijski učinak na tjelesnu težinu osobe, ali, budući da imamo neuronsku mrežu, nismo obavezni to unaprijed znati 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 vidljiv u uzorku, tada će nakon treninga ovaj neuron automatski dobiti veliku težinu.

Gradijentni silazak

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

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

Zamislite naša dva parametra koja tražimo, iste k i b, kao dva pravca na ravnini, poput 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. A za svaku takvu točku na ravnini možemo izračunati ukupnu razinu pogreške koju ovo predviđanje daje za svaki od primjera u našem uzorku.

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

Kako možete pronaći ovu točku? Najispravnije je da se cijelo vrijeme krećemo prema dolje od točke na kojoj smo se prvobitno našli. Tako ćemo prije ili kasnije doći do lokalnog minimuma – točke ispod koje u neposrednoj blizini nema ničega. Štoviše, preporučljivo je poduzeti korake različitih veličina: kada je padina strma, možete ići šire; kada je nagib mali, bolje je prišuljati se do lokalnog minimuma "na vrhovima prstiju", inače možete preskočiti.

Upravo tako 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. Ono što je zanimljivo je da kada se broj značajki poveća (dodavanje kubika visine osobe, njezine dobi, broja cipela i tako dalje), u biti 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 za ljude čiju težinu već točno znamo. Uzmimo neke 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 jednaka 50 kilograma y=0×x+50 Na grafu, kao što je ovisnost će izgledati kao ravna linija paralelna s horizontalom. Jasno je da ovo nije baš dobro predviđanje. Sada uzmimo odstupanje u težini od ove predviđene vrijednosti, kvadriramo ga (tako da se u obzir uzmu i negativne vrijednosti) i zbrojimo - to će biti pogreška u ovom trenutku. Ako ste upoznati s počecima analize, tada čak možete pojasniti da je smjer najvećeg pada dan parcijalnom derivacijom funkcije pogreške s obzirom na k i b, a korak je vrijednost koja je odabrana za praktični razlozi: mali koraci oduzimaju puno vremena za izračunavanje, a veliki mogu dovesti do toga da ćemo skliznuti preko minimuma.

U redu, što ako nemamo samo složenu regresiju s mnogo značajki, već pravu neuronsku mrežu? Kako možemo primijeniti gradijentni spuštanje u ovom slučaju? Ispostavilo se da gradijentni spust radi na potpuno isti način s neuronskom mrežom, samo što se obuka odvija 1) korak po korak, od sloja do sloja i 2) postupno, od jednog primjera u uzorku do drugog. Metoda koja se ovdje koristi naziva se backpropagation, 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 striktno predstavljanje algoritma biti potrebno zapisati parcijalne derivacije (kao, na primjer), na intuitivnoj razini sve se događa vrlo jednostavno: za svaki od primjera u uzorku imamo određeno predviđanje na izlazu neuronske mreže. Imajući točan odgovor, možemo oduzeti točan odgovor od predviđanja i tako dobiti grešku (točnije, skup grešaka za svaki neuron izlaznog sloja). Sada trebamo prenijeti ovu pogrešku na prethodni sloj neurona, i što je više ovaj određeni neuron ovog sloja pridonio pogrešci, više moramo 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 treba ponoviti za sljedeći sloj, krećući se u suprotnom smjeru, odnosno od izlaza neuronske mreže prema ulazu.

Prolazeći neuronskom mrežom na ovaj način sa svakim primjerom uzorka za treniranje i "zakrećući" težine neurona u željenom smjeru, na kraju bismo trebali dobiti treniranu neuronsku mrežu. Metoda povratnog širenja jednostavna je modifikacija metode gradijentnog spuštanja za višeslojne neuronske mreže i stoga bi trebala funkcionirati za neuronske mreže bilo koje složenosti. Ovdje kažemo "trebao" jer zapravo postoje slučajevi kada spuštanje po gradijentu ne uspije i ne dopušta vam da napravite dobru regresiju ili trenirate neuronsku mrežu. Može biti korisno znati zašto nastaju takve poteškoće.

Poteškoće gradijentnog spuštanja

Pogrešan izbor apsolutnog minimuma. Metoda gradijentnog spuštanja pomaže u traženju lokalnog ekstrema. 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 zaustavimo u trenutku kada dođemo do prvog lokalnog minimuma na koji naiđemo i algoritam prestane raditi.

Zamislite da stojite na vrhu planine. Ako se želite spustiti na najnižu površinu u tom području, metoda gradijentnog spuštanja vam neće uvijek pomoći, jer prva niska točka na vašem putu neće nužno biti najniža točka. I ako ste u životu sposobni vidjeti da ako se malo popnete i onda možete ići još niže, onda će algoritam u takvoj situaciji jednostavno stati. Često se ova situacija može izbjeći ako odaberete pravi korak.

Neispravan odabir koraka. Metoda gradijentnog spuštanja je iterativna metoda. Odnosno, mi sami trebamo odabrati veličinu koraka - brzinu kojom se spuštamo. Odabirom koraka koji je prevelik, možemo preletjeti ekstrem koji nam je potreban i ne pronaći minimum. To se može dogoditi ako se nađete pred vrlo oštrim nizbrdicom. A odabir koraka koji je premalen riskira da algoritam bude iznimno spor ako se nađemo na relativno ravnoj površini. Ako opet zamislimo da smo na vrhu strme planine, može doći do situacije da zbog vrlo strmog spusta blizu minimuma jednostavno preletimo preko njega.

Paraliza mreže. Ponekad se dogodi da metoda gradijentnog spuštanja uopće ne uspije pronaći minimum. To se može dogoditi ako postoje ravna područja s obje strane minimuma - algoritam, kada naiđe na ravno područje, smanjuje korak i na kraju se zaustavlja. Ako stojite na vrhu planine i odlučite krenuti prema svom domu u nizini, putovanje bi moglo biti predugo ako slučajno zalutate na vrlo ravno područje. Ili, ako postoje gotovo okomite "padine" duž rubova ravnih područja, algoritam će, nakon što je odabrao vrlo veliki korak, skočiti s jedne padine na drugu, praktički se ne krećući prema minimumu.

Sva ova složena pitanja 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 označava vrijeme, kako se priroda tog pada mijenja ovisno o promjeni veličine koraka. Kako biste izbjegli upadanje u loš lokalni minimum, može biti korisno krenuti od različitih nasumično odabranih točaka krajolika - tada je vjerojatnost da ćete zapeti mnogo manja. Postoji mnogo više velikih i malih tajni korištenja gradijentnog spuštanja, a postoje i egzotičniji načini učenja koji su pomalo slični gradijentnom spuštanju. To je, međutim, tema za drugi razgovor i poseban članak u okviru projekta ABC of AI.

Priredio Alexander Ershov

© 2023 huhu.ru - Grlo, pregled, curenje nosa, bolesti grla, krajnici