Jak se strojové učení skutečně učí: AI bez zbytečných řečí
Receptář vaší maminky
Povím vám o své mámě. Dělá nejlepší jablečný koláč, jaký jsem kdy ochutnal. Naprosto dokonalý. Pokaždé.
Jde o to, že nikdy nepoužila recept. Ani jednou. Tento koláč dělá už 40 let. Prostě ví, co funguje.
Jak se to naučila?
Začala s receptem své maminky. První koláč? Ujde to. Druhý? Přidala trochu více skořice, protože ten první byl mdlý. Třetí? Méně cukru, protože druhý byl příliš sladký. Čtvrtý? Více másla do těsta, protože bylo příliš suché.
Rok za rokem, koláč za koláčem, upravovala. Všímala si vzorců. „Když jsou jablka příliš kyselá, přidej více cukru. Když jsou sladká, přidej méně. Když je vlhko, použij méně vody do těsta. Když je sucho, použij více."
Učila se ze zkušenosti. Ze zpětné vazby. Z toho, že upekla stovky koláčů a všímala si, co fungovalo a co ne.
Přesně takhle funguje strojové učení. Jen místo pečení koláčů počítače vytvářejí předpovědi. A místo 40 let to zvládnou za pár hodin.
Ukážu vám, jak na to.
Co „učení" vlastně znamená (pro stroje)
Když lidé řeknou, že se počítač něco „naučil", neznamená to, že to pochopil. Znamená to, že se v daném úkolu zlepšil díky praxi.
Moje máma nerozuměla chemii toho, proč máslo dělá těsto vločkové. Prostě věděla, že to tak je. Našla vzorec: více másla znamená vločkovější těsto. To je učení.
Počítače dělají totéž, ale místo koláčů používají data.
Dám vám skutečný příklad, se kterým se setkáváte každý den: filtr nevyžádané pošty ve vašem e-mailu.
Starý způsob (před učením)
Ruční pravidla, která se neustále porušovala
Někdo musel psát pravidla: „Pokud e-mail obsahuje ‚nigerijský princ', je to spam. Pokud obsahuje ‚vyhráli jste v loterii', je to spam. Pokud má více než 10 vykřičníků, je to spam."
Problém? Spameři se přizpůsobili. Začali psát „n1gerijský pr1nc" nebo „l0terie". Pravidla přestala fungovat. Někdo musel ručně psát nová pravidla. Pořád dokola. Navěky.
Nový způsob (s učením)
Počítač si vzory nachází sám
Ukážete počítači 10 000 e-mailů. „Těchto 5 000 je spam. Těchto 5 000 je skutečných.“ Počítač se na ně podívá a najde vzory, které jste mu neřekli hledat:
- → Spamové e-maily mívají určitá slova pohromadě
- → Přicházejí z určitých typů e-mailových adres
- → Mají neobvyklé vzory interpunkce
- → Odkazy v nich vypadají určitým způsobem podezřele
Až teď spammeři změní taktiku, stačí počítači ukázat nové příklady spamu. On najde nové vzory. Není třeba ručně psát nová pravidla.
To je strojové učení: počítače se zlepšují v úkolech tím, že nacházejí vzory v příkladech, ne tím, že se řídí pravidly, která někdo napsal.
Tři způsoby, jak stroje trénují
Stejně jako se lidé učí různými způsoby, mají i stroje různé metody učení pro různé situace. Povím vám o těch třech hlavních na příkladech, které vám budou skutečně blízké.
Učení s učitelem (řízené učení)
Pamatujete si, jak jste se ve škole učili násobilku? Učitel vám dával příklady A odpovědi. „Kolik je 7 krát 8?“ „56.“ Cvičili jste, dokud jste neuměli odpovědět bez koukání.
To je řízené učení. Počítač dostává otázky a odpovědi pohromadě.
Příklad: Jak naučit počítač poznávat fotky
Ukážete mu 1 000 fotek. U každé mu řeknete, co na ní je:
- 📷 Tato fotka: kočka
- 📷 Tato fotka: pes
- 📷 Tato fotka: auto
Počítač začne hádat náhodně. Nejdřív jsou to příšerné odhady. Pak si začne všímat vzorců: „Fotky se špičatýma ušima a vousky jsou obvykle kočky. Fotky s klapavýma ušima a mokrým čumákem jsou obvykle psi. Fotky s koly a okny jsou obvykle auta."
Trénuje na těch 1 000 fotkách, dokud to neumí opravdu dobře. Pak ho vyzkoušíte na nových fotkách, které nikdy neviděl. Pokud se vzorce naučil dobře, pozná je správně.
Takto váš telefon poznává obličeje, takto lékaři pomocí umělé inteligence odhalují nemoci na rentgenových snímcích a takto hlasoví asistenti rozumějí tomu, co říkáte.
Učení bez učitele (učení bez dohledu)
Představte si, že třídíte sbírku knoflíků po své zesnulé tetě. Měla jich stovky, všechny pomíchané. Nemáte žádného průvodce. Prostě je začnete třídit do hromádek, které vám dávají smysl.
Hledání vzorců na vlastní pěst
- → Velké knoflíky sem. Malé tam.
- → Kovové do této hromádky. Plastové do té.
Nacházíte vzorce, aniž by vám někdo říkal, na co se máte zaměřit.
To je učení bez dohledu. Počítač hledá vzorce, aniž by mu někdo řekl, jaká má být odpověď.
Příklad: Hledání skupin zákazníků
Obchod má data o 10 000 zákaznících: co kupují, kdy nakupují, kolik utratí. Nikdo počítači neřekne, jaké skupiny existují. On se jen podívá a najde vzorce:
Skupina 1: Mladí lidé, kteří nakupují pozdě v noci, kupují malé množství, chodí často
Skupina 2: Rodiny, které nakupují o víkendech, kupují ve velkém, chodí týdně
Skupina 3: Důchodci, kteří nakupují v poledne ve všední dny, kupují konkrétní věci, velmi pravidelně
Nikdo mu neřekl, že tyto skupiny existují. Našel je tím, že si všiml, kteří zákazníci se chovají podobně.
Takto Netflix seskupuje pořady, které by se vám mohly líbit, takto odhalování podvodů nachází neobvyklé transakce a takto vědci objevují vzorce v DNA.
Učení se pokusem a omylem (zpětnovazební učení)
Pamatujete, jak jste učili psa sednout? Nevysvětlujete mu, co to znamená sedět. Jen řeknete „sedni" a když pes sedne, dáte mu pamlsek. Když nesedne, žádný pamlsek. Pes na to přijde: sedět znamená pamlsky. Nesedět znamená žádné pamlsky.
To je zpětnovazební učení. Zkoušejte věci. Podívejte se, co funguje. Dělejte víc toho, co funguje.
Příklad: Učení počítače hrát šachy
Počítač zpočátku nezná pravidla. Jen zkouší tahy. Náhodně. Většina z nich je příšerná.
Ale tady je ta věc: když vyhraje hru, řeknete mu „dobrá práce". Když prohraje, řeknete mu „to nefungovalo". Začne si všímat:
- ✓ Posunout dámu sem často vede k vítězství
- ✗ Nechat krále odkrytého obvykle vede k prohře
- ✓ Ovládat střed šachovnice je užitečné
Poté, co odehraje miliony her samo proti sobě, je opravdu, opravdu dobré. Ne proto, že by ho někdo učil strategii. Protože vyzkoušelo všechno a zjistilo, co funguje.
Takto se umělá inteligence naučila porážet mistry světa v šachách a Go, takto se roboti učí chodit a takto se samořiditelná auta učí řídit.
Tři styly učení
Jak k praxi skutečně dochází (tajný proces)
Dobře, takže počítač trénuje tím, že se dívá na příklady. Ale co se vlastně děje uvnitř? Provedu vás tím, jako byste se dívali počítači přes rameno.
Krok 1: Začněte s divokými odhady
Jako hádat váhu dýně
Představte si, že se snažíte odhadnout váhu dýně jen tím, že se na ni podíváte. Nikdy jste to nedělali, takže prostě vyhrknete nějaké číslo. „Hmm... 15 liber?"
Přesně to dělá počítač. Začíná s náhodnými odhady. Úplně náhodnými. Je to, jako byste se ptali novorozeněte, aby pojmenovalo barvy. Ty odhady jsou příšerné. To je v pořádku. To je výchozí bod.
Krok 2: Zkontrolujte, jak moc se mýlíte
Měření chyby
Teď dáte dýni na váhu. Má ve skutečnosti 23 liber. Byli jste vedle o 8 liber. To je vaše chyba.
Počítač dělá totéž. Udělá odhad, zkontroluje správnou odpověď, spočítá, jak moc se mýlil. „Řekl jsem, že tahle fotka je pes. Je to kočka. Mýlil jsem se hodně."
Krok 3: Upravte svůj další odhad
Učení se z chyb
Další dýně vypadá podobně jako ta první. Neodhadnete znovu 15 liber. Naučili jste se, že takové dýně jsou těžší, než jste si mysleli. Takže odhadnete 22 liber. Blíž!
Počítač dělá přesně tohle. Upravuje svůj způsob odhadování na základě svých chyb. „Pořád jsem hádal ‚pes', když jsem viděl svěšené uši, ale mýlil jsem se. Věnujme pozornost i dalším rysům."
Krok 4: Opakujte tisíckrát
Cvičení dělá mistra
Kdybyste hádali váhu 1 000 dýní a pokaždé si ji ověřili na váze, časem byste v tom byli docela dobří. Všimli byste si zákonitostí: „Velké kulaté dýně s tlustými stopkami bývají těžké. Vysoké a hubené bývají lehčí."
Počítač to dělá tisíckrát nebo milionkrát. Pokaždé se o kousek zlepší. Nakonec je v tom, co trénuje, opravdu dobrý.
To je celý postup. Udělejte odhad. Zjistěte, jak moc jste se mýlili. Upravte to. Opakujte, dokud nejste dost dobří. Jednoduchá myšlenka. Ale když to milionkrát zopakujete opravdu rychle, dostanete ohromující výsledky.
Proč to funguje tak dobře (a proč to není kouzlo)
Tady je to úžasné: tento neuvěřitelně jednoduchý postup funguje pro neuvěřitelnou škálu úkolů.
Stejná základní myšlenka (cvičení se zpětnou vazbou) umí:
- ✓ Naučit se rozpoznat váš obličej pro odemknutí telefonu
- ✓ Naučit se překládat mezi jazyky
- ✓ Naučit se odhalovat nádory na lékařských snímcích
- ✓ Naučit se předpovědět, jestli zítra zaprší
- ✓ Naučit se doporučovat filmy, které se vám budou pravděpodobně líbit
Proč to funguje pro všechny tyhle různé věci?
Protože to v jádru všechno jsou problémy rozpoznávání vzorů. Váš obličej má vzory. Jazyky mají vzory. Nádory mají vzory. Počasí má vzory. Vaše filmové preference mají vzory.
Počítač tyto vzory nachází tím, že trénuje na příkladech. Nerozumí obličejům, jazykům ani medicíně. Jen zjišťuje: když vidím tento vzor, odpověď je obvykle tamto.
To je silné. Ale není to kouzlo. Je to přiřazování vzorů, trénované v měřítku, kterého lidé nejsou schopni.
Co se počítač vlastně naučí (pravda vás možná překvapí)
Většina lidí to chápe špatně: počítač se neučí porozumění. Učí se zkratky.
Ukážu vám, co tím myslím, na skutečném příběhu.
AI na rakovinu kůže, která podváděla
Vědci natrénovali AI, aby rozpoznávala rakovinu kůže z fotografií. Stala se opravdu dobrou. Lepší než někteří lékaři. Úžasné, že?
Pak si ale všimli něčeho divného. AI se dívala na pravítka. Mnoho fotografií rakoviny obsahovalo pravítko (kvůli měřítku). Mnoho fotografií bez rakoviny ho neobsahovalo.
AI se naučila: "Když vidím pravítko, je to pravděpodobně rakovina." To je technicky vzato vzor, který v trénovacích datech fungoval. Ale není to pochopení rakoviny. Je to zkratka.
Tohle se děje pořád:
Příklady zkreslení a zkratek, které se AI učí
- ⚠️ Náborová AI se naučila, že životopisy se jménem "Jared" mají větší šanci na přijetí (protože trénovací data obsahovala zkreslená lidská rozhodnutí)
- ⚠️ Systém rozpoznávání obličejů fungoval lépe u bělochů (protože právě oni byli v trénovacích fotografiích nadměrně zastoupeni)
- ⚠️ Systém pro schvalování půjček diskriminoval určité čtvrti (protože se učil z historicky zkreslených dat o půjčkách)
Počítač hledá vzory v datech, která mu dáte. Pokud data obsahují zkreslení, naučí se zkreslení. Pokud data obsahují zkratky, naučí se zkratky. Neví to líp. Prostě najde to, co funguje na příkladech, které viděl. Proto strojové učení vyžaduje pečlivou pozornost. Je mocné, ale není moudré.
Dva způsoby tréninku (tradiční vs. jiný)
Pamatuješ, jak jsem říkal, že se počítače učí tím, že upravují své odhady podle chyb? Existují dva hlavní způsoby, jak takovou úpravu provádět.
Tradiční způsob: Drobné úpravy čísel
Jak dnes funguje většina umělé inteligence
Počítač má miliony malých knoflíků (říká se jim váhy). Každý knoflík je nastaven na určité číslo.
Když počítač udělá chybu, zjistí, kterými knoflíky pootočit a kterým směrem. Pootočí jimi jen nepatrně. Pak zkusí další odhad, udělá další chybu, zase pootočí knoflíky. Pořád dokola. Když to udělá milionkrát, jsou všechny knoflíky nastavené na čísla, která produkují dobré odhady.
To dobré
Funguje to opravdu dobře. Dokáže najít neuvěřitelně složité vzorce. Je to ověřené a spolehlivé.
To špatné
Spotřebovává to obrovské množství výpočetního výkonu. Trénování těchto systémů stojí miliony dolarů za elektřinu. A až to skončí, máte miliony nastavení knoflíků, ale nedokážete pořádně vysvětlit, proč jsou nastavené zrovna na ta konkrétní čísla. Je to černá skříňka.
Jiný způsob: Hledání pravidel místo čísel
Jak fungují některé novější systémy
Některé systémy (jako ty, které staví firmy typu Dweve) fungují jinak. Místo ladění milionů číselných knoflíků hledají logická pravidla.
Místo učení „váha 47 by měla být 0,8234" se učí „pokud má e-mail naléhavá slova A pochází od neznámého odesílatele A obsahuje divné odkazy, pak je to pravděpodobně spam."
Je to spíš jako to, jak se učí lidé
V hlavě nemáte čísla. Máte zavedené zvyklosti: „Když chleba kysele páchne, je pravděpodobně špatný. Když je obloha tmavá a těžká, může pršet."
To dobré
Rozhodnutí se dají skutečně vysvětlit. „E-mail byl označen jako spam, protože odpovídal těmto třem vzorům." Je to také mnohem efektivnější. Spotřebuje mnohem méně energie.
To špatné
Ne každý problém se s pravidly řeší dobře. Některé věci skutečně potřebují ty miliony drobných úprav čísel.
Ani jeden způsob není vždy lepší. Jsou to nástroje. Použijete ten správný pro danou práci.
Jak proces učení skutečně vypadá
Kde to skutečně funguje ve vašem životě
Ukážu vám, kde už strojové učení používáte každý den, pravděpodobně bez toho, abyste si to uvědomovali.
⏰ Vaše ranní budík
Budík ve vašem telefonu má pravděpodobně funkci, která postupně zvyšuje hlasitost. To je jednoduché. Ale některé telefony se také učí, kdy máte tendenci se přirozeně probouzet, a navrhují lepší časy buzení. Strojové učení si všimlo: „Vždy odložíte budík na 6:00, ale přirozeně se probudíte v 6:30. Navrhuji místo toho 6:30."
🚗 Vaše cesta do práce
Mapové aplikace předpovídají dopravu. Jak? Naučily se z milionů jízd: „V úterý ráno bývá tato dálnice ucpaná kolem 7:45. Když prší, tato trasa se zpomalí o 15 minut." Vzorce nalezené v datech.
📧 Váš e-mail
Každý spam, který se nedostane do vaší schránky? Strojové učení. Každý e-mail automaticky roztříděný do složek? Strojové učení. Vaše e-mailová aplikace se z milionů příkladů naučila, jak vypadá spam a co je důležité konkrétně pro vás.
🎬 Vaše zábava
Netflix navrhuje seriály. Spotify vytváří playlisty pro vás. YouTube doporučuje videa. To vše je strojové učení. Naučilo se: „Lidé, kteří sledovali tyto tři seriály, mají obvykle rádi i tento čtvrtý. Lidé, kteří poslouchají tohoto interpreta, mají obvykle rádi i tyto další interprety."
🛒 Vaše nakupování
„Zákazníci, kteří koupili toto, koupili také..." Strojové učení. „Mohlo by se vám také líbit..." Strojové učení. Dokonce i ceny, které vidíte, mohou být upraveny strojovým učením na základě vzorců poptávky.
🔒 Vaše bezpečnost
Vaše banka blokuje podezřelou transakci? Strojové učení si všimlo vzorce: „Tato platba neodpovídá běžnému chování této osoby při utrácení. Mohlo by jít o podvod."
Všechny tyto systémy se učily z příkladů. Nacházely vzorce. S praxí se zlepšovaly. To je strojové učení, které se vašeho života dotýká desítkykrát denně.
Poctivé limity (Co to neumí)
Strojové učení je mocné, ale není to kouzlo. Budu k vám úplně upřímný, co neumí.
Neumí se učit bez příkladů
Potřebujete data. Hodně dat. Chcete naučit počítač rozpoznávat vzácné onemocnění? Potřebujete tisíce příkladů tohoto onemocnění. Nemáte je? Systém nemůžete natrénovat. Je to tak jednoduché.
Neumí chápat kontext jako lidé
Člověk vidí značku „STOP“ zasypanou sněhem a ví, že je to pořád značka STOP. Počítač ji možná nepozná, protože všechny jeho tréninkové příklady ukazovaly čisté, viditelné značky STOP. Naučil se vzorec pro dokonalé značky STOP, ne koncept „stop“.
Neumí vysvětlit své uvažování (obvykle)
Zeptejte se lékaře, proč si myslí, že máte chřipku: „Máte horečku, bolesti těla a je chřipková sezóna.“ Jasné uvažování.
Zeptejte se většiny systémů umělé inteligence, proč rozhodly tak, jak rozhodly: „Protože těchto 47 milionů čísel je nastaveno na tyto konkrétní hodnoty.“ To vám nepomůže.
Naučí se vaše předsudky
Pokud ho natrénujete na zaujatých datech, naučí se zaujatost. Pokud historická data o přijímání zaměstnanců vykazují zaujatost vůči určitým skupinám, umělá inteligence se naučí být také zaujatá. Neví to lépe. Jen se naučí to, co je v datech.
Neumí se přizpůsobit zcela novým situacím
Lidé jsou v tom skvělí. Nikdy jste neviděli fialovou žirafu, ale kdybyste ji viděli, poznali byste, že je to žirafa, která je náhodou fialová.
Počítač natrénovaný na běžných žirafách by mohl být fialovou žirafou naprosto zmatený. V tréninkových datech nebyla. Systém neumí takto zobecňovat.
Nejde o drobnosti. Jsou zásadní pro to, jak strojové učení funguje. Pochopení těchto omezení je stejně důležité jako pochopení možností.
Co si zapamatovat
Pokud se vám to zdá jako hodně, tady je to, na čem skutečně záleží:
- 1 Strojové učení je praxe se zpětnou vazbou. Počítač hádá, ověřuje, jestli měl pravdu, upravuje své postupy a opakuje to dokola. Stejně jako se cokoli učíte praxí.
- 2 Existují tři hlavní typy. Učení s učitelem (s klíčem správných odpovědí), učení bez učitele (hledání vzorců na vlastní pěst) a posilované učení (učení se pokusem a omylem). Každý typ se hodí na jiné problémy.
- 3 Nachází vzorce, ne porozumění. Počítač to nechápe. Jen si všímá: když vidím tento vzorec, odpověď je obvykle tahle. Je to mocné, ale není to totéž jako lidské porozumění.
- 4 Používáte ho neustále. Váš e-mail, vaše mapy, vaše zábava, vaše nakupování. Strojové učení se vašeho života dotýká desítkykrát denně.
- 5 Má skutečné limity. Potřebuje hodně dat. Přebírá předsudky. Sám se těžko vysvětluje. Nezobecňuje jako lidé. Pochopení limitů je stejně důležité jako pochopení možností.
- 6 Existují různé přístupy. Většina umělé inteligence upravuje miliony číselných hodnot. Některé systémy se místo toho učí logická pravidla. Různé nástroje pro různé úkoly.
Závěr
Strojové učení není žádná záhada. Je to jen počítač, který se díky procvičování v něčem zlepšuje.
Ukaž mu příklady. Nech ho hádat. Řekni mu, když se splete. Sleduj, jak se upravuje a zlepšuje. Opakuj tisíckrát. Nakonec je v daném úkolu opravdu dobré.
Neučí se tak, jako ses ty naučil jezdit na kole, číst nebo navazovat přátelství. Nerozvíjí si porozumění, moudrost ani selský rozum.
Hledá statistické vzorce v datech pomocí opakovaného procvičování a úprav. To je všechno. Ale když se to dělá v měřítku, které lidé nezvládnou, s miliony příkladů, přináší to skutečně užitečné výsledky.
Tvůj filtr spamu funguje. Tvůj hlasový asistent ti rozumí. Tvoje mapy tě vedou kolem dopravy. To všechno proto, že počítače procvičovaly miliony příkladů, dokud nenašly vzorce, které fungují.
Slovo „učení" to nechává znít kouzelně. Skutečnost je matematická. Ale ta matematika, procvičovaná ve velkém, mění každý den tvůj život.
Teď víš, jak to funguje. Záhada je pryč. Strojové učení je objevování vzorců procvičováním. Jednoduchý koncept. Silné provedení. A používáš ho právě teď, když čteš tato slova na zařízení plném systémů, které se naučily usnadňovat ti život.
Některé společnosti, jako je Dweve, zkoumají jiné způsoby „praxe" než jen pouhé nastavování číselných hodnot. Učení se logických pravidel místo číselných vah. Hledání omezení místo trénovacích parametrů. Různé přístupy pro různé problémy. Protože strojové učení nemusí být univerzální řešení pro všechno.