AI 101

Co je hluboké učení?

mm

Hluboké učení je jedním z nejvlivnějších a nejrychleji rostoucích oborů v oblasti umělé inteligence. Přesto může být obtížné získat intuitivní pochopení hlubokého učení, protože termín hluboké učení zahrnuje různé algoritmy a techniky. Hluboké učení je také subdisciplínou strojového učení obecně, takže je důležité pochopit, co je strojové učení, aby bylo možné pochopit hluboké učení.

Co je strojové učení?

Hluboké učení je rozšířením některých konceptů, které pocházejí ze strojového učení, takže se zastavme na chvíli a vysvětlíme, co je strojové učení.

Strojové učení je metoda, která umožňuje počítačům provádět specifické úkoly bez explicitního kódování každého řádku algoritmů, které se používají k dokončení těchto úkolů. Existuje mnoho různých algoritmů strojového učení, ale jedním z nejčastěji používaných algoritmů je multilayer perceptron. Multilayer perceptron se také nazývá neuronová síť a skládá se z řady uzlů/neuronů, které jsou propojeny. Existují tři různé vrstvy v multilayer perceptronu: vstupní vrstva, skrytá vrstva a výstupní vrstva.

Vstupní vrstva přebírá data do sítě, kde jsou data zpracovávána uzly ve střední/skryté vrstvě. Uzly ve skryté vrstvě jsou matematické funkce, které mohou zpracovat data přicházející z vstupní vrstvy, extrahovat relevantní vzory z vstupních dat. Tímto způsobem se neuronová síť “učí”. Neuronové sítě dostaly své jméno podle toho, že jsou inspirovány strukturou a funkcí lidského mozku.

Propojení mezi uzly ve síti mají hodnoty nazývané váhy. Tyto hodnoty jsou vlastně předpoklady o tom, jak jsou data v jedné vrstvě související s daty ve vrstvě následující. Když se síť učí, váhy se upravují a cílem je, aby se váhy/předpoklady o datech nakonec shodly na hodnotách, které přesně reprezentují významné vzory v datech.

Aktivační funkce jsou přítomny v uzlech sítě a tyto aktivační funkce transformují data ne-lineárním způsobem, umožňují síti naučit se komplexní reprezentace dat. Aktivační funkce násobí vstupní hodnoty váhami a přidávají bias termín.

Co je hluboké učení?

Hluboké učení je termín, který se používá pro architektury strojového učení, které spojují mnoho multilayer perceptronů, takže není pouze jedna skrytá vrstva, ale mnoho skrytých vrstev. “Hlubší” hluboká neuronová síť, tím více sofistikované vzory síť může naučit.

Hluboké sítě složené z neuronů se někdy nazývají plně propojené sítě nebo plně propojené vrstvy, s odkazem na fakt, že daný neuron udržuje spojení se všemi okolními neurony. Plně propojené sítě lze kombinovat s jinými funkcemi strojového učení, aby se vytvořily různé architektury hlubokého učení.

Různé typy hlubokého učení

Existuje mnoho různých architektur hlubokého učení, které používají výzkumníci a inženýři, a každá z těchto architektur má své vlastní specializované použití.

Convolutional Neural Networks

Convolutional neuronové sítě, nebo CNN, jsou architektura neuronové sítě, která se běžně používá při vytváření počítačových vizuálních systémů. Struktura convolutional neuronových sítí umožňuje jim interpretovat obrazová data, převádět je na čísla, která může plně propojená síť interpretovat. CNN má čtyři hlavní součásti:

  • Convolutional vrstvy
  • Subsampling/pooling vrstvy
  • Aktivační funkce
  • Plně propojené vrstvy

Convolutional vrstvy přebírají obrázky jako vstupy do sítě, analyzují obrázky a získávají hodnoty pixelů. Subsampling nebo pooling je místo, kde se hodnoty obrázků převádějí/snižují, aby se zjednodušila reprezentace obrázků a snížila citlivost obrázkových filtrů na šum. Aktivační funkce kontrolují, jak data proudí z jedné vrstvy do další vrstvy, a plně propojené vrstvy jsou tím, co analyzuje hodnoty, které reprezentují obrázek, a učí se vzory obsažené v těchto hodnotách.

