Dům, design, rekonstrukce, výzdoba.  Dvůr a zahrada.  Vlastníma rukama

Dům, design, rekonstrukce, výzdoba. Dvůr a zahrada. Vlastníma rukama

» „Tvrdý datový vědec je jako generální ředitel středně velké společnosti.“ Expert na strojové učení ve společnosti Yandex.Taxi - o tom, jak data předpovídají budoucnost a formují svět

„Tvrdý datový vědec je jako generální ředitel středně velké společnosti.“ Expert na strojové učení ve společnosti Yandex.Taxi - o tom, jak data předpovídají budoucnost a formují svět

V rámci projektu ABC AI společně s MIPT jsme již psali o takzvaných, které vám umožňují „pěstovat“ programy podle principů a zákonů darwinovské evoluce. Přestože je tento přístup k umělé inteligenci samozřejmě „hostem budoucnosti“. Ale jak systémy umělá inteligence vytvořit dnes? Jak jsou školeni? Pomohl nám to zjistit Viktor Kantor, odborný asistent na katedře algoritmů a programovacích technologií Moskevského fyzikálního a technologického institutu, vedoucí skupiny pro analýzu chování uživatelů v Yandex Data Factory.

Podle nedávné zprávy výzkumné firmy Gartner, která pravidelně aktualizuje svůj „cyklus technologické vyspělosti“, je dnes strojové učení na vrcholu všech očekávání v oblasti IT. To není překvapivé: za posledních několik let se strojové učení vymanilo ze sféry zájmů úzkého okruhu matematiků a specialistů na teorii algoritmů a proniklo nejprve do slovníku IT podnikatelů a poté do světa obyčejní lidé. Nyní, když existuje něco jako neuronové sítě s jejich zvláštním „kouzlem“, každý, kdo používal aplikaci Prisma, hledal písně pomocí Shazamu nebo viděl obrázky procházející DeepDream, ví.

Jedna věc je používat technologii a druhá věc je pochopit, jak funguje. Běžná slova jako „počítač se může naučit, když mu dáte nápovědu“ nebo „neuronová síť se skládá z digitálních neuronů a je uspořádána jako lidský mozek“ někomu mohou pomoci, ale častěji situaci pouze zaměňují. Ti, kteří se budou vážně zabývat matematikou, nepotřebují populární texty: existují pro ně učebnice a vynikající online kurzy. Pokusíme se jít střední cestou: vysvětlíme, jak se učení vlastně děje na nejjednodušším problému, a poté ukážeme, jak lze stejný přístup použít k řešení skutečných zajímavých problémů.

Jak se stroje učí

Abychom přesně porozuměli tomu, jak se strojové učení děje, definujme si pojmy. Arthur Samuel, jeden z průkopníků tohoto oboru, definuje strojové učení jako metody, které „umožňují počítačům učit se bez jejich přímého programování“. Existují dvě široké třídy metod strojového učení: učení pod dohledem a učení bez dozoru. První se používá, když například potřebujeme naučit počítač hledat fotografie s obrázky koček, druhý je, když potřebujeme například stroj, aby dokázal samostatně seskupovat zprávy do zápletek, jak se to děje v služby jako Yandex.News nebo Google News. To znamená, že v prvním případě se zabýváme problémem, který implikuje existenci správné odpovědi (kočka je buď na fotografii, nebo ne), ve druhém neexistuje jediná správná odpověď, ale existuje různé způsobyřešení problému. Zaměříme se na první třídu problémů jako na nejzajímavější.

Musíme tedy naučit počítač dělat nějaké předpovědi. Kromě toho je žádoucí být co nejpřesnější. Předpovědi mohou být dvou typů: buď si musíte vybrat mezi několika možnostmi odpovědí (ať už je na obrázku kočka nebo ne - jedná se o výběr jedné možnosti ze dvou, schopnost rozpoznávat písmena na obrázcích je volbou jedna možnost z několika desítek atd.), nebo proveďte numerickou předpověď ... Například předpovídejte váhu člověka na základě jeho výšky, věku, velikosti obuvi atd. Tyto dva typy těchto úkolů vypadají jen nepodobně, ve skutečnosti jsou řešeny téměř stejně. Zkusme zjistit, jak přesně.

První věc, kterou potřebujeme k vytvoření predikčního systému, je shromáždit takzvaný tréninkový vzorek, tedy data o hmotnosti lidí v populaci. Druhým je rozhodnout o souboru znaků, na jejichž základě můžeme vyvodit závěry o hmotnosti. Je jasné, že jedním z „nejsilnějších“ takových znaků bude výška člověka, a proto jako první přiblížení stačí vzít pouze jeho. Pokud hmotnost závisí lineárně na výšce, pak bude naše předpověď velmi jednoduchá: hmotnost člověka se bude rovnat jeho výšce vynásobené nějakým faktorem plus nějakou konstantní hodnotou, která je zapsána nejjednodušším vzorcem y = kx + b. Vše, co musíme udělat, abychom vycvičili stroj k předpovědi hmotnosti člověka, je nějakým způsobem najít správné hodnoty pro k a b.

