# 2: Co potřebujete vědět o algoritmech strojového učení a proč byste se měli starat

Toto je část 2 šestdílného tutoriálu, Průvodce krok za krokem k tvorbě produktů založených na strojovém učení.

Již dříve jsme diskutovali o tom, jaký dopad může mít ML na podnikání. Nyní si přečtěte všechny technické termíny, které potřebujete vědět, abyste mohli efektivně pracovat s týmem pro vědu o údajích, a pomozte jim vytvářet největší dopad na vaši firmu (nebo alespoň znít jako byste věděli, o čem to mluví).

Algoritmy, modely a data

Na koncepční úrovni stavíme stroj, který při určité sadě vstupů vytvoří určitý požadovaný výstup tím, že najde vzory v datech a z nich se poučí.

Velmi častým případem je, že stroj začíná spuštěním dané sady vstupů a sady výstupů, které těmto vstupům odpovídají. Identifikuje vzorce mezi nimi a vytváří sadu složitých pravidel, která pak může aplikovat na nové vstupy, které dříve neviděl, a vytváří požadovaný výstup. Například vzhledem k čtvercovému záběru, adrese a počtu místností (vstup) se chystáme předpovídat prodejní cenu domu (výstup). Řekněme, že máme údaje o čtvercovém záběru, adrese a počtu pokojů 10 000 domů, jakož i jejich prodejní cenu. Stroj bude „trénovat“ sám na data - tj. Identifikovat vzorce, které určují, jak čtvercová záběry, adresa a počet místností ovlivňují cenu domu, takže pokud jim dáme ty 3 vstupy do domu, který předtím neviděl, bude to může předpovídat cenu domu.

Úlohou vědce v oblasti dat je najít optimální stroj, který se má použít s ohledem na vstupy a očekávaný výstup. Má několik šablon - tzv. Algoritmů - pro stroje. Stroje, které z těchto šablon vyrábí pro řešení konkrétního problému, se nazývají modely. Šablony mají různé možnosti a nastavení, které může vyladit a vytvářet různé modely ze stejné šablony. Může použít různé šablony a / nebo vyladit nastavení pro stejnou šablonu, aby vygenerovala mnoho modelů, které může otestovat, aby zjistila, který dává nejlepší výsledky.

Všimněte si, že výstup modelu je správný / užitečný pro rozhodování s určitou mírou pravděpodobnosti. Modely nejsou 100% správné, ale jsou spíše „nejlepší odhady“ vzhledem k množství dat, které model viděl. Čím více dat model viděl, tím je pravděpodobnější poskytnout užitečný výstup.

Sada známých vstupů a výstupů, které vědec používá k „trénování“ stroje - tj. Nechat model identifikovat vzory v datech a vytvářet pravidla - je „tréninkovou sadou“. Tato data se používají k vytvoření jedné nebo více „šablon“ k vytvoření jednoho nebo více modelů, o nichž si vědci myslí, že by mohli problém vyřešit. Pamatujte, že i když použila pouze jednu „šablonu“ (algoritmus), může vyladit některé možnosti pro generování více modelů ze stejné šablony s různým nastavením, takže pravděpodobně skončí s několika modely.

Poté, co má několik z těchto „vyškolených“ modelů, musí zkontrolovat, jak dobře fungují a který z nich funguje nejlépe. Dělá to pomocí nové sady dat nazvané „validační sada“. Spustí modely na vstupech ověřovací sady, aby zjistila, který z nich dává výsledky nejblíže výstupům ověřovací sady. V našem příkladu - který model předpovídá cenu domů, která je nejblíže skutečné ceně, za kterou byl dům prodán. V této fázi potřebuje novou sadu dat, protože modely byly vytvořeny na základě jejich výkonu se sadou školení, takže jsou zkreslené, aby na této sadě dobře fungovaly a nedaly pravdivé čtení.