RNNs/LSTMs

Recurrent neuronové sítě, nebo RNN, jsou populární pro úkoly, kde pořadí dat matters, kde síť musí naučit se o sekvenci dat. RNN jsou běžně aplikovány na problémy, jako je zpracování přirozeného jazyka, protože pořadí slov matters při dekódování významu věty. “Recurrent” část termínu Recurrent Neural Network pochází z faktu, že výstup pro daný prvek v sekvenci závisí na předchozím výpočtu, stejně jako na aktuálním výpočtu. Na rozdíl od jiných forem hlubokých neuronových sítí, RNN mají “paměť”, a informace vypočtené v různých časových krocích sekvence se používají k výpočtu konečných hodnot.

Existuje mnoho typů RNN, včetně bidirectional RNN, které berou v úvahu budoucí položky v sekvenci, kromě předchozích položek, při výpočtu hodnoty položky. Další typ RNN je Long Short-Term Memory, nebo LSTM, síť. LSTMs jsou typy RNN, které mohou zpracovat dlouhé řetězce dat. Pravidelné RNN mohou trpět problémem “exploding gradient”. Tento problém nastává, když je řetězec vstupních dat extrémně dlouhý, ale LSTMs mají techniky, které tento problém řeší.

Autoencoders

Většina architektur hlubokého učení, které byly dosud zmíněny, se aplikuje na problémy s dohledem, spíše než na úkoly bez dohledu. Autoencoders mohou transformovat nesupervizovaná data do supervizovaného formátu, umožňující neuronovým sítím být použity na problém.

Autoencoders se často používají k detekci anomálií v datech, což je příklad učení bez dohledu, protože povaha anomálie není známa. Takové příklady detekce anomálií zahrnují detekci podvodů pro finanční instituce. V tomto kontextu je účelem autoencoderu určit bazální úroveň běžných vzorů v datech a identifikovat anomálie nebo outliers.

Struktura autoencoderu je často symetrická, se skrytými vrstvami uspořádanými tak, aby výstup sítě připomínal vstup. Čtyři typy autoencoderů, které se často používají, jsou:

  • Pravidelné/autoencoders
  • Multilayer encoders
  • Convolutional encoders
  • Regularized encoders

Pravidelné/autoencoders jsou prostě neuronové sítě s jednou skrytou vrstvou, zatímco multilayer autoencoders jsou hluboké sítě s více než jednou skrytou vrstvou. Convolutional autoencoders používají convolutional vrstvy místo, nebo kromě, plně propojených vrstev. Regularized autoencoders používají speciální typ funkce ztráty, která umožňuje neuronové síti provádět komplexnější funkce, funkce, které nejsou pouze kopírováním vstupů do výstupů.

Generative Adversarial Networks

Generative Adversarial Networks (GANs) jsou ve skutečnosti více hlubokých neuronových sítí, než pouze jedna síť. Dvě hluboké učící modely se trénují současně a jejich výstupy se používají jako vstupy do druhé sítě. Sítě jsou ve vzájemném soutěžení a protože mají přístup k výstupním datům druhé sítě, obě sítě se učí z těchto dat a zlepšují. Sítě jsou vlastně ve hře padělatelství a detekce, kde generativní model se snaží vytvořit nové instance, které budou oklamat detekční model/diskriminátor. GANs se staly populárními v oblasti počítačového vidění.

Shrnutí hlubokého učení

Hluboké učení rozšiřuje principy neuronových sítí, aby vytvořilo sofistikované modely, které mohou naučit se komplexní vzory a generalizovat tyto vzory na budoucí datové sady. Convolutional neuronové sítě se používají k interpretaci obrázků, zatímco RNN/LSTMs se používají k interpretaci sekvencí dat. Autoencoders mohou transformovat úkoly učení bez dohledu do supervizovaného formátu. Nakonec GANs jsou více sítí, které jsou proti sobě, a jsou zvláště užitečné pro úkoly počítačového vidění.

Blogger a programátor se specializací na Machine Learning a Deep Learning témata. Daniel doufá, že pomůže ostatním využít sílu AI pro sociální dobro.