Krása strojového učení spočívá v tom, že i když je závislost, kterou studujeme, velmi složitá, v našem samotném přístupu se v podstatě téměř nic nezmění. Stále se budeme zabývat stejnou regresí.

Řekněme, že hmotnost člověka je ovlivněna jeho výškou ne lineárně, ale ve třetím stupni (což se obecně říká, protože hmotnost závisí na objemu těla). Abychom tento vztah vzali v úvahu, jednoduše zavedeme do naší rovnice ještě jeden termín, a to třetí stupeň růstu s vlastním koeficientem, čímž získáme y = k 1 x + k 2 x 3 + b. Abychom mohli stroj vycvičit, musíme najít ne dvě, ale tři veličiny (k 1, k 2 a b). Řekněme, že v naší předpovědi chceme také vzít v úvahu velikost obuvi člověka, jeho věk, čas strávený sledováním televize a vzdálenost od jeho bytu k nejbližšímu bodu rychlého občerstvení. Žádný problém: tyto funkce jsme prostě dali jako samostatné výrazy do stejné rovnice.

Nejdůležitější je vytvořit univerzální způsob, jak najít požadované koeficienty (k 1, k 2,… k n). Pokud nějaká existuje, bude nám téměř lhostejné, která znamení použít k predikci, protože samotný stroj se naučí dávat velkou váhu důležitým a malým až nedůležitým znakům. Naštěstí již byla taková metoda vynalezena a téměř veškeré strojové učení na ní úspěšně funguje: od nejjednodušších lineárních modelů po systémy rozpoznávání tváří a analyzátory řeči. Tato metoda se nazývá gradientový sestup. Než však vysvětlíte, jak to funguje, musíte udělat malou odbočku a promluvit si o neurálních sítích.

Neuronové sítě

V roce 2016 vstoupily neuronové sítě do informační agendy tak těsně, že se téměř ztotožnily s jakýmkoli strojovým učením a obecně pokročilým IT. Formálně to není pravda: neurální sítě nejsou vždy používány v matematickém učení, existují i ​​jiné technologie. Ale obecně je taková asociace samozřejmě pochopitelná, protože jsou to systémy založené na neuronových sítích, které nyní dávají nejvíce „kouzelných“ výsledků, jako je schopnost vyhledat osobu podle fotografie, vzhled aplikací, které přenášejí styl jednoho obrazu k druhému, nebo systémy pro generování textů na způsob řeči určité osoby.

Už víme, jak fungují neuronové sítě. Zde chci jen zdůraznit, že síla neuronových sítí ve srovnání s jinými systémy strojového učení spočívá v jejich vícevrstvé povaze, ale to z nich nedělá něco zásadně odlišného ve způsobu jejich práce. Vrstvení opravdu umožňuje najít velmi abstraktní obecné rysy a závislosti v komplexních sadách funkcí, jako jsou pixely na obrázku. Je ale důležité pochopit, že z hlediska principů tréninku se neurální síť nijak zásadně neliší od řady běžných lineárních regresních vzorců, takže stejná metoda gradientového sestupu funguje skvěle i zde.

„Síla“ neuronové sítě spočívá v přítomnosti mezilehlé vrstvy neuronů, které shrnují hodnoty vstupní vrstvy. Z tohoto důvodu mohou neurální sítě najít velmi abstraktní rysy dat, které je obtížné redukovat na jednoduché vzorce, jako je lineární nebo kvadratická závislost.

Vysvětlíme to na příkladu. Zastavili jsme se u predikce, ve které váha člověka závisí na jeho výšce a výšce v krychli, která je vyjádřena vzorcem y = k 1 x + k 2 x 3 + b. S jistým napětím, ale ve skutečnosti lze dokonce takový vzorec nazvat neuronovou sítí. V něm, stejně jako v konvenční neuronové síti, existuje první vrstva „neuronů“, je to také vrstva funkcí: jsou to x a x 3 (no a „jeden neuron“, který máme na paměti a pro za který odpovídá koeficient b). Horní nebo výsledná vrstva je reprezentována jedním „neuronem“ y, tj. Predikovanou hmotností osoby. A mezi první a poslední vrstvou „neuronů“ jsou spoje, jejichž síla nebo hmotnost je určena koeficienty k 1, k 2 a b. Vycvičit tuto „neuronovou síť“ znamená jednoduše najít stejné koeficienty.

Jediným rozdílem od „skutečných“ neuronových sítí je to, že nemáme jedinou mezilehlou (nebo skrytou) vrstvu neuronů, jejichž úkolem je kombinovat vstupní funkce. Zavedení takových vrstev umožňuje nemyslet z hlavy na možné závislosti mezi stávajícími funkcemi, ale spoléhat se na jejich již existující kombinace v neuronové síti. Například věk a průměrný čas před televizí mohou mít synergický účinek na váhu člověka, ale když máme neuronovou síť, nemusíme to vědět předem a zadat jejich produkt do vzorce. V neuronové síti bude určitě existovat neuron, který kombinuje vliv jakýchkoli dvou znaků, a pokud je tento vliv ve vzorku opravdu patrný, pak po tréninku tento neuron automaticky získá velkou váhu.