Jakmile ověřila, který model má nejlepší výkon a vybrala vítěze, musí náš datový vědec určit skutečný výkon tohoto modelu, tj. Jak dobrý nejlepší model, který by mohla vyrobit, je při řešení problému. Znovu potřebuje novou sadu dat, protože model jasně funguje dobře v tréninkových a validačních sadách - tak byl vybrán! Konečná sada dat se nazývá „testovací sada“. V našem příkladu zkontroluje, jak blízko jsou předpovídané ceny domů pro vstupy do testovací sady skutečným cenám testovací sady. Podrobněji se budeme zabývat měřením výkonu.

Typy „učení“

Typ algoritmu, který můžete použít k vyřešení problému strojového učení, do značné míry závisí na datech, která máte. Klíčová klasifikace algoritmů učení je založena na datech potřebných k sestavení modelů, které je používají: Zda data musí zahrnovat jak vstupy, tak výstupy, nebo jen vstupy, kolik datových bodů je třeba a kdy jsou data shromažďována. Zahrnuje 4 hlavní kategorie: Dozorované učení, učení bez dozoru, učení částečně kontrolované a posílení učení.

Dozorované učení

Případ, který jsme podrobně rozebrali v předchozí části, popisuje, co nazýváme „supervidované učení“. Toto je typ učení, kde algoritmus potřebuje vidět mnoho příkladů označených dat - data, která se skládají ze vstupů a odpovídajících výstupů, aby mohla fungovat. „Označená“ část označuje značení vstupů s výsledkem, který se model snaží předpovídat, v našem příkladu cen domů.

Dohledané algoritmy učení vidí označená data (také známá jako „základní pravda“), poučí se z nich a na základě těchto příkladů předpovídají. Vyžadují spoustu označených dat předem: Zatímco počet závisí na případu použití, stovky datových bodů jsou holým minimem, aby bylo možné se dostat ke všemu, co je vzdáleně užitečné.

Dva klasické problémy řešené prostřednictvím supervidovaného učení jsou:

  • Regrese. Odvození hodnoty neznámé proměnné založené na jiných údajích, které stojí za rozum, by mělo na tuto proměnnou vliv. Dvě běžná použití jsou předpovědi typu point in time - např. Náš předchozí příklad předpovídání hodnoty domu na základě proměnných, jako je umístění a stopáž, a předpovídání budoucích hodnot - např. Předpovídání domácích hodnot za rok od nynějška na základě historické a současné hodnoty domů data. Regrese je statistická metoda, která určuje vztah mezi nezávislými proměnnými (data, která již máte) a závislou proměnnou, jejíž hodnotu chcete předpovídat.
  • Klasifikace. Identifikace kategorie, do které patří entita z dané sady kategorií. Může to být binární klasifikace - např. Určení, zda příspěvek bude virový (ano / ne), a kategorizace podle více štítků - např. Označení fotografií produktu s příslušnou kategorií, do které produkt patří (z možná stovek kategorií).

Bez dozoru

Při učení bez dozoru se algoritmus snaží identifikovat vzorce v datech, aniž by bylo nutné označit sadu dat požadovaným výsledkem. Data jsou „neznačená“ - pouze „jsou“, aniž by k nim bylo připojeno žádné smysluplné označení. Několik klasických problémů vyřešených metodami učení bez dozoru jsou:

  • Shlukování. S ohledem na určitá kritéria podobnosti zjistěte, které položky jsou si více podobné. Jednou z oblastí, kde se používá klastrování, je text - zvažte výsledky vyhledávání, které vracejí mnoho dokumentů, které jsou velmi podobné. Clustering lze použít k jejich seskupení a usnadnit uživateli identifikaci nejvýraznějších dokumentů.
  • Sdružení. Zařazení objektů do kbelíků na základě určitého vztahu, takže přítomnost jednoho objektu v kbelíku předpovídá přítomnost jiného. Například problém doporučení „lidé, kteří koupili… také koupili…“: Pokud analýza velkého počtu nákupních vozíků odhalí, že přítomnost produktu X v nákupním košíku pravděpodobně naznačuje, že produkt Y bude také v nákupním košíku, můžete okamžitě doporučit produkt Y každému, kdo vložil produkt X do košíku.
  • Detekce anomálií. Identifikace neočekávaných vzorců v datech, které je třeba označit a zpracovat. Standardní aplikace jsou odhalování podvodů a sledování zdravotního stavu složitých systémů. (Poznámka: Existují techniky detekce anomálií pod dohledem, ale použití technik bez dozoru je běžné, protože podle definice je docela obtížné získat označená data pro anomálie a to je předpoklad pro použití technik pod dohledem.)

