Jak začít se strojovým učením?

Pokusy navrhnout stroje chytřejší než lidé nejsou nové.

Jedním z velmi raných útoků, které počítačová věda provedla na lidskou „inteligenci“, byla hra šachů. Šachy jsou (nebo bychom měli říci, byly?) mnohými považovány za konečný test lidského intelektu a kreativity a v 60. a 70. letech minulého století existovaly v počítačové vědě různé myšlenkové směry.

Někteří se domnívali, že je jen otázkou času, kdy počítače předběhnou lidi v hraní šachů, zatímco jiní věřili, že se to nikdy nestane.

Kasparov vs. Deep Blue

Nejsenzačnější událostí, v níž se v myšlenkové bitvě objevil muž proti stroji, byl v roce 1996 šachový zápas mezi tehdejším mistrem světa Garrym Kasparovem (a pravděpodobně nejlepším šachistou všech dob) a Tmavě modrásuperpočítač, který IBM navrhla právě pro tuto událost.

Obrazový kredit: Wikipedie

Abych to zkrátil, Kasparov vyhrál zápas v roce 1996 přesvědčivě (4-2), ale prohrál odvetu v roce 1997 (4,5-3,5) uprostřed mnoha kontroverze a Kasparovova přímá obvinění z podvádění proti IBM.

Bez ohledu na to skončila éra šachů a informatiky. Počítače měly nárok na chytřejší než kterýkoli živý člověk. IBM, spokojená s pomstou, rozebrala Deep Blue a pokračovala.

Dnes je nemožné, aby žádný velmistr porazil jakýkoli běžný šachový engine běžící na komoditním hardwaru.

Co není strojové učení?

Než se na strojové učení podíváme hlouběji, vynechme z cesty několik mylných představ. Strojové učení není v žádném případě pokusem o replikaci lidského mozku. Navzdory senzacechtivým názorům, které zastávají lidé jako Elon Musk, výzkumníci počítačových věd tvrdí, že toto posvátné zrno nehledají a už vůbec ne nikde blízko.

Jednoduše řečeno, strojové učení je praxe aplikace procesů učení podle příkladu na počítače. To kontrastuje s tradičním přístupem spoléhat se na lidského programátora, který pro ně vymyslí všechny možné scénáře a pevně zakóduje pravidla do systému.

Upřímně řečeno, o tom je strojové učení: předávání tuny a tuny a tuny dat počítači, aby se mohl učit z příkladů (pokus → omyl → srovnání → zlepšení), než se spoléhat na zdrojový kód.

  Jak hrát God of War na Linuxu

Aplikace strojového učení

Pokud tedy strojové učení není černou magií a ani nic nezpůsobuje Terminátory, k čemu je užitečné?

Strojové učení pomáhá v případech, kdy tradiční programování upadá, a tyto případy obecně spadají do jedné ze dvou kategorií.

Jak název napovídá, klasifikace se týká správného označování věcí, zatímco Predikce si klade za cíl opravit budoucí projekce s ohledem na dostatečně velký soubor dat minulých hodnot.

Některé zajímavé aplikace strojového učení jsou:

Filtrování spamu

E-mailový spam je všudypřítomný, ale pokusit se jej zastavit může být noční můrou. Jak je spam definován? Je to přítomnost konkrétních klíčových slov? Nebo možná tak, jak se to píše? Je těžké vymyslet vyčerpávající soubor pravidel, programově.

To je důvod, proč používáme strojové učení. Ukážeme systému miliony spamových a nespamových zpráv a necháme ho, aby vyřešil zbytek. To bylo tajemství vynikajících filtrů nevyžádané pošty Gmailu, které otřásly osobními e-maily na počátku 21. století!

Doporučení

Všechny velké e-commerce společnosti dnes mají výkonné systémy doporučení. Občas je jejich schopnost doporučovat věci, které bychom „mohli“ považovat za užitečné, neuvěřitelně přesná, přestože jsme na tuto položku nikdy předtím neklikli.

Náhoda? Vůbec ne!

Strojové učení zde tvrdě pracuje, hltá terabajty po terabajtech dat a snaží se předvídat naše nestálé nálady a preference.

Chatboti

Setkali jste se s prvotřídní zákaznickou podporou, která vypadala zvláštně roboticky, a přesto dokázala vést zajímavé řeči?

No, pak vás zasáhlo strojové učení!

Učit se z konverzací a určovat, co říci, kdy je nadcházející a vzrušující oblastí aplikace chatbota.

Odstraňování plevele

V zemědělství se roboti pohánění strojovým učením používají k selektivnímu postřiku plevelů a jiných nežádoucích rostlin mezi plodinami.

To by se jinak muselo provádět ručně nebo by to bylo velmi nehospodárné, protože systém by produkt postříkal také zabijáckou kapalinou!

Hlasová interakce s počítačovými systémy již není sci-fi. Dnes máme digitální asistenty, jako je Alexa, Siri a Google Home, kteří dokážou přijímat příkazy verbálně a nezmatkují (no, skoro!).

Někdo by mohl namítnout, že je to vynález, kterému je lepší se vyhnout, protože díky němu je lidská rasa línější než kdy jindy, ale o účinnosti nelze polemizovat.

  Vytvářejte, sdílejte a spolupracujte na rychlých poznámkách a seznamech úkolů

Lékařská diagnóza