Sklon klesání

Máme tedy tréninkovou sadu příkladů se známými daty, tj. Tabulku s přesně změřenou hmotností osoby a nějakou hypotézu závislosti, v tomto případě lineární regrese y = kx + b. Naším úkolem je najít správné hodnoty pro k a b, a ne ručně, ale automaticky. A nejlépe univerzální metodou, která nezávisí na počtu parametrů obsažených ve vzorci.

Obecně to není těžké udělat. Hlavní myšlenkou je vytvořit určitou funkci, která bude měřit aktuální celkovou chybovost a „vyladit“ koeficienty tak, aby celková úroveň chyb postupně klesala. Jak snížit úroveň chyb? Musíme své parametry překroutit správným směrem.

Představte si naše dva parametry, které hledáme, úplně stejné k a b, jako dva směry v rovině, jako severojižní a západo-východní osa. Každý bod v takové rovině bude odpovídat určité hodnotě koeficientů, určitému specifickému vztahu mezi výškou a hmotností. A pro každý takový bod v rovině můžeme vypočítat celkovou úroveň chyb, které tato predikce dává pro každý z příkladů v našem vzorku.

Ukazuje se něco jako konkrétní výška v rovině a celý okolní prostor začíná připomínat horskou krajinu. Hory jsou body, kde je chybovost velmi vysoká, údolí jsou místa, kde je méně chyb. Je jasné, že trénovat náš systém znamená najít nejnižší bod na zemi, tedy bod, kde je míra chyb minimální.

Jak můžete najít tento bod? Většina Správná cesta- neustále se pohybovat dolů z místa, kde jsme původně skončili. Dříve nebo později tedy dojdeme k místnímu minimu - bodu, pod kterým v bezprostřední blízkosti nic není. Kromě toho je žádoucí provádět kroky různých velikostí: když je svah strmý, můžete jít širší, když je svah malý, pak je lepší se proklouznout na místní minimum „na špičkách“, jinak můžete proklouznout .

Takto funguje metoda sestupu gradientu: měníme váhy prvků ve směru největšího pádu chybové funkce. Měníme je iterativně, tedy určitým krokem, jehož hodnota je úměrná strmosti svahu. Je zajímavé, že s nárůstem počtu funkcí (přidáním kostky výšky člověka, jeho věku, velikosti obuvi atd.) Se ve skutečnosti nic nemění, jen naše krajina se nestává dvourozměrná, ale vícerozměrná.

Chybovou funkci lze definovat jako součet druhých mocnin všech odchylek, které současný vzorec umožňuje ve vztahu k lidem, jejichž váhu již s jistotou známe. Vezmeme si nějaké náhodné proměnné k a b, například 0 a 50. Poté nám systém předpoví, že hmotnost každé osoby ve vzorku je vždy 50 kilogramů y = 0 × x + 50 Na grafu bude tato závislost vypadat jako přímka rovnoběžná k horizontále. Je jasné, že to není moc dobrá předpověď. Nyní vezmeme odchylku hmotnosti z této predikované hodnoty, vyděláme ji druhou mocninou (aby byly zohledněny i záporné hodnoty) a sečteme - to bude chyba v tomto bodě. Pokud jste obeznámeni se začátkem analýzy, pak můžete dokonce objasnit, že směr největšího pádu je dán parciální derivací chybové funkce s ohledem na k a b a krok je hodnota, která je vybrána z praktické úvahy: výpočet malých kroků zabere hodně času a velké kroky mohou vést k tomu, že proklouzneme za minimum.

Co když nemáme jen složitou regresi s mnoha funkcemi, ale skutečnou neuronovou síť? Jak v tomto případě použijeme gradientový sestup? Ukazuje se, že gradientový sestup funguje s neurální sítí stejně, pouze trénink probíhá 1) po etapách, od vrstvy k vrstvě a 2) postupně, od jednoho příkladu ve vzorku k druhému. Zde použitá metoda se nazývá algoritmus zpětné propagace chyb a byla nezávisle popsána v roce 1974 sovětským matematikem Alexandrem Galushkinem a matematikem z Harvardské univerzity Paulem Johnem Webrosem.

Ačkoli pro důslednou prezentaci algoritmu bude nutné vypsat dílčí derivace (například), na intuitivní úrovni je vše celkem jednoduché: pro každý z příkladů ve vzorku máme určitou předpověď na výstupu neurální síť. Když máme správnou odpověď, můžeme správnou odpověď od predikce odečíst a získat tak chybu (přesněji sadu chyb pro každý neuron ve výstupní vrstvě). Nyní musíme tuto chybu přenést na předchozí vrstvu neuronů a čím více tento konkrétní neuron této vrstvy přispěl k chybě, tím více potřebujeme snížit její váhu (ve skutečnosti opět mluvíme o převzetí částečné derivace, o pohybu po maximální strmosti naší imaginární krajiny) ... Když jsme to udělali, stejný postup musí být opakován pro další vrstvu, pohybující se v opačném směru, tj. Od výstupu neurální sítě ke vstupu.