Učení částečně kontrolované

Jedná se o kříženec mezi supervidovaným a nedohlednutým učením, kde algoritmus vyžaduje některá tréninková data, ale mnohem méně než v případě supervidovaného učení (možná o řád menší). Algoritmy mohou být rozšířením metod používaných při učení pod dohledem i bez dozoru - klasifikace, regrese, shlukování, detekce anomálií atd.

Posílení učení

Zde algoritmus začíná omezenou sadou dat a učí se, protože získává více zpětné vazby o svých předpovědích v průběhu času.

Jak vidíte, kromě typu problému, který se pokoušíte vyřešit, bude mít také množství dat vliv na typy výukových metod, které můžete použít. To platí i opačně - metoda učení, kterou musíte použít, může vyžadovat, abyste získali více dat, než máte, abyste mohli problém efektivně vyřešit. Budeme o tom diskutovat později.

Další běžné „Buzzwords“, které stojí za to vědět

Při práci ve vesmíru se často setkáte s několika dalšími termíny. Je důležité pochopit jejich vztah (nebo jeho nedostatek) k kategoriím, o nichž jsme diskutovali.

Hluboké učení je ortogonální k výše uvedeným definicím. Jde pouze o aplikaci specifického typu systému k řešení problémů s učením - řešení může být pod dohledem, bez dozoru atd.

Umělá neuronová síť (ANN) je vzdělávací systém, který se snaží simulovat fungování našeho mozku - prostřednictvím sítě „neuronů“, které jsou uspořádány do vrstev. Neuronová síť má minimálně vstupní vrstvu - soubor neuronů, skrz které jsou přijímána data do sítě, výstupní vrstvu - neurony, skrze které jsou výsledky sdělovány, a jednu nebo více vrstev mezi nimi, nazývaných „skryté vrstvy“ , což jsou vrstvy, které provádějí výpočetní práci. Hluboké učení je jednoduše použití neuronových sítí s více než jednou skrytou vrstvou pro splnění úkolu učení. Pokud jste někdy takové sítě používali - gratuluji, můžete legitimně házet i bzučák!

Metody souboru nebo souborové učení je použití více modelů k dosažení výsledku, který je lepší než to, čeho by každý model mohl dosáhnout individuálně. Modely by mohly být založeny na různých algoritmech nebo na stejném algoritmu s různými parametry. Myšlenka je taková, že místo toho, aby měl jeden model, který přijímá vstup a generuje výstup - řekněme nějaký druh predikce, máte sadu modelů, z nichž každý generuje predikci, a nějaký proces, který váží různé výsledky a rozhoduje, jaký výstup má kombinovaná skupina by měla být. Metody souboru se často používají v supervidovaném učení (jsou velmi užitečné při předpovídacích problémech), ale lze je také použít v učení bez dozoru. Váš tým pro vědu o údajích takové metody pravděpodobně otestuje a v případě potřeby je použije.

