Deep learning v jazyku Python (Ukázka, strana 99)

Page 1

98

 4.1.4

Deep learning v jazyku Python – Knihovny Keras, TensorFlow

V této knize se zaměřujeme především na řízené učení, protože je dnes zdaleka dominantní formou hlubokého učení se širokým spektrem průmyslových aplikací. V dalších kapitolách se ale blíže podíváme i na samořízené učení.

Posilované učení (reinforcement learning)

Toto odvětví strojového učení bylo dlouho přehlíženo. Pozornosti se mu dostalo teprve poté, co je úspěšně použila aplikace Google DeepMind, aby se naučila hrát hry pro Atari a později hrát Go na nejvyšší úrovni. Při posilovaném učení získává agent informace o svém prostředí a učí se zvolit akce, které maximalizují nějakou odměnu. Například neuronová síť, která „se dívá“ na obrazovku videohry a provádí herní akce s cílem maximalizovat své skóre, může být natrénována prostřednictvím posíleného učení. V současné době je posilované učení většinou výzkumnou oblastí a za hranicemi her ještě nezaznamenalo významné praktické úspěchy. Časem však očekáváme, že posilované učení se uplatní ve stále širší škále aplikací v reálném světě: řízení automobilů, robotice, řízení zdrojů, vzdělávání atd. Je to nápad, jehož čas přijde nebo brzy přijde.

4.2

Vyhodnocení modelů strojového učení

Ve třech příkladech uvedených v kapitole 3 jsme data rozdělili na trénovací, validační a testovací množinu. Důvod, proč nehodnotit modely na stejných datech, na kterých byly natrénovány, se rychle ukázal: po několika epochách se všechny tři modely začaly přeučovat. To znamená, že jejich výkonnost na dosud nepoužitých datech začala stagnovat nebo se dokonce zhoršovat ve srovnání s jejich výkonností na trénovacích datech, která se s postupujícím trénováním vždy zlepšuje. Při strojovém učení je cílem dosáhnout modelů, které generalizují (tj. dobře fungují na dosud neviděných datech) a hlavní překážkou je přeučení. Můžete jen řídit to, co můžete sledovat, takže je velmi důležité, abyste mohli spolehlivě měřit generalizační výkon vašeho modelu. Následující části se zabývají strategiemi pro zmírnění přeučení a maximalizaci zobecnění. V této části se zaměříme na to, jak můžeme generalizaci měřit: jak modely strojového učení vyhodnotit.

4.2.1

Trénovací, validační a testovací množiny

Hodnocení modelu se rozdělením dostupných dat do tří množin (trénovací, validační a testovací) vždy snižuje. Trénujete na trénovacích datech a ověřujete svůj model na validačních datech. Jakmile je váš model připraven, vyzkoušíte jej na testovacích datech. Můžete se zeptat, proč nemáte jen dvě množiny: trénovací množinu a testovací množinu? Trénovali byste na trénovacích datech a vyhodnotili na testovacích datech. To by bylo mnohem jednodušší! Důvodem je to, že vývoj modelu vždy zahrnuje ladění jeho konfigurace: např. volbou počtu vrstev nebo velikosti vrstev (označují se jako hyperparametry modelu (hyperparameters of the model), abychom je odlišili od parametrů (parameters), což jsou váhy sítě). Toto ladění provedete tak, že jako signál zpětné vazby použijete výkonnost modelu na validačních datech. 01G_Hluboké učení v jazyku Python_ZLOM.doc; verze 1.02.8060 – 2019-05-03

Strana 98 z 328 Ukázka elektronické knihy, UID: KOS272862


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.