Procházíme tímto způsobem neurální sítí s každým příkladem tréninkového vzorku a „kroutíme“ váhy neuronů správným směrem, měli bychom konečně získat natrénovanou neuronovou síť. Metoda backpropagation je jednoduchá modifikace metody gradient descent pro vícevrstvé neurální sítě, a proto by měla fungovat pro neurální sítě jakékoli složitosti. Říkáme zde „měli“, protože ve skutečnosti existují případy, kdy gradientový sestup selže a neumožňuje dobrou regresi nebo trénink neuronových sítí. Může být užitečné vědět, co takové potíže způsobuje.

Obtíže s klesáním

Špatný výběr absolutního minima. Metoda gradientového sestupu pomáhá najít místní extrém. Nemůžeme ho však vždy použít k dosažení absolutního globálního minima nebo maxima funkce. K tomu dochází, protože když se pohybujeme podél antigradientu, zastavíme se v okamžiku, kdy dosáhneme prvního lokálního minima, na které jsme narazili, a algoritmus přestane fungovat.

Představte si, že stojíte na vrcholu hory. Pokud chcete sestoupit na nejnižší povrch v oblasti, gradientové klesání vám nemusí vždy pomoci, protože první nízký bod na vaší cestě nemusí být nutně nejnižším bodem. A pokud jste v životě schopni vidět, že stojí za to jít trochu nahoru a pak můžete jít ještě níž, pak se algoritmus v takové situaci jednoduše zastaví. Této situaci lze často předejít výběrem správného kroku.

Špatná volba kroku. Metoda gradientového klesání je iterační metoda. To znamená, že sami musíme zvolit velikost kroku - rychlost, s jakou klesáme. Když zvolíme příliš velký krok, můžeme proletět kolem extrému, který potřebujeme, a nenacházet minimum. To se může stát, pokud se ocitnete před velmi prudkým sestupem. A volba příliš malého kroku hrozí extrémně pomalým provozem algoritmu, pokud se ocitneme na relativně plochý povrch... Když si znovu představíme, že jsme na vrcholu strmé hory, můžeme se dostat do situace, kdy kvůli velmi prudkému klesání poblíž minima nad ním jednoduše přeletíme.

Paralýza sítě. Někdy se stane, že metoda gradientového sestupu vůbec nedokáže najít minimum. K tomu může dojít, pokud jsou na obou stranách minima ploché části - algoritmus po zasažení ploché části sníží krok a nakonec se zastaví. Pokud se ve stoje na vrcholu hory rozhodnete přestěhovat do svého domova v nížinách, může být cesta příliš dlouhá, pokud omylem zabloudíte do velmi rovné oblasti. Nebo pokud jsou podél okrajů plochých oblastí prakticky strmé „svahy“, algoritmus, který zvolil velmi velký krok, bude přeskakovat z jednoho svahu na druhý, prakticky se nepohybuje na minimum.

Všechny tyto složitosti je třeba vzít v úvahu při navrhování systému strojového učení. Vždy je například užitečné sledovat přesně, jak se chybová funkce v čase mění - ať už klesá s každým novým cyklem nebo stagnuje, jak se povaha tohoto pádu mění v závislosti na změně velikosti kroku. Abyste se vyhnuli špatnému místnímu minimu, může být užitečné začít z různých náhodně vybraných bodů v krajině - pak je pravděpodobnost zaseknutí mnohem nižší. Existuje mnoho dalších velkých i malých tajemství, jak se vypořádat s přechodovým sestupem, a existuje více exotických metod učení, které se gradientnímu sestupu příliš nepodobají. Toto je však již téma pro další konverzaci a samostatný článek v rámci projektu AI ABC.

Připravil Alexander Ershov

- Můžete pomocí zcela primitivního příkladu popsat, jak funguje strojové učení?

Umět. Existuje příklad metody strojového učení s názvem Decision Tree, jedna z nejstarších věcí. Pojďme to udělat teď. Řekněme, že vás abstraktní člověk pozve na rande. Co je pro vás důležité?

- Nejprve ho znám nebo ne ...

(Victor to píše na tabuli.)

... Pokud nevím, musím odpovědět na otázku, zda je to atraktivní nebo ne.

A pokud víte, nevadí? Myslím, že to chápu, toto je pobočka zóny přátel! Obecně píšu, pokud nevíte a neatraktivní, pak odpověď zní „ano ne, pravděpodobně“. Pokud víte, odpověď zní ano.

- Pokud vím, je to také důležité!

Ne, bude to pobočka zóny přátel.