Zpracování přirozeného jazyka (NLP) je oblast informatiky, která se zabývá porozuměním jazyku pomocí strojů. Ne všechny typy NLP používají strojové učení. Pokud například vygenerujeme „cloud cloud“ - vizuální reprezentaci počtu zobrazení slova v textu - nedojde k učení. Sofistikovanější analýza a porozumění jazyku a textu často vyžaduje ML. Nějaké příklady:

  • Generování klíčových slov. Porozumění tématu textu a automatické vytváření klíčových slov
  • Jazyková disambiguace. Stanovení relevantního významu z více možných interpretací slova nebo věty (to je skvělé vysvětlení s příklady)
  • Analýza sentimentu. Pochopení, kde na stupnici od negativního po pozitivní leží sentiment vyjádřený v textu
  • Vyjmutí pojmenované entity. Identifikace společností, lidí, míst, značek atd. V textu; to je zvláště obtížné, pokud jména nejsou rozlišovací (např. společnost „Microsoft“ je snáze identifikovatelná než společnost „Target“, což je také slovo v anglickém jazyce)

NLP se nepoužívá pouze pro jazykově orientované aplikace ML, jako jsou chatboty. Rovněž se hojně používá k přípravě a předběžnému zpracování dat, než může být užitečným vstupem do mnoha ML modelů. Více o tom později.

Upozornění: Výše ​​uvedené definice mají za cíl zprostředkovat hlavní myšlenky a být praktické; podrobnou vědeckou definici najdete v jiných zdrojích.

Jak problém ovlivňuje řešení (a některé další klíčové koncepty ML)

Strategický cíl, kterého se snažíte dosáhnout pomocí ML, bude diktovat mnoho následných rozhodnutí. Je důležité porozumět některým základním konceptům ML a jejich dopadu na vaše obchodní cíle, abyste se ujistili, že váš tým pro vědu o údajích dokáže vytvořit správné řešení pro vaše podnikání.

Výběr algoritmů

Malá změna v definici problému by mohla znamenat, že k jeho vyřešení je vyžadován zcela jiný algoritmus, nebo bude minimálně postaven jiný model s různými datovými vstupy. Seznamovací server, který hledá typy fotografií, které dobře fungují pro uživatele, může použít neohledávané techniky učení, jako je shlukování, k identifikaci společných témat, která fungují, zatímco pokud je problémem doporučit potenciálnímu datu konkrétní osobě, může web použít učení pod dohledem na základě vstupů. specifické pro jednotlivého uživatele, jako jsou fotografie, na které se již podívali.

Výběr funkce

ML modely identifikují vzorce v datech. Data, která vkládáte do modelů, jsou uspořádána do funkcí (nazývaných také proměnné nebo atributy): Jedná se o relevantní, do značné míry nezávislé údaje, které popisují některé aspekty jevu, který se pokoušíte předvídat nebo identifikovat.

Vezměte si předchozí příklad společnosti, která se snaží upřednostnit kontakt s uchazeči o úvěr. Pokud definujeme problém jako „upřednostnění zákazníků na základě jejich pravděpodobnosti převodu“, zahrneme funkce, jako je míra odezvy podobných zákazníků na různé typy dosahu společnosti. Pokud definujeme problém jako „upřednostnit zákazníky, kteří budou s největší pravděpodobností splácet své půjčky“, nemůžeme tyto funkce zahrnout, protože nejsou relevantní pro vyhodnocení pravděpodobnosti, že zákazník zaplatí.

Výběr objektivních funkcí

Objektivní funkce je cíl, který optimalizujete, nebo výsledek, který se model snaží předpovědět. Pokud se například pokoušíte navrhnout produkty, o které by se mohl uživatel zajímat, může být výstupem modelu pravděpodobnost, že uživatel na produkt klikne, pokud jej uvidí. Může to být také pravděpodobnost, že uživatel produkt zakoupí. Volba objektivní funkce závisí primárně na vašem obchodním cíli - v tomto příkladu se více zajímáte o zapojení uživatele, v tomto případě může být vaším cílem funkce kliknutí nebo doba setrvání, nebo o přímé příjmy, v tomto případě bude vaše objektivní funkce nákupy? Dalším klíčovým hlediskem je dostupnost dat: Aby se algoritmus naučil, musíte mu dát mnoho datových bodů, které jsou „označeny“ jako kladné (produkty, které uživatel viděl a kliknul), nebo negativní (produkty, které uživatel viděl a neklikl na). Pravděpodobně budete mít řádově více datových bodů produktů, na které jste klikli (nebo neklikli) na produkty, které byly zakoupeny.

