Co je to AI?
AI (Artificial intelligence) je odvětví počítačové vědy, ve kterém jsou stroje naprogramovány a dostávají kognitivní schopnost myslet a napodobovat akce, jako jsou lidé a zvířata. Měřítkem pro AI je lidská inteligence týkající se uvažování, řeči, učení, vidění a řešení problémů, což je v budoucnosti daleko.
AI má tři různé úrovně:
- Úzká AI : O umělé inteligenci se říká, že je úzká, když stroj dokáže provést konkrétní úkol lépe než člověk. Současný výzkum AI je nyní tady
- Obecná AI : Umělá inteligence dosáhne obecného stavu, když může vykonávat jakýkoli intelektuální úkol se stejnou úrovní přesnosti jako člověk
- Aktivní AI : AI je aktivní, když může porazit lidi v mnoha úkolech
Dřívější systémy AI používaly systémy porovnávání vzorů a expertní systémy.
V tomto výukovém programu se naučíte
- Co je to AI?
- Co je ML?
- Co je to Deep Learning?
- Proces strojového učení
- Proces hlubokého učení
- Automatizujte extrakci funkcí pomocí DL
- Rozdíl mezi strojovým učením a hlubokým učením
- Kdy použít ML nebo DL?
Co je ML?
ML (Machine Learning) je typ AI, ve kterém je počítač vyškolen k automatizaci úkolů, které jsou pro člověka vyčerpávající nebo nemožné. Je to nejlepší nástroj pro analýzu, porozumění a identifikaci vzorců v datech na základě studia počítačových algoritmů. Strojové učení může rozhodovat s minimálním lidským zásahem.
Ve srovnání umělé inteligence a strojového učení používá strojové učení data k podávání algoritmu, který dokáže porozumět vztahu mezi vstupem a výstupem. Když stroj dokončí učení, může předpovědět hodnotu nebo třídu nového datového bodu.
Co je to Deep Learning?
Hluboké učení je počítačový software, který napodobuje síť neuronů v mozku. Jedná se o podmnožinu strojového učení a nazývá se hluboké učení, protože využívá hluboké neurální sítě. Stroj používá různé vrstvy k učení se z dat. Hloubku modelu představuje počet vrstev v modelu. Hluboké učení je nový stav v oblasti umělé inteligence. V hlubokém učení se fáze učení provádí prostřednictvím neuronové sítě. Neuronová síť je architektura, kde jsou vrstvy naskládány na sebe
Proces strojového učení
Představte si, že máte vytvořit program, který rozpozná objekty. K trénování modelu použijete klasifikátor . Klasifikátor používá funkce objektu k pokusu o identifikaci třídy, do které patří.
V příkladu bude klasifikátor trénován, aby zjistil, zda je obrázek:
- Jízdní kolo
- Loď
- Auto
- Letadlo
Čtyři výše uvedené objekty jsou třídou, kterou musí klasifikátor rozpoznat. Chcete-li vytvořit klasifikátor, musíte mít některá data jako vstup a přiřadit jim štítek. Algoritmus vezme tato data, najde vzor a poté jej zařadí do odpovídající třídy.
Tento úkol se nazývá supervizované učení. V supervizovaném učení obsahují tréninková data, která vkládáte do algoritmu, štítek.
Výcvik algoritmu vyžaduje dodržení několika standardních kroků:
- Sbírejte data
- Trénujte klasifikátor
- Dělejte předpovědi
První krok je nezbytný, výběr správných dat způsobí, že algoritmus bude úspěšný nebo neúspěšný. Data, která se rozhodnete trénovat model, se nazývají funkce. V příkladu objektu jsou prvky pixely obrázků.
Každý obrázek je řádek v datech, zatímco každý pixel je sloupec. Pokud má váš obrázek velikost 28x28, datová sada obsahuje 784 sloupců (28x28). Na obrázku níže byl každý obrázek transformován do vektoru funkcí. Štítek sděluje počítači, jaký objekt je na obrázku.
Cílem je použít tato tréninková data ke klasifikaci typu objektu. První krok spočívá ve vytvoření sloupců prvků. Druhý krok pak zahrnuje výběr algoritmu pro trénování modelu. Po dokončení školení model předpoví, jaký obrázek odpovídá jakému objektu.
Poté je snadné použít model k předpovídání nových obrázků. Pro každý nový zdroj obrazu do modelu stroj předpovídá třídu, do které patří. Modelem prochází například zcela nový obrázek bez štítku. Pro člověka je vizualizace obrazu jako automobilu triviální. Stroj využívá své předchozí znalosti k předpovědi, že obraz je také automobilem.
Proces hlubokého učení
V hlubokém učení se fáze učení provádí prostřednictvím neuronové sítě. Neuronová síť je architektura, kde jsou vrstvy naskládány na sebe.
Zvažte stejný příklad obrázku výše. Cvičná soustava by byla napájena neurální sítí
Každý vstup jde do neuronu a je vynásoben váhou. Výsledek násobení teče do další vrstvy a stává se vstupem. Tento proces se opakuje pro každou vrstvu sítě. Konečná vrstva se jmenuje výstupní vrstva; poskytuje skutečnou hodnotu pro regresní úlohu a pravděpodobnost každé třídy pro klasifikační úlohu. Neuronová síť používá matematický algoritmus k aktualizaci vah všech neuronů. Neuronová síť je plně trénována, když hodnota vah dává výstup blízký realitě. Například dobře trénovaná neurální síť dokáže rozpoznat objekt na obrázku s vyšší přesností než tradiční neurální síť.
Automatizujte extrakci funkcí pomocí DL
Datová sada může obsahovat tucet až stovky funkcí. Systém se poučí z relevance těchto funkcí. Ne všechny funkce však mají pro algoritmus smysl. Rozhodující součástí strojového učení je najít relevantní sadu funkcí, aby se systém něco naučil.
Jedním ze způsobů provedení této části ve strojovém učení je použití extrakce funkcí. Extrakce funkcí kombinuje existující funkce a vytváří relevantnější sadu funkcí. Lze to provést pomocí PCA, T-SNE nebo jakýchkoli jiných algoritmů snižování rozměrů.
Například při zpracování obrazu musí odborník ručně extrahovat prvek v obraze, jako jsou oči, nos, rty atd. Tyto extrahované funkce jsou zdrojem klasifikačního modelu.
Hluboké učení řeší tento problém, zejména pro konvoluční neuronovou síť. První vrstva neuronové sítě se naučí malé detaily z obrázku; další vrstvy spojí předchozí znalosti a vytvoří komplexnější informace. V konvoluční neuronové síti se extrakce funkcí provádí pomocí filtru. Síť aplikuje na obrázek filtr, aby zjistil, zda existuje shoda, tj. Tvar prvku je identický s částí obrazu. Pokud existuje shoda, síť použije tento filtr. Proces extrakce funkcí se proto provádí automaticky.
Rozdíl mezi strojovým učením a hlubokým učením
Níže je uveden klíčový rozdíl mezi Deep Learning vs Machine Learning
Strojové učení |
Hluboké učení |
|
Závislosti na datech |
Vynikající výkon na malém / středním datovém souboru |
Vynikající výkon na velké datové sadě |
Závislosti na hardwaru |
Práce na low-end stroji. |
Vyžaduje výkonný stroj, nejlépe s GPU: DL provádí značné množení matic |
Inženýrství funkcí |
Potřebujete porozumět funkcím, které představují data |
Není třeba rozumět nejlepším vlastnostem, které představují data |
Čas provedení |
Od několika minut do hodin |
Až týdny. Neuronová síť potřebuje vypočítat značný počet vah |
Interpretovatelnost |
Některé algoritmy jsou snadno interpretovatelné (logistické, rozhodovací strom), některé jsou téměř nemožné (SVM, XGBoost) |
Těžké až nemožné |
Kdy použít ML nebo DL?
V následující tabulce shrneme pomocí příkladů rozdíl mezi strojovým učením a hlubokým učením.
Strojové učení | Hluboké učení | |
Datová sada školení | Malý | Velký |
Vyberte funkce | Ano | Ne |
Počet algoritmů | Mnoho | Málo |
Čas tréninku | Krátký | Dlouho |
Díky strojovému učení potřebujete k trénování algoritmu méně dat než k hlubokému učení. Hluboké učení vyžaduje rozsáhlou a různorodou sadu dat k identifikaci základní struktury. Kromě toho poskytuje strojové učení rychlejší trénovaný model. Nejpokročilejší architektura hlubokého učení může trénovat dny až týden. Výhodou hlubokého učení oproti strojovému učení je, že je vysoce přesný. Nemusíte rozumět tomu, které funkce jsou nejlepší reprezentací dat; neurální síť se naučila vybírat kritické funkce. Ve strojovém učení si musíte sami vybrat, jaké funkce má model obsahovat.
souhrn
Umělá inteligence dodává stroji kognitivní schopnosti. Při srovnání umělé inteligence a strojového učení používaly dřívější systémy umělé inteligence vzory a expertní systémy.
Myšlenka strojového učení spočívá v tom, že stroj se může učit bez lidského zásahu. Stroj potřebuje najít způsob, jak se naučit řešit úkol s ohledem na data.
Hluboké učení je průlomem v oblasti umělé inteligence. Když je k dispozici dostatek dat k trénování, hluboké učení dosahuje působivých výsledků, zejména pro rozpoznávání obrázků a překlad textu. Hlavním důvodem je extrakce funkcí, která se provádí automaticky v různých vrstvách sítě.