Dobře, ukažme zde, jestli je to zajímavé nebo ne. Přesto, když člověka neznáte, první reakcí je vzhled, u přítele už vidíme, co si myslí a jak.

Pojďme to udělat jinak. Ať už je ambiciózní, nebo ne. Pokud je ambiciózní, pak bude obtížné přátelské pásmo, bude také chtít víc. A ambiciózní budou tolerovat.

(Victor dokončí rozhodující strom.)

Připraven. Nyní můžete předpovědět, s kterým chlapem se s největší pravděpodobností scházíte. Mimochodem, některé seznamovací služby předpovídají tento druh věcí. Analogicky můžete předpovědět, kolik produktů si zákazníci koupí a kde se lidé v tuto denní dobu budou nacházet.

Odpovědi mohou být nejen „ano“ a „ne“, ale také ve formě čísel. Pokud chcete přesnější předpověď, můžete vytvořit několik těchto stromů a průměrovat je. A s tak jednoduchou věcí můžete vlastně předpovídat budoucnost.

Teď si představte, jestli bylo pro lidi těžké přijít s takovým schématem před dvěma sty lety? Rozhodně ne! Toto schéma nenese žádný raketový vjem. Jako fenomén existuje strojové učení asi půl století nebo století. Ronald Fisher začal prognózovat na základě údajů na začátku 20. století. Vzal kosatce a rozložil je po délce a šířce sepalu a okvětního lístku, podle těchto parametrů určil typ rostliny.

V průmyslu se v posledních desetiletích aktivně používá strojové učení: silné a relativně levné stroje, které jsou potřeba ke zpracování velkého množství dat, například pro takové rozhodovací stromy, se objevily teprve nedávno. Ale stále je to dechberoucí: kreslíme tyto věci pro každý úkol a používáme je k předpovídání budoucnosti.

- Rozhodně ne lepší než jakákoli chobotnice předpovídající fotbalové zápasy ...

Kdepak, jsme na chobotnicích. I když máme větší variabilitu. Strojové učení nyní může ušetřit čas, peníze a zlepšit životní komfort. Strojové učení před pár lety porazilo lidi v klasifikaci obrázků. Počítač například dokáže rozpoznat 20 plemen teriérů a obyčejný člověk Ne.

- A když analyzujete uživatele, je pro vás každý soubor čísel?

Zhruba řečeno, ano. Když pracujeme s daty, všechny objekty, včetně chování uživatelů, jsou popsány určitou sadou čísel. A tato čísla odrážejí zvláštnosti chování lidí: jak často jedou taxíkem, jakou třídu taxíků používají, kam obvykle jezdí.

Nyní aktivně vytváříme modely, které vypadají podobně, abychom pomocí nich identifikovali skupiny lidí s podobným chováním. Když představíme novou službu nebo chceme propagovat starou, nabízíme ji těm, které to bude zajímat.

Nyní například máme službu - dvě dětské sedačky v taxíku. S touto zprávou můžeme spamovat všechny, nebo o ní můžeme informovat pouze určitý okruh lidí. V průběhu roku jsme nahromadili určitý počet uživatelů, kteří do komentářů napsali, že potřebují dvě dětské sedačky. Našli jsme je a lidé je mají rádi. Obvykle se jedná o lidi starší 30 let, kteří pravidelně cestují a milují středomořskou kuchyni. Ačkoli známek je samozřejmě mnohem více, toto jsem já pro příklad.

- I takové jemnosti?

To je jednoduchá záležitost. Vše se vypočítává pomocí vyhledávacích dotazů.

A v aplikaci to může nějak fungovat? Víte například, že jsem žebrák a jsem přihlášen ke skupinám typu „Jak přežít s 500 rubly měsíčně“ - jsou mi nabízena pouze otlučená levná auta, přihlášena k odběru novinek SpaceX - a čas od času dostanu Teslu?

Může to tak fungovat, ale Yandex takové věci neschvaluje, protože jde o diskriminaci. Když si přizpůsobujete službu, je lepší nabídnout ne nejpřijatelnější, ale nejlepší dostupné a to, co se dané osobě líbí. A rozdělení podle logiky „tenhle potřebuje lepší auto a ten méně dobrý“ je zlé.


Každý má zvrácené touhy a někdy potřebujete najít ne recept na středomořské jídlo, ale například obrázky o koprofilii. Bude personalizace fungovat i v tomto případě?

Vždy existuje soukromý režim.

Pokud nechci, aby někdo věděl o mých zájmech, nebo za mnou například přišli přátelé a chtěli sledovat nějaký odpad, pak je lepší použít režim inkognito.

Můžete se také rozhodnout, kterou službu společnosti použijete, například Yandex nebo Google.

- Je v tom rozdíl?

Složitý problém. Nevím o ostatních, ale Yandex je náročný na ochranu osobních údajů. Zvláště dohlížejte na zaměstnance.

- To znamená, že kdybych se rozešel s nějakým chlapem, nebudu schopen zjistit, zda šel do této dachy nebo ne?