Vysvětlitelnost a interpretovatelnost

Výstupem ML modelů je často číslo - pravděpodobnost, predikce pravděpodobnosti, že se něco stane nebo je pravda. V příkladu doporučení produktu lze produktům na webu přiřadit pravděpodobnost, že na ně jednotlivý uživatel klikne, a uživateli se zobrazí produkty s nejvyšší pravděpodobností. Ale jak víš, že to funguje? V tomto případě je poměrně snadné ověřit, zda algoritmus funguje - pravděpodobně můžete spustit krátký test a vidět. Ale co když jsou hodnocené subjekty potenciálními zaměstnanci a váš model testuje pravděpodobnost, že budou dobrými kandidáty na společnost? Vezme si uživatel (řekněme najímajícího manažera) jen slovo za to, nebo bude muset pochopit, proč algoritmus zařadil osobu A před osobu B?

V mnoha případech budete muset udělat nějaké vysvětlení. Mnoho algoritmů ML je však černou skříňkou: Zadáte mnoho funkcí a získáte model, který je obtížné vysvětlit. Vzory, které stroj v datech najde, jsou často natolik spletité, že je člověk nedokáže pochopit, i když je lze snadno vyjádřit slovy.

V následujících oddílech uvidíme, že potřeba vysvětlitelnosti - do jaké míry musí být konečný uživatel schopen pochopit, jak byl výsledek dosažen, a interpretovatelnost - do jaké míry musí uživatel na základě výsledků vyvodit určité závěry, je kritický ohled na váš přístup k modelování, výběru funkcí a prezentaci výsledků.

Modelování a měření výkonu Úskalí PM by si měli dát pozor

Vaši vědci se budou zabývat některými běžnými problémy se zpracováním a modelováním dat, ale aby s nimi mohli vést produktivní rozhovory, je pro PM užitečné pochopit několik běžných úskalí. Nejedná se o vyčerpávající seznam, ale obsahuje některé z častějších problémů, které se objevují.

Overfitting

Model se říká, že je „přeplněný“, když sleduje data tak těsně, že nakonec popisuje příliš mnoho šumu než skutečný základní vztah v datech (viz obrázek). Obecně lze říci, že pokud je přesnost modelu na datech, se kterými ho trénujete (data, ze kterých se model „učí“), výrazně lepší než přesnost údajů, se kterými ověřujete a testujete, může se jednat o přeplnění .

Přiléhající ilustrace

Přesnost, odvolání a kompromis mezi nimi

Existují dva termíny, které jsou velmi matoucí, když je poprvé slyšíte, ale je důležité je plně pochopit, protože mají jasné obchodní důsledky.

Přesnost klasifikace (a dalších běžně používaných ML technik, jako je vyhledávání dokumentů), je často měřena dvěma klíčovými metrikami: Přesnost a stažení. Přesnost měří podíl skutečných pozitivních předpovědí ze všech pozitivních předpovědí generovaných algoritmem, tj.% Pozitivních předpovědí, které jsou správné. Pokud je přesnost X%, X% pozitivních předpovědí algoritmu jsou pravdivé pozitivy a (100-X)% jsou falešné pozitivy. Jinými slovy, čím vyšší přesnost, tím méně falešných pozitivů budete mít.