Jsme na pokraji revoluce v lékařské diagnostice, protože systémy založené na strojovém učení začínají překonávat zkušené lékaře v diagnóza pomocí rentgenu atd.

Vezměte prosím na vědomí, že to neznamená, že lékaři nebudou brzy potřeba, ale že kvalita lékařské péče dramaticky stoupne a náklady se propadnou (pokud obchodní kartely nenařídí jinak!).

Toto byl jen příklad toho, k čemu se strojové učení používá. Samořídící auta, roboti na strategické hry, stroje na skládání triček, lámání captcha a vybarvování černobílých fotek se v dnešní době děje.

Typy strojového učení

Techniky strojového učení jsou dvojího druhu.

Supervised Learning, ve kterém je systém řízen lidským úsudkem, a Unsupervised Learning, ve kterém je systém ponechán, aby se učil sám. Jiný způsob, jak říci totéž, by bylo, že v Supervised Learning máme datovou sadu obsahující jak vstupy, tak očekávaný výstup, které systém používá k porovnání a sebeopravování. V Unsupervised Learning však neexistuje žádný existující výstup, který by bylo možné měřit, takže výsledky se mohou velmi lišit.

Vzrušující a mrazivá aplikace nekontrolovaného strojového učení?

To by byli boti hrající deskové hry, kde se program učí herní pravidla a výherní podmínky a pak je ponechán svému vlastnímu zařízení. Program pak hraje miliony her sám proti sobě, učí se ze svých chyb a posiluje výhodná rozhodnutí.

Jste-li na dostatečně výkonném počítači, světově proslulá hrací umělá inteligence může být připravena během několika hodin!

Následující obrázky tyto myšlenky stručně ilustrují (zdroj: Medium):

Zdroje pro začátek ve strojovém učení

Takže, když už jste všichni nadšeni z Machine Learning a jak vám může pomoci dobýt svět, kde začít?

Níže jsem uvedl několik fantastických zdrojů na webu, které vám mohou pomoci dosáhnout plynulosti strojového učení bez získání titulu Ph.D. v informatice! Pokud nejste odborníkem na strojové učení, shledáte doménu strojového učení stejně praktickou a zábavnou jako programování obecně.

Takže se nebojte, bez ohledu na vaši aktuální úroveň se můžete, stejně jako dobrý program strojového učení, učit a zlepšovat se. 😛

#1. Programování

Prvním požadavkem pro vstup do strojového učení je naučit se programovat. Je to proto, že systémy strojového učení přicházejí ve formě knihoven pro různé programovací jazyky.

  Jak přidat hodiny na dotykový panel na MacBooku Pro

Python je nejvíce doporučovaný, částečně proto, že je neuvěřitelně příjemné se učit, a částečně proto, že má obrovský ekosystém knihoven a zdrojů.

The oficiální Průvodce pro začátečníky je skvělým místem, kde začít, i když Python trochu znáte. Nebo si vezmi tohle Kurz Bootcamp stát se hrdinou od nuly.

#2. Myslete na statistiky

Jakmile skončíte se základy Pythonu, moje druhé doporučení by bylo projít si dvě vynikající knihy. Jsou 100% zdarma a jsou k dispozici ke stažení ve formátu PDF. Myslete na statistiky a Mysli na Bayese jsou dvě moderní klasiky, které by si měl osvojit každý začínající inženýr strojového učení.

#3. Udemy

V tuto chvíli bych vám doporučil absolvovat několik kurzů Udemy. Interaktivní formát s vlastním tempem vám pomůže dostat se do hlouposti a vybudovat si sebevědomí.

Než začnete, nezapomeňte si prohlédnout náhled kurzu, recenze (zejména ty negativní!) a celkový dojem z kurzu.

Na úžasné návody můžete narazit i na YouTube zdarma. Senddex je jedním z takových kanálů, které mohu doporučit, kde se vždy odehrává spousta zábavy, ale jeho přístup není přátelský pro začátečníky.

#4. Andrew Ng

Kurz vede Andrew Ng na Coursera je pravděpodobně nejoblíbenějším učebním zdrojem pro základy strojového učení.

Ačkoli používá programovací jazyk R, zůstává bezkonkurenční ve svém zacházení s předmětem a jeho jasných vysvětlení. Díky tomuto kurzu dosáhl Andrew Ng v kruzích ML poněkud božského postavení a lidé k němu vzhlíží pro maximální moudrost (nedělám si legraci!).

Toto není kurz pro začátečníky, ale pokud jste již dobří v datových sporech a nevadí vám nějaký vedlejší průzkum, je tento kurz tím nejlepším doporučením.

#5. Udacity

Staňte se inženýrem strojového učení pomocí tohoto nanostupně Udacity.

Dokončení a ukončení kurzu bude trvat přibližně 3 měsíce, očekává se, že budete mít dobrou představu o algoritmech strojového učení, jak je modelovat a nasadit do výroby.

Závěr

Zdroje na internetu nemají konce a na začátku se můžete snadno ztratit. Většina výukových programů a diskusí je matematicky náročná nebo postrádá strukturu a může narušit vaši důvěru ještě předtím, než začnete.

Rád bych vás tedy varoval před sebezničením: zaměřte se skromně a pohybujte se v minimálních krocích. Strojové učení není něco, s čím byste se mohli sžít během jednoho nebo dvou dnů, ale brzy se začnete bavit a kdo ví, možná dokonce vytvoříte něco děsivého!

Bavte se! 🙂