I když pracujete pro Yandex. To je samozřejmě smutné, ale ano, nebude možné to zjistit. Většina zaměstnanců k těmto datům ani nemá přístup. Vše je šifrováno. Je to jednoduché: nemůžete špehovat lidi, toto jsou osobní údaje.

Mimochodem, měli jsme zajímavý případ na téma rozloučení s kluky. Když jsme dělali předpovědi bodu „B“ - cílového bodu v taxíku, zavedli jsme rady. Tady se podívej.

(Victor vstoupí do aplikace Yandex.Taxi.)

Například taxi si myslí, že jsem doma. Zve mě, abych šel buď do práce, nebo na RUDN University (četl jsem tam přednášky v rámci kurzu strojového učení Data Mining in Action). A v určitém okamžiku při vývoji těchto tipů jsme si uvědomili, že bychom neměli kompromitovat uživatele. Někdo vidí bod „B“. Z těchto důvodů jsme odmítli nabízet místa na základě podobnosti. A pak si sednete na slušné místo se slušnými lidmi, objednáte si taxi a oni vám napíšou: „Hele, v tomto baru jsi ještě nebyl!“

- Jaké modré tečky blikají na vaší mapě?

Toto jsou body vyzvednutí. Tyto body ukazují, kde je nejvhodnější zavolat taxi. Koneckonců můžete zavolat na místo, kde bude volání zcela nepohodlné. Ale obecně můžete zavolat na jakékoli místo.

- Ano, jakýkoli. S tím jsem nějak uletěl dva bloky.

V poslední době jsou s GPS různé potíže, což vedlo k různým vtipným situacím. Lidé například na Tverskaya navigaci vrhli přes Tichý oceán. Jak vidíte, někdy se vyskytnou chyby a více než dva bloky.

- A pokud aplikaci restartujete a znovu do ní šťouchnete, cena se změní o pár rublů. Proč?

Pokud poptávka převyšuje nabídku, algoritmus automaticky generuje multiplikační koeficient - to pomáhá těm, kteří potřebují co nejrychleji opustit taxi, a to i v obdobích vysoké poptávky. Mimochodem, pomocí strojového učení můžete předpovědět, kde bude poptávka větší například za hodinu. To nám pomáhá sdělit řidičům, kde bude více objednávek, aby nabídka odpovídala poptávce.

- Nemyslíte si, že Yandex.Taxi brzy zabije celý trh s taxi?

Myslím, že ne. Jsme pro zdravou konkurenci a nebojíme se jí.

Sám například využívám různé taxislužby. Čekací doba je pro mě důležitá, takže se dívám přes několik aplikací, které taxi dorazí rychleji.


- Spojili jste se s Uberem. K čemu?

Není v mé kompetenci se k tomu vyjadřovat. Myslím, že sjednocení je hluboce rozumné rozhodnutí.

V Německu si chlap nainstaloval na drony vanu a letěl si pro hamburger. Myslíte si, že je čas zvládnout vzdušný prostor?

Nevím o vzdušném prostoru. Sledujeme novinky v duchu „Uber spustil taxi na lodích“, ale o vzduchu nemohu nic říci.

- A taxikáři?

Tady je zajímavý bod. Vyvíjíme je, ale musíme přemýšlet, jak je přesně použít. Na předpovědi, v jaké formě a kdy se objeví na ulici, je příliš brzy, ale děláme vše pro to, abychom vyvinuli technologii pro plně autonomní vůz, kde lidský řidič nebude vůbec potřeba.

- Existují nějaké obavy, že by software dronu mohl být hacknut, aby bylo možné dálkově ovládat auto?

Rizika jsou vždy a všude tam, kde jsou technologie a gadgety. Spolu s vývojem technologií se ale vyvíjí i další směr - jejich ochrana a bezpečnost. Každý, kdo se tak či onak podílí na vývoji technologií, pracuje na zabezpečovacích systémech.

- Jaký druh uživatelských dat shromažďujete a jak je chráníte?

Shromažďujeme anonymizovaná uživatelská data, například kde, kdy a kde byla cesta provedena. Všechno důležité je hašování.

- Myslíte si, že drony sníží počet pracovních míst?

Myslím, že bude jen větší. Přesto je třeba také tyto drony nějak opravit. Je to samozřejmě trochu stresující situace, změna vaší specializace, ale co můžete dělat.

- Gref na každé své přednášce říká, že člověk minimálně třikrát radikálně změní povolání.

Nedokážu pojmenovat žádnou specialitu, která bude trvat věčně. Vývojář nepracuje celý život ve stejném jazyce a se stejnými technologiemi. Všude, kde potřebujete přestavět. Díky strojovému učení jasně cítím, jak kluci, kteří jsou o šest let mladší než já, myslí mnohem rychleji než já. Lidé ve 40 nebo 45 letech to přitom cítí ještě více.

- Zkušenosti již nehrají roli?