Vyvolání je podíl pozitivních předpovědí ze všech skutečných pozitiv v datech - tj. Jaké% skutečných pozitiv v datech, které váš algoritmus dokázal identifikovat jako pozitiva. Pokud je odvolání X%, algoritmus identifikoval X% skutečných pozitiv v datech jako pozitivní, zatímco (100-X)% byl identifikován jako (falešné) negativy. Jinými slovy, čím vyšší je vyvolání, tím méně falešných negativů budete mít.

Vždy existuje kompromis mezi přesností a odvoláním. Pokud nechcete žádné falešné pozitivy - tj. Potřebujete vyšší přesnost, bude mít algoritmus více falešných negativů, tj. Nižší vyvolání, protože by „raději“ označilo něco negativního než nesprávně označilo jako pozitivní a naopak. Tento kompromis je obchodní rozhodnutí. Vezměte si příklad žádosti o půjčku: Chtěli byste raději hrát bezpečně a přijímat pouze uchazeče, o kterých si určitě zasloužíte přijetí, čímž se zvyšuje šance na odmítnutí některých dobrých zákazníků (vyšší přesnost, nižší odvolání = méně falešně pozitivních, více falešných negativů) , nebo přijmout více žadatelů o úvěr, kteří by měli být odmítnuti, ale neměli by riskovat, že budou chybět dobrým zákazníkům (vyšší vzpomínka, ale nižší přesnost = méně falešných negativů, více falešných pozitiv)? I když můžete zjednodušeně říci, že se jedná o problém s optimalizací, je často třeba zvážit faktory, které nelze snadno kvantifikovat, jako je sentiment zákazníků (např. Nespravedlivě odmítnutí zákazníci budou naštvaní a vokální), riziko značky (např. Vaše reputace upisovatele závisí na nízká míra selhání úvěru), zákonné povinnosti atd., což z velké části činí podnikání, nikoli datovou vědu, rozhodnutí.

Často zavádějící metrika přesnosti modelu

Samotná přesnost modelu není dobrým měřítkem pro žádný model. Představte si nemoc s incidencí 0,1% v populaci. Model, který říká, že žádný pacient nemá nemoc bez ohledu na vstup, je 99,9% přesný, ale zcela zbytečný. Je důležité vždy zvážit jak přesnost, tak i odvolání a vyvážit je podle obchodních potřeb. Přesnost je dobrá metrika, pokud je rozdělení možných výsledků zcela jednotné a význam falešných pozitiv a falešných negativů je také přibližně stejný, což je zřídka případ.

Průměrování metrik a nevyvážených údajů o školení

Pokud se zabýváte několika segmenty, které musí model řešit, musíte se podívat na metriky výkonu pro každý segment (nebo alespoň na ty důležité) zvlášť. Vezměme si například klasifikační model, který klasifikuje fotografie do jedné ze sady kategorií podle typu zvířete na fotografii. Celková čísla přesnosti / vyvolání modelu nemusí odrážet situaci, kdy některé kategorie mají velkou přesnost, zatímco jiné mají velmi nízkou přesnost. K tomu obvykle dochází, když máte ve svých tréninkových údajích nevyváženost - řekněme, že máte 1 000 označených fotografií koček a psů a pouze 10 fotografií medvědů. Vaše celková přesnost může být velmi vysoká, protože většina fotografií koček a psů bude klasifikována správně, zatímco všichni medvědi jsou nesprávně identifikováni, protože model nemá k dispozici žádná data, která s nimi souvisí. Pokud jsou tyto méně časté kategorie pro vaše podnikání důležité, možná budete potřebovat společné úsilí, abyste pro ně získali údaje o školení, aby váš model fungoval plošně.

Dobře - to bylo docela dlouho, ale doufejme, že nyní dobře rozumíte všem technickým základům. Dále projdeme podrobný, krok za krokem proces vývoje modelu od nápadu po spuštění ve výrobě.

Pokud vám tento příspěvek připadá zajímavý, dejte mi prosím vědět na zeleném srdci níže nebo se s námi podělte s někým jiným, kdo to považuje za užitečné? To by mi úplně stačilo!