Nejlepší odpověď
předškolení v hlubokém učení není nic jiného než , trénovat stroje, než začnou dělat konkrétní úkoly.
Například:
- Chcete trénovat neurální síť, aby provedla úkol, klasifikaci na datová sada obrázků. Trénink zahájíte náhodnou inicializací závaží. Jakmile začnete s tréninkem, váhy se změní nebo změní, aby bylo možné provádět úkoly s menšími chybami (optimalizované). Jakmile jste spokojeni s výsledky tréninku, uložíte váhy vaší sítě, aby trénovaná neurální síť mohla příště provést podobný úkol s dobrou optimalizací a lepšími výsledky.
- Příště začněte od trénink s náhodně inicializovanými váhami, můžete použít váhy, které jste uložili z předchozí sítě, jako počáteční hodnoty hmotnosti pro váš nový experiment. Inicializace vah tímto způsobem se označuje jako použití předem vyškolené sítě ……………………….
První sítí je vaše předem vyškolená síť. Druhým je síť, kterou dolaďujete.
Základní myšlenkou předběžného tréninku je, že náhodná inicializace vstupů je dobrá .. náhodná, hodnoty vah nemají nic společného s úkol, který se snažíte vyřešit.
Hodnoty předchozího tréninku musí být lepší než předchozí trénink, hodnoty musí být pro daný úkol správně inicializovány, mohli bychom je také nastavit na optimální hodnoty.
Pre-training proto dává síti náskok. Jako by už údaje viděla dříve.
Odpověď
Nejprve předpokládám, že jsme na planetě Merkur, kde je týden zhruba 58 týdnů. Za předpokladu, že strávíte zhruba 8 hodin denně učením po dobu 5 dnů v týdnu, máte 2320 hodin, což je dost na to, abyste získali dostatečně dobré pochopení nad hlubokým učením, abyste se vydali za výzkumného inženýra a začínajícího výzkumníka.
Nejprve si tedy udělejte laskavost a získejte knihu Deep Learning od Goodfellow et al. Je to mimořádně SOLIDNÍ kniha o hlubokém učení, která se nevyhýbá žádné matematice a není příliš pedantská. Například má skvělý způsob, jak vysvětlit, co se stane, když optimalizujete divergenci KL na druhou stranu, co ztráty L1 a L2 skutečně dělají s vašimi vahami (ve smyslu vlastních vektorů funkce ztráty), intuice za LSTM a tak dále. Začněte první částí knihy. Úplné strávení tohoto materiálu (YMMV) bude trvat přibližně 2 týdny. Pokud jste minulý týden, aniž byste se nudili nebo zabředli do matematické složitosti, jste nyní připraveni přejít na nějaké strojové učení.
V tomto okamžiku musíme přestat číst a začít kódovat . Chcete-li však skutečně porozumět věcem, nestahujte Tensorflow, začněte implementovat základní věci (logistická regrese, SVM, kNN, PCA, GMM) v dobrém pythonu. Mnoho lidí spěchá na používání knihoven na vysoké úrovni, aniž by pochopili, jak kódovat základní bloky od nuly, a pokud tak učiníte, dozvíte se toho hodně. Například se dozvíte, že před aplikací PCA musíte standardizovat svá data, jak zajistit numericky stabilní softmax, proč byste neměli opakovaně používat svou funkci softmax k implementaci log-softmax atd. Chcete-li začít s jejich implementací, přejděte na CS231n a dokončete první přiřazení, které vychází z implementace SVM a GMM. Implementace a ladění by trvalo přibližně 4 týdny (za předpokladu, že začnete bez znalosti numpy nebo pythonu). Nyní víte, jak implementovat základní algoritmy strojového učení od nuly.
Nyní je dobré pokračovat a přečíst si vynikající poznámky na webu CS231n (do modulu-1). Dopřejte si příjemný čas strávený složitostí optimalizace nekonvexních funkcí a ano, VYUŽÍVEJTE každou věc, kterou čtete. Od metod založených na hybnosti až po základní backprop je implementace klíčem, pokud se chcete skutečně naučit mechaniku. Například pokud implementujete backprop sami, uvědomíte si, jak potřebujete udržovat hromadu dat pro zpětný průchod a tato znalost by mohla být velmi užitečná, pokud v některé fázi DL inženýrství narazíte na chyby paměti. kariéra. Bude to trvat další 4 týdny.
Nyní to bylo 10 týdnů šíleného DL. Nyní jste si osvojili základní matematické dovednosti a můžete implementovat sítě pro předávání dopředu a základní ML algoritmy v surovém pythonu. Gratuluji k tomu. Pojďme odsud dále. Bude to jen těžší (a tím i zábavnější).
Je čas vyjmout si naši knihu Deep Learning a začít od místa, kde jsme přestali. Přečtěte si kapitoly 6, 7 a 8. Kapitola 6 je jednoduchá věc a my jsme ji již zvládli. Kapitola 7 je místem, kde to začíná být těžké – ale kniha dělá vynikající práci při destilaci těžkých matematických konceptů do snadno srozumitelného textu.Chcete-li si doplnit své učení, podívejte se na tuto úžasnou přednášku – Přednáška Deep Learning 11: Max-margin learning, přenosové a paměťové sítě .
Toto bude to trvat další 4 týdny, ale až bude hotovo, jsme připraveni přejít na CNN a RNN. Znovu se budeme řídit stejnou filozofií – přečtěte si poznámky z cs231n, implementujte a trénujte datovou síť a poté si přečtěte knihu, abyste porozuměli jemnějším podrobnostem. Tato fáze bude a měla by trvat déle, protože implementace backpropu v CNN (se všemi zvonky a píšťalkami, jako je dávková normalizace) není tak snadné. Totéž platí pro LSTM (sledujte normu tohoto přechodu a ořízněte, pokud je příliš velká, nebo zkraťte na kratší sekvence, pokud je příliš malá). Pro tip – pro školení LSTM doporučuji zkontrolovat datovou sadu PennTree Bank a trénovat jazykový model, abyste získali zmatek kolem 110. Pokud můžete udělat těch 90 let, gratulujeme, děláte to správně. Chcete-li trénovat CNN, stačí udělat úkol 2 z CS231n.
Uf. tato poslední fáze školení CNN / RNN a následného čtení souvisejícího materiálu z knihy nás vrátila zhruba o 6 týdnů a nyní máme jen 38 týdnů na to, abychom se stali tím nejlepším.
Konečně čas to pip install tensorflow.
Nemyslete ani na nic jiného. Ne, neděláme pytorch (má dynamickou povahu, takže není skvělý, pokud se chcete dostat na kloub autodiff softwaru, ale jinak skvělý) nebo theano (není dostatečně velký). Nebo knihovny na vysoké úrovni, jako je keras (krásné, ale vše vypadá příliš snadno). Přejděte k dokumentům a přečtěte si výukový program MNIST (pro odborníky to je to, co jsme teď). Zpočátku to bude všechno velmi divné, myšlenka na výpočetní graf, relace a skutečnost, že existuje samostatný „kompilace“ a „běh“ i v samotném pythonu. Ale jakmile se dočkáte všeho, začnete si uvědomovat, jak krásně to bylo navrženo a jak snadno se rozšiřuje – například psaní vlastního LSTM je stejně snadné jako rozšíření základní třídy LSTM. Jako sadu zahřívacích cvičení si přečtěte kód v tutoriálech ( Tutoriály | TensorFlow ) a projděte si každý tutoriál velmi pečlivě a pochopte, co jednotlivé řádky dělají a proč. Naučíte se, jak uspořádat svůj tensorflow kód. Profesionální tip – vždycky bych chtěl mít samostatné abstrakce pro školení, testování a předpovídání. A samostatná build()
funkce, která vytváří celý výpočetní graf, počínaje zástupnými symboly, až po definování funkce ztráty a funkce train\_op, která tuto funkci ztráty optimalizuje.
Nestydatá zástrčka – nedávno jsem naprogramoval model pro porozumění stroji (úkol, který se mi opravdu líbí). Chcete-li zjistit, jak sestavit kód modelu, podívejte se na MurtyShikhar / Question-Answering . Chcete-li otestovat své dovednosti tensorflow, přeložte svůj kód CNN a LSTM do tensorflow, abyste dosáhli stejné (možná lepší) přesnosti / zmatku.
Učení tensorflow trvalo asi 8 týdnů šíleného hackování, čtení návodů, frustrace nad dem chyby kompilace tensorflow, ale doufám, že cesta byla obohacující. Nyní máte sílu autodiftu a opravdu skvělý arzenál funkcí, které vám umožní zapojit doslova JAKÝKOLI model hlubokého učení. Než přejdeme k některým výzkumným věcem, proč nezkusit zábavný projekt v tensorflow? Sbírejte jakýkoli skvělý papír o dobře definovaném problému (strojový překlad / titulkování obrázků / porozumění / zodpovězení otázek / vizuální zodpovězení otázek / přenos stylu) a implementujte nejnovější model v Tensorflow. Ještě nezkoušejte GAN, protože ještě nejsme tak cool (zatím). Dokončení projektu bude trvat asi 5 týdnů a získáte konkurenceschopné výsledky, přičemž asi 5 týdnů vám zbude jen číst o aktuálním výzkumu.
Uvědomuji si, že 5 týdnů je opravdu krátká doba k pokrytí šíře DL výzkum, tak proč nezúžit náš rozsah? Zachyťte jeden problém nebo techniku - ať už jde o generativní modely, nebo seq2seq modely nebo posilovací učení. Nevím nic o učení o posilování (snažím se však učit), takže se zaměřím na další dva.
U generativních modelů začněte s tímto úžasným návodem našeho pána a spasitele – NIPS 2016 – Generative Adversarial Networks – Ian Goodfellow , a pomalu ho sledujte, podle potřeby pozastavujte a googlujte. Zde najdete velmi užitečné matematické dovednosti z prvních několika týdnů. Poté vás žádám, abyste si přečetli původní dokument GAN a následné kroky, například DCGANs , SeqGANs a nejnovější a nejúžasnější WGAN .
V případě Seq2Seq sledujte tuto úžasnou přednášku vědce Google Brain – Sekvenční sekvenční hluboké učení (Quoc Le, Google) a poté zkontrolujte výukový program ICML 2017 od Oriola Vinyalsa – seq2seq icml výukový program .
KONEC.
To trvalo nějaký čas a úsilí. Je konec 58. týdne a nyní máte hluboké znalosti hlubokého učení spolu s některými solidními matematickými a inženýrskými dovednostmi. Je čas se pustit hlouběji (dostat hříčku?) Do výzkumu Deep Learning, nebo si možná vytvořit skvělou aplikaci. Toto rozhodnutí nechávám na vás, vy stud stud DL inženýr.