Hraje. Metody se ale mění, můžete přijít do oblasti, kde se například hluboké učení nepoužívalo, chvíli tam pracujete, pak se všude implementují metody hlubokého učení a vy tomu nerozumíte. A to je vše. Vaše zkušenosti mohou být užitečné pouze při plánování práce týmu, a i když ne vždy.

- A vaše profese - datový vědec, je to žádané?

Poptávka po odbornících na datovou vědu je prostě mimo rozsah. Nyní je evidentně období šíleného humbuku. Díky bohu blockchain pomohl tomuto humbuku trochu ustoupit. Specialisté na blockchain jsou demontováni ještě rychleji.

Mnoho společností si ale nyní myslí, že pokud investují do strojového učení, jejich zahrady hned kvetou. To není pravda. Strojové učení by mělo řešit konkrétní problémy, nejen existovat.

Jsou chvíle, kdy chce banka vytvořit systém doporučení pro uživatele. Ptáme se: „Myslíte si, že to bude ekonomicky odůvodněné?“ Odpovídají: „Ano, je nám to jedno. Udělej to. Všechny stejné systémy doporučení, budeme v trendu. “

Bolestí je, že opravdu užitečnou věc pro podnikání nelze udělat za jeden den. Musíte sledovat, jak se systém naučí. A vždy pracuje na začátku s chybami, při tréninku jí mohou chybět nějaká data. Opravíte chyby, pak je znovu opravíte a dokonce vše předěláte. Poté je třeba nakonfigurovat, aby systém fungoval ve výrobě, aby byl stabilní a škálovatelný, je ještě čas. Výsledkem je, že jeden projekt trvá šest měsíců, rok nebo déle.


Pokud se na metody strojového učení díváte jako na černou skříňku, pak vám může snadno uniknout, jak se začnou dít nějaké nesmysly. Existuje vousatý příběh. Armáda požádala o vyvinutí algoritmu, který lze použít k analýze, zda je na obrázku tank nebo ne. Vědci udělali, testovali, kvalita je vynikající, všechno je skvělé, vzhledem k armádě. Přichází armáda a říká, že nic nefunguje. Vědci začínají nervózně rozumět. Ukazuje se, že všechny obrázky s tankem, které armáda přinesla, měly v rohu zatržítko s perem. Algoritmus se bezchybně naučil najít zatržítko, o tanku nic nevěděl. Na nových obrázcích přirozeně nebyly žádné zatržítka.

Setkal jsem se s dětmi, které rozvíjejí své vlastní systémy dialogu. Napadlo vás někdy, že byste s dětmi měli spolupracovat?

Již delší dobu chodím na nejrůznější akce pro školáky, přednáším o strojovém učení. A mimochodem jedno z témat mě naučil žák desáté třídy. Byl jsem si naprosto jistý, že můj příběh bude dobrý a zajímavý, byl jsem na sebe hrdý, začal jsem vysílat a dívka říkala: „Ach, chceme tuto věc minimalizovat.“ Dívám se a přemýšlím, ale opravdu, proč, a opravdu lze minimalizovat, a hlavně není co dokazovat. Uplynulo několik let, nyní poslouchá naše přednášky jako studentka Phystech. Mimochodem, Yandex má Yandex.Lece, kde mohou studenti získat základní znalosti programování zdarma.

- Poradit univerzitám a fakultám, kde se nyní vyučuje strojové učení.

Existuje MIPT, fakulty FIVT a FUPM. HSE má také úžasnou fakultu informatiky; na Moskevské státní univerzitě je na VMK strojové učení. Nyní si můžete poslechnout náš kurz na univerzitě RUDN.

Jak jsem řekl, tato profese je žádaná. Lidé, kteří získali technické vzdělání, se velmi dlouhou dobu zabývali úplně jinými věcmi. Strojové učení je skvělým příkladem, kde se učí vše, od čeho se lidé učili technické vzdělání, nyní jsou potřební, užiteční a dobře placení.

- Jak dobře?

Pojmenujte částku.

- 500 tisíc měsíčně.

Můžeš, prostě nebýt obyčejný datový vědec. Ale v některých společnostech může velmi, velmi praktikant získat 50 000 za jednoduchou práci. Existuje velmi velké rozpětí. Obecně lze plat tvrdého datového vědce přirovnat k platu generálního ředitele nějaké průměrné společnosti. V mnoha společnostech kromě platu padá na zaměstnance i spousta housek, a pokud je jasné, že si člověk nepřišel napsat dobrou značku do životopisu, ale aby opravdu fungoval, pak bude vše v pořádku mu.

Od doby, kdy FIVT zahájil neobvyklý předmět - inovativní workshop, uplynul téměř rok. Jeho podstatou je vytváření IT startupů studentskými týmy pod vedením zkušených mentorů. Dopadlo to dobře: díky kurzu někdo strávil část léta v údolí Kremievaya, někdo obdržel dotaci 800 000 rublů na rozvoj projektu a někdo jiný ABBYY je připraven projekt plně vykoupit. A to nejsou všechny výsledky workshopu!

Na začátku roku 2011 byli studenti třetího ročníku FIVT shromážděni ve sněmovně a bylo jim řečeno: během příští rok budete muset vytvořit vlastní spuštění. Studenti vnímali tuto myšlenku nejednoznačně: nebylo vůbec jasné, jak to udělat, a odpovědnost byla neobvyklá - koneckonců bylo nutné podnikat v oblasti technologií, a ne další vzdělávací projekt. Zde si o tom myslí Viktor Kantor, vítěz studentské olympiády MIPT ve fyzice, student oddělení Yandeska:

Když jsem si po přijetí vybral FIVT, doufal jsem, že budeme mít něco podobného. Jsem tedy rád, že jsem nedoufal nadarmo. V průběhu roku bylo cítit, že se kurz stále tvoří, hodně v něm bylo nového, řada otázek se ukázala být kontroverzními nejen pro studenty, ale i pro organizátory, ale obecně si myslím, že tendence byly pozitivní. Tento kurz se mi líbil.

Pro usnadnění práce studentů byli pozváni různí kurátoři, kteří navrhli své nápady pro budování inovativních podniků. Byli mezi nimi úplně jiní lidé: od vyšších studentů a postgraduálních studentů MIPT po poradce Ernst & Young pro inovace Jurije Pavloviče Ammosova (byl vedoucím celého kurzu) a Michaila Batina, který se zabývá problematikou regenerativní medicíny a otázkami prodloužení života. V důsledku toho fyzici vybrali nejzajímavější nápady, kurátoři se připojili k týmům a tvrdá, ale vzrušující práce začala.

Téměř rok, který od té chvíle uplynul, čelili kluci mnoha problémům, z nichž některé byly vyřešeny. Nyní můžete vyhodnotit jejich výsledky - navzdory obtížím se kluci vyrovnali. Studentům MIPT (kromě FIVTS se do procesu zapojili i někteří studenti FOPF a dalších fakult) se podařilo připravit několik docela zajímavých a životaschopných projektů:

Askeroid (dříve Ask Droid) - hledání smartphonů ( Anastasia Uryasheva)

Aplikace pro Android, která vám umožní pohodlně vyhledávat ve velkém množství vyhledávačů. Někteří odborníci projevili zájem o vývoj a v důsledku toho strávila Anastasia celé minulé léto v jednom z nejslavnějších inkubátorů v Silicon Valley - Plug & Play. naučit se základy technologického podnikání a mluvit s mezinárodními odborníky na rizikový kapitál.

1minute.ru - jedna minuta k dobru (Lev Grunin)

Tento projekt umožňuje jakékoli osobě vykonávat charitativní činnost jednoduše, rychle a zcela zdarma. Model je jednoduchý: inzerenti nabízejí na webu určitý soubor aktivit, uživatelé se jich dobrovolně účastní, všechny peníze z reklamy jsou převedeny na charitativní nadaci. Za týden po spuštění projekt shromáždil více než 6500 uživatelů a nezastaví se tam. Díky Levovi a jeho týmu díky tomu dostane 600 dětí z dětských domovů Nový rok ceněné dárky od Ježíška. Už jste strávili jednu minutu dobrým skutkem?

Embedded Desktop - počítač ve vašem telefonu (Alexey Vukolov)

Aplikace, která vám umožní spojit schopnosti počítače a mobilitu telefonu v jednom případě - extrémně užitečný produkt pro zaneprázdněné lidi, kteří jsou často na služebních cestách. Stačí jej nainstalovat do smartphonu a uživatel si bude moci „pořídit“ vlastní počítač v jakémkoli hotelu, kanceláři a skutečně všude, kde najdete monitor (vhodný je i televizor), klávesnici a myš. Projekt získal grant na rozvoj myšlenky a byl představen na výstavě Technovation Cup a tým již za získané peníze aktivně nakupuje vybavení. Americký výrobce procesorů MIPS má o vývoj živý zájem.

Smart Tagger - sémantické vyhledávání dokumentů (Victor Kantor)

Co dělat, když si to někde pamatujete schránka tam byl velmi důležitý dopis, který hovořil o nejnovější epizodě Teorie velkého třesku, ale nepamatujete si žádná klíčová slova z textu? Vyhledávání Yandex a Google je bezmocné. Vývoj Smart Tagger přijde na pomoc - „chytrý“ program, který využívá sémantické vyhledávání, vám poskytne všechny texty, jejichž význam se prolíná s populárním televizním seriálem. Projekt získal grant na U.M.N.I.K. celkem 400 000 rublů!

MathOcr - Formula Recognition (Victor Prun)

Společnost ABBYY navrhla pro implementaci zajímavý úkol - vytvořit program, který by rozpoznal matematické vzorce jakékoli složitosti. Studenti FIVT po spojení se zainteresovanými fopfs dokončili úkol - modul skutečně rozpoznává vzorce naskenované z učebnic matanu nebo fyziky. Výsledek: Společnost ABBYY je připravena zakoupit tento produkt za spoustu peněz.