Jaký je rozdíl mezi neurální sítí a hlubokou neuronovou sítí a proč fungují ty hlubší lépe?
On 22 prosince, 2020 by adminNeviděl jsem otázku uvedenou přesně v těchto termínech, a proto dávám novou otázku.
To, co mě zajímá, není definice neuronové sítě, ale pochopení skutečného rozdílu s hlubokou neuronovou sítí.
Pro další souvislosti: Vím, co je neurální síť a jak funguje backpropagation. Vím, že DNN musí mít několik skrytých vrstev. Před 10 lety jsem se však ve třídě dozvěděl, že mít několik vrstev nebo jednu vrstvu (ne počítání vstupních a výstupních vrstev) bylo ekvivalentní z hlediska funkcí, které je neurální síť schopna reprezentovat (viz Cybenko „s Věta o univerzálním přiblížení ), a to, že více vrstev zkomplikovalo analýzu bez zvýšení výkonu. Je zřejmé, že tomu tak již není.
Předpokládám, možná nesprávně, že rozdíly jsou spíše ve smyslu cvičného algoritmu a vlastností než ve struktuře, a proto Opravdu bych ocenil, kdyby odpověď mohla zdůraznit důvody, které umožnily přechod na DNN (např. Matematický důkaz nebo náhodné hraní se sítěmi?) a žádoucí (např. rychlost konvergence?)
Komentáře
- FYI: Jak pravdivý je tento snímek při hlubokém učení?
- Je-li funkce, kterou chcete přiblížit, kompoziční funkcí (běžnou při zpracování obrazu a mnoha přirozené oblasti díky zákonu fyziky). Je dokázáno, že hluboké sítě mohou tuto kompozici využít a dosáhnout stejné úrovně chyby aproximace s exponenciálně menším počtem neuronů (ve srovnání se sítí se skrytou vrstvou). Odkaz: Poggio, Tomaso a kol. “ Proč a kdy se hluboké, ale ne mělké sítě mohou vyhnout prokletí dimenzionality: recenze. “ International Journal of Automation and Computing (2017)
- Možná se budete chtít podívat na tento článek
- Viz 6.4 z arxiv.org/pdf/2004.06093.pdf
odpověď
Začněme s triviliaty: Hluboká neurální síť je jednoduše dopředná síť s mnoha skrytými vrstvami.
To je víceméně vše, co lze o definici říci. Neuronové sítě mohou být opakující se nebo dopředné; dopředné sítě nemají ve svém grafu žádné smyčky a lze je uspořádat do vrstev. Pokud existuje „mnoho“ vrstev , pak řekneme, že síť je hluboká .
Kolik mnoho vrstev musí mít síť, aby se mohla kvalifikovat jako hluboká? jednoznačná odpověď na tuto otázku (to je trochu jako ptát se, kolik zrn vytvoří hromadu ), ale obvykle mít dvě nebo více skrytých vrstev se počítá jako hluboké. Naproti tomu se síť s pouze jednou skrytou vrstvou běžně nazývá „mělká“. Mám podezření, že zde bude docházet k určité inflaci a za deset let by si lidé mohli myslet, že cokoli s méně než, řekněme, deseti vrstvami, je povrchní a vhodné pouze pro cvičení ve školce. Výraz „deep“ neformálně naznačuje, že je obtížné se sítí vypořádat.
Zde je ukázka, upravená odtud :
Skutečnou otázkou, kterou se ptáte, je samozřejmě otázka, proč by bylo prospěšné mít mnoho vrstev?
Myslím si, že poněkud udivující odpověď je, že to nikdo neví. Níže uvádíme několik běžných vysvětlení, které krátce přezkoumám, ale žádné z nich nebylo přesvědčivě prokázáno jako pravdivé a člověk si ani nemůže být jistý, že mít mnoho vrstev je opravdu prospěšné.
Říkám, že je to úžasné, protože hluboké učení je velmi populární, každý rok láme všechny rekordy (od rozpoznávání obrázků, hraní Go, přes automatický překlad atd.), zvykne si na něj průmysl atd. atd. . A stále si nejsme zcela jisti, proč to funguje tak dobře.
Diskuse vycházím z Deep Learning kniha Goodfellow, Bengio a Courville, která vyšla v roce 2017 a je obecně považována za knihu o hlubokém učení. (Je volně k dispozici online.) Relevantní část je 6.4.1 Vlastnosti a hloubka univerzální aproximace .
Napsali jste to
Před 10 lety jsem se ve třídě dozvěděl, že mít několik vrstev nebo jednu vrstvu (nepočítaje vstupní a výstupní vrstvy) bylo ekvivalentní, pokud jde o funkce, které je neurální síť schopna představovat […]
Musíte mít na mysli takzvanou univerzální aproximační teorém , kterou prokázal Cybenko v roce 1989 a zobecněný různými lidmi v 90. letech. V zásadě se říká, že mělká neuronová síť (s 1 skrytou vrstvou) může aproximovat jakoukoli funkci, tj. V zásadě se může naučit cokoli . To platí pro různé nelineární aktivační funkce, včetně usměrněných lineárních jednotek, které dnes používá většina neuronových sítí (pro tento výsledek jsou v učebnici odkazy Leshno et al. 1993 ).
Pokud ano, tak proč všichni používají hluboké sítě?
No, naivní odpověď je, že protože fungují lépe. Zde je obrázek z knihy Deep Learning , který ukazuje, že pomáhá mít více vrstev v jednom konkrétním úkolu, ale stejný jev je často pozorován napříč různými úkoly a doménami:
Víme, že mělká síť by mohla fungují stejně dobře jako ti hlubší. Ale není; a obvykle ne. Otázkou je — proč? Možné odpovědi:
- Možná by mělká síť potřebovala více neuronů než hluboká?
- Možná je mělká síť obtížnější trénovat pomocí našich současných algoritmů (např. Má ošklivější lokální minima nebo je konvergenční poměr pomalejší nebo cokoli jiného??
- Možná, že povrchní architektura neodpovídá druhu problémů, které se obvykle snažíme řešit (např. rozpoznávání objektů je podstatnou „hloubkou“ „, hierarchický proces)?
- Něco jiného?
Kniha Deep Learning argumentuje odrážkami č. 1 a # 3. Nejprve tvrdí, že počet jednotek v mělké síti exponenciálně roste se složitostí úkolů. Aby byla užitečná, může být nutné, aby mělká síť byla velmi velká; možná mnohem větší než hluboká síť. Toto je založeno na řadě článků dokazujících, že mělké sítě v některých případech potřebují exponenciálně mnoho neuronů; ale zda např. Klasifikace MNIST nebo hraní Go jsou takové případy, není opravdu jasné. Za druhé, kniha říká toto:
Volba hlubokého modelu kóduje velmi obecnou víru, že funkce, kterou se chceme naučit, by měla zahrnovat složení několika jednodušších funkcí. To lze interpretovat z hlediska reprezentace učení tak, že říkáme, že věříme, že problém učení spočívá v objevení souboru základních variačních faktorů, které lze zase popsat pomocí jiných, jednodušších základních variačních faktorů.
Domnívám se, že současná „shoda“ spočívá v tom, že jde o kombinaci odrážek č. 1 a # 3: pro úkoly v reálném světě je hluboká architektura často prospěšná a mělká architektura by bylo neúčinné a vyžadovalo by pro stejný výkon mnohem více neuronů.
Ale zdaleka to nebylo prokázáno. Zvažte např. Zagoruyko a Komodakis, 2016, Wide Residual Networks . Zbytkové sítě s více než 150 vrstvami se objevily v roce 2015 a vyhrály různé soutěže o rozpoznávání obrázků. To byl velký úspěch a vypadalo to jako přesvědčivý argument ve prospěch hloubky; zde je jedna číslice z prezentace prvního autora na zbytkovém síťovém článku (všimněte si, že zde je čas matoucí doleva):
Ale výše uvedený článek ukazuje, že „široký „zbytková síť s„ pouze “16 vrstvami může překonat„ hluboké “vrstvy s více než 150 vrstvami. Pokud je to pravda, pak se celý bod výše uvedeného obrázku rozpadne.
Nebo zvažte Ba a Caruana, 2014, Do Deep Nets Really Need to be Hluboko? :
V tomto článku poskytujeme empirické důkazy o tom, že mělké sítě jsou schopné naučit se stejné funkci jako hluboké sítě a v některých případy se stejným počtem parametrů jako hluboké sítě. Děláme to tak, že nejprve procvičíme nejmodernější hluboký model a poté procvičíme mělký model, který napodobí hluboký model. Mimický model se trénuje pomocí schématu komprese modelu popsaného v následující části. Je pozoruhodné, že s kompresí modelu jsme schopni trénovat mělké sítě tak, aby byly stejně přesné jako některé hluboké modely, i když nejsme schopni trénovat tyto mělké sítě tak, aby byly stejně přesné jako hluboké sítě, když jsou mělké sítě cvičeny přímo na originálu označené tréninkové údaje. Pokud se mělká síť se stejným počtem parametrů jako hluboká síť může naučit napodobovat hlubokou síť s vysokou věrností, pak je jasné, že funkce naučená touto hlubokou sítí nemusí být hluboká.
Je-li pravda, znamená to, že správné vysvětlení je spíše moje odrážka č. 2, a nikoli č. 1 nebo č. 3.
Jak jsem řekl – – nikdo ještě přesně neví.
Závěrečné poznámky
Míra pokroku dosaženého v hluboké učení za posledních ~ 10 let je skutečně úžasné, ale většiny tohoto pokroku bylo dosaženo metodou pokusů a omylů a stále nám chybí základní znalosti o tom, co přesně umožňuje, aby hluboké sítě fungovaly tak dobře. Dokonce i seznam věcí, které lidé považují za zásadní pro vytvoření efektivní hluboké sítě, se zdá každých pár let měnit.
Renesance hlubokého učení začala v roce 2006, kdy Geoffrey Hinton (který pracoval na neurální sítě po více než 20 let bez velkého zájmu ze strany kohokoli) zveřejnilo několik průlomových článků nabízejících efektivní způsob trénování hlubokých sítí ( Science paper , Neurální výpočetní papír ). Trik spočíval v použití bezobslužného předběžného tréninku před zahájením klesání. Tyto dokumenty způsobily revoluci v oboru a po několik let si lidé mysleli, že klíčem je bezobslužné předškolení.
Poté v roce 2010 Martens ukázal, že hluboké neurální sítě lze trénovat metodami druhého řádu (tzv. hesenskými metodami) a mohou překonat sítě trénované předběžným tréninkem: Hluboké učení pomocí hesenské optimalizace . Pak v roce 2013 Sutskever a kol. ukázal, že stochastický sestup gradientu s některými velmi chytrými triky může překonat hesenské metody: O důležitosti inicializace a hybnosti v hlubokém učení . Kolem roku 2010 si také lidé uvědomili, že použití usměrněných lineárních jednotek namísto sigmoidních jednotek je pro gradientní sestup obrovský rozdíl. Vyřazení se objevilo v roce 2014. Zbytkové sítě se objevily v roce 2015. Lidé stále přicházejí s stále účinnějšími způsoby, jak trénovat hluboké sítě a to, co se před 10 lety zdálo jako klíčový náhled, se často považuje za nepříjemnost dnes. Vše je z velké části poháněno metodou pokusů a omylů a je málo pochopení toho, díky čemu některé věci fungují tak dobře a některé další věci ne. Cvičení hlubokých sítí je jako velká taška triků. Úspěšné triky jsou obvykle racionalizovány post factum.
Ani nevíme, proč hluboké sítě dosahují platforem výkonu; pouhých 10 let lidé obviňovali místní minima, ale současná myšlenka je, že o to nejde (když jsou plošiny pro vystoupení, přechody mají tendenci zůstat velké.) Toto je taková základní otázka o hlubokých sítích a my ani toto nevíme.
Aktualizace: Toto je víceméně téma diskuse Ali Rahimi o NIPS 2017 o strojovém učení jako alchymii: https://www.youtube.com/watch?v=Qi1Yry33TQE .
[Tato odpověď byla zcela přepsána v dubnu 2017, takže některé níže uvedených komentářů již neplatí.]
Komentáře
- Pěkná odpověď! 1) Jak již zmínil @Nicolas, Ukázalo se, že existuje věta ( en.wikipedia.org/wiki/Universal_approximation_theorem ), která tvrdí, že předávací neurální n Síť s jedinou skrytou vrstvou a konečným počtem neuronů může aproximovat jakoukoli spojitou funkci (včetně DNN) na jednotkové hyperkrychli. Tvrdí se, že tento výsledek je nezávislý na volbě aktivační funkce. 2) Nejsem si jistý, zda je vaše poslední poznámka (tj. Že se Hinton připojil ke Google) relevantní pro nedávný úspěch DNN; Hinton se ke Google připojil dlouho poté, co se DNN staly epidemií!
- Možná ‚ používáme terminologii odlišně. Perceptrony nemají ‚ skrytou vrstvu – jejich vstupem jsou data, jejich výstupem je klasifikace. Vícevrstvá síť se skládá z bandy perceptronů propojených tak, že výstup z vrstvy $ n-1 $ tvoří vstup do vrstvy $ n $. Síť s jedinou skrytou vrstvou má tedy tři vrstvy (vstupní, skrytá, výstupní). Tato skrytá vrstva je klíčem k univerzální aproximaci: perceptrony, které ji nemají, nemohou ‚ vypočítat věci jako XOR, ale vícevrstvé sítě ano.
- Linearita věc vypadá jako kombinace dvou čísel. Perceptrony mohou počítat pouze hranice lineárního rozhodování – mohou rozdělit dvě třídy pouze přímkami. Vícevrstvé sítě mohou “ kreslit “ složitější hranice. Ale ani perceptrony ani vícevrstvé sítě nepoužívají lineární aktivační funkce, s výjimkou výstupní vrstvy vícevrstvé sítě. Funkce aktivace perceptronu je heaviside (1, pokud x > 0, 0 jinak); vícevrstvé sítě často používají sigmoidy, ale omezení univerzálních cca. jsou docela mírné: nekonstantní, ohraničené a monotónně rostoucí.
- @amoeba skvělá odpověď, obrázek na začátku mě trochu odradil, abych si přečetl zbytek, ale bylo to k tomu nejlepšímu. Perceptron je protějškem lineární regrese pro klasifikaci, a proto když lidé místo řešení online (sgd) používají řešení v uzavřené formě (pseudoinverzní), ‚ s názvem Logistická regrese, kvůli logistice (sigmoidní funkce) = perceptron. Perceptronová / logistická regrese může pouze ‚ nakreslit ‚ hranice lineárního rozhodování a to ‚ s proč se to ‚ nazývá lineární.
- Avšak vícevrstvý perceptron (to, co jste nakreslili na prvním obrázku vlevo), může kombinovat několik takových lineárních rozhodnutí hranice a může tak rozdělit prostor k vyřešení (nelineárního) problému XOR, jako je zmínka @Matt. Takže mnoho mnoha kombinovaných hranic lineárního rozhodování může vytvořit kruh, například pokud mžouráte očima. Záleží na tom, jak si o tom myslíte – rozhodnutí je stále lineární ve vyšším prostoru, pokud jste obeznámeni s jádry, je to ‚ něco stejného.
Odpověď
Zatím dobrá odpověď, i když existuje spousta věcí, o kterých se tady nikdo nezmínil, tady je moje 0,02 $
Odpovím pouze formou příběhu, mělo by to udělat věci zábavnějšími a jasnějšími. Tldr zde není. V tomto procesu byste měli být schopni pochopit, v čem je rozdíl.
Existuje několik důvodů, proč DNN zažehly, když to udělaly (hvězdy se musely sladit, stejně jako všechny podobné věci, je to jen správná věc místo, správný čas atd.)
Jedním z důvodů je dostupnost dat, spousta dat (označená data). Pokud chcete mít možnost zobecnit a naučit se něco jako „generické priority“ nebo „univerzální priority“ „(aka základní stavební kameny, které lze znovu použít mezi úkoly / aplikacemi), potřebujete spoustu dat. A ještě divoká data, mohu dodat, ne sterilní datové sady pečlivě zaznamenané v laboratoři s kontrolovaným osvětlením a všemi. Mechanické Turk to umožnil (označování).
Zadruhé, možnost trénovat větší sítě rychleji pomocí GPU umožnila rychlejší experimentování. Jednotky ReLU také urychlily výpočty a poskytly jejich regularizaci, protože bylo potřeba použít více jednotek v jedna vrstva, aby bylo možné komprimovat stejné informace, protože vrstvy byly nyní více nosníky e, takže to také šlo pěkně s výpadkem. Pomohli také s důležitým problémem, ke kterému dochází, když skládáte více vrstev. Více o tom později. Různé více triků, které zlepšily výkon. Stejně jako použití minidávek (což ve skutečnosti škodí konečné chybě) nebo konvolutů (které ve skutečnosti nezachycují tolik odchylek jako místní receptivní pole), ale jsou výpočetně rychlejší.
Mezitím lidé debatovali pokud se jim líbily hubenější nebo baculatější, menší nebo vyšší, s pihami nebo bez nich, atd. Optimalizace byla jako šumí nebo to bouchne, takže výzkum směřoval ke složitějším metodám výcviku, jako je metoda konjugovaného gradientu a newtonů, nakonec všichni si uvědomili, že není žádný oběd zdarma. Sítě se řítily.
Zpomalil to problém mizející přechod . Lidé vypadali jako: whoa, to je daleko, chlape! Stručně řečeno to znamená, že bylo těžké upravit chybu ve vrstvách blíže ke vstupům. Jak přidáváte další vrstvy na dort, je to příliš kolísavé. t zpětné šíření smysluplné chyby zpět do prvních vrstev. Čím více vrstev, tím horší to bylo. Bummer.
Někteří lidé zjistili, že použití křížové entropie jako funkce ztráty (opět klasifikace a rozpoznávání obrazu) poskytuje určitou regularizaci a pomáhá proti nasycení sítě a následně přechodu to se nepodařilo dobře skrýt.
Co také umožnilo, bylo předškolení na jednotlivé vrstvy pomocí metod bez dozoru. V zásadě si vezmete spoustu automatických kódovačů a naučíte se stále méně abstraktní reprezentace zvýšíte kompresní poměr. Váhy z těchto sítí byly použity k inicializaci supervizované verze. Tím se problém s mizejícím gradientem vyřešil jiným způsobem: již začínáte trénink pod dohledem z mnohem lepší počáteční polohy. Všechny ostatní sítě tedy vstaly a začaly se vzbouřit. Sítě ale stejně potřebovaly dohled, jinak nebylo možné udržet velká data v klidu.
Teď, u poslední části, která nakonec nějakým způsobem vede k vaší odpovědi, která je příliš složitá na to, abych to dala ve zkratce: proč více vrstev a ne jen jedna. Protože můžeme! a protože deskriptory kontextu a neměnných funkcí. a fondy.
Zde je příklad: máte datovou sadu obrázků, jak chcete pomocí těchto dat trénovat plán NN? Naivně si vezmeme každý řádek a spojíte to do jednoho dlouhého vektoru a to je váš vstup. Co se naučíte?Některé fuzzy nesmyslové funkce, které nemusí vypadat jako nic, kvůli mnoha různým typům odchylek, které objekty v obraze obsahují, a vy nejste schopni rozlišit mezi relevantními a nepodstatnými věcmi. A v určitém okamžiku musí síť zapomenout, aby se mohla znovu naučit nové věci. Takže je tu problém s kapacitou. Jedná se o více nelineární dynamiku, ale intuice spočívá v tom, že musíte zvýšit počet neuronů, abyste mohli do své sítě zahrnout více informací.
Takže bod je to, že pokud obrázek zadáte pouze jako jeden kus, přidání dalších vrstev pro vás příliš neudělá, protože se nedokážete naučit abstrakce , což je velmi důležité. Dělat věci holisticky tedy nefunguje tak dobře, pokud neděláte se sítí jednodušší věci, jako je zaměření na konkrétní typ objektu, takže se omezíte na jednu třídu a jako cíl klasifikace si vyberete některé globální vlastnosti.
Takže co tam dělat? Podívejte se na okraj obrazovky a zkuste přečíst tento text. Problém? Jakkoli to zní hloupě, musíte se podívat na to, co čtete. Jinak je to příliš nejasné / není dostatečné rozlišení / granularita. Pojďme nazvat oblast zaostření receptivním polem. Sítě musí být také schopné soustředit se. V zásadě namísto použití celého obrazu jako vstupu přesunete posuvné okno podél obrázku a poté jej použijete jako vstup do sítě (o něco méně stochastické než to, co dělají lidé). Nyní máte také šanci zachytit korelace mezi pixely a tudíž objekty a můžete také rozlišovat mezi ospalou kočkou sedící na pohovce a vzhůru nohama kočičí bungee jumping. Čistý, víra v lidstvo obnovena. Síť se může naučit místní abstrakce v obraze na více úrovních. Síť se naučí filtry, zpočátku jednoduché, a poté se na nich staví, aby se naučila složitější filtry.
Takže shrnout věci: receptivní pole / konvoluce, bezkontaktní inicializace, opravené lineární jednotky, výpadek nebo jiná regularizace metody. Pokud to myslíte opravdu vážně, doporučuji vám podívat se na Schmidhuberovo Hluboké učení v neuronových sítích: Přehled zde je adresa URL předtisku http://arxiv.org/abs/1404.7828
A pamatujte: velké učení, hluboká data. Word.
Komentáře
- Ahoj Florin, děkuji za pěknou odpověď! Líbí se mi styl psaní. Když mluvíš o posuvných oknech, odkazuješ na to, jak konvoluční vrstvy konvoluční NN pozorují různé části obrazu a projektu jejich aktivace v prostoru nižší dimenze?
- ano, víry nejsou nutné, ale ‚ jsou výpočetně rychlejší, protože váhy jsou omezené. zkontrolovat v tomto článku, kde ‚ t nepoužívají konvoluce a nepoužívají místní receptivní pole. důležitá klíčová slova jsou místní / hierarchická: arxiv.org /pdf/1112.6209.pdf
- také si myslím, že nejbližší systematická odpověď je sobi ‚ s. ‚ získal můj souhlas. právě jsem sem a tam přidal několik dalších věcí s trochou soli a pepře.
Odpověď
V Laicky řečeno, hlavní rozdíl oproti klasickým Neuronovým sítím spočívá v tom, že mají mnohem více skrytých vrstev.
Myšlenkou je přidat do vrstev štítky, které vytvoří několik vrstev abstrakce:
Například hluboká neurální síť pro rozpoznávání objektů :
- Vrstva 1: jednotlivé pixely
- Vrstva 2: Hrany
- Vrstva 3: Formy (kruhy, čtverce)
- Vrstva n: Celý objekt
Najdete dobré vysvětlení k této otázce v Quora .
A pokud vás toto téma zajímá, doporučuji se na to podívat kniha .
Komentáře
- Děkuji David, ale ne ‚ Opravdu nevidím, jak to jen přidat štítky, aby to bylo jiné. Také si pamatuji, že byl těžký problém pochopit a rozložit, jak byla funkce kódována neurální sítí. Musí existovat něco jiného, než jen mít více vrstev. Pokud jde o příklad, který jste uvedli, domnívám se, že můžete trénovat neuronové sítě jednotlivě (staré školy), abyste mohli provádět každý z úkolů.
- Síla přichází, když ji použijete jako kanál, takže vstupy a výstupy z vrstev vrstev na každé vrstvě.
- Četl jsem váš první odkaz, který je dobrým zdrojem, a další související otázky týkající se quora a se, nicméně příklad, který jste uvedli, se nezdá přesný s tím, co jsem číst. ‚ Pokusím se odpovědět na svou vlastní otázku a shrnout četby těchto prací.
- Navzdory tomu, že je ukázaný zdroj zajímavý, aktuální odpověď na otázku neodpovídá.
- Můžete poukázat na příklad, kde jsou vrstvy označeny (jinak než čistě popisně)?Je jistě pravda, že se skryté vrstvy v každé skryté vrstvě zdají postupně složitějšími funkcemi, ale zdá se, že “ přidání štítků “ znamená, že ‚ k tomu je speciálně vyškolen.
Odpověď
NN:
- stačí jedna skrytá vrstva, ale přesto může mít více vrstev, seřazeno zleva doprava (model: feed forward NN)
- trénováno pouze pod dohledem (zpětná propagace )
- je-li použito více vrstev, trénujte všechny vrstvy současně (stejný algoritmus: backpropagation), více vrstev ztěžuje použití, protože chyby jsou příliš malé
- těžké porozumět tomu, co se učí na každé vrstvě
DNN:
- je zapotřebí více vrstev, neorientované hrany (model: omezený stroj Boltzman)
- nejprve proškoleni bez dozoru, kde se sítě učí relevantní funkce tím, že se učí reprodukovat svůj vstup , poté vyškoleni pod dohledem, který jemně vyladí funkce, aby bylo možné klasifikovat
- trénovat vrstvy jednu po druhé ze vstupní do výstupní vrstvy (algoritmus: kontrastní divergence)
- každou vrstvu jasně obsahuje rysy zvyšující abstrakce
Přechod na DNN je způsoben třemi nezávislými průlomy, ke kterým došlo v roce 2006.
Pokud jde o věty o NN, ta, na kterou se zmiňuje otázka, je :
- Věta o univerzální aproximaci nebo Cybenkova věta: neuronová síť s dopřednou vazbou s jedinou skrytou vrstvou může aproximovat jakoukoli spojitou funkci. V praxi to však může vyžadovat mnohem více neuronů, pokud se použije jedna skrytá vrstva.
Komentáře
- -1? Opravdu? To vše jsem četl v literatuře a provedl jsem bod po bodu srovnání obou přístupů! Uveďte prosím alespoň to, co není správné …
- Nepodporoval jsem (možná se downvoterovi nelíbilo, že jste odpověděli na svou vlastní otázku? Ale to je samozřejmě naprosto v pořádku), ale tady je jeden věc, která není úplně správná. To, co uvedete jako vlastnosti DNN: že hrany jsou neorientované, že ‚ je nejprve trénováno bez dozoru, že jsou vrstvy trénovány jedna po druhé – to vše pouze odkazuje k sítím hlubokého vyznání navrženým Hintonem v roce 2006. To neplatí nutně pro hluboké neurální sítě obecně a ve skutečnosti nyní existuje mnoho způsobů, jak trénovat hlubokou síť bez toho všeho. Viz moje odpověď.
Odpověď
Na začátku jsem byl také trochu zmaten rozdílem mezi neuronové sítě (NN) a hluboké neuronové sítě (DNN), ale „hloubka“ odkazuje bohužel pouze na počet parametrů &. Můžete to brát jako nějaký druh re – značka pod takzvanou „kanadskou mafií“.
Před několika lety jsem měl také Neural Networks jako součást třídy a pomocí NN jsme prováděli rozpoznávání číslic, aproximaci vln a podobné aplikace. měl několik skrytých vrstev a výstupů a veškerý ten jazz, který DNN má. Co jsme však tehdy neměli, byla výpočetní síla.
Důvodem, proč byl přechod na DNN možný a žádoucí, je pokrok ve vývoji hardwaru. Jednoduše řečeno, nyní můžeme počítat více, rychleji a více paralelně (DNN na GPU), zatímco dříve byl čas překážkou pro NN.
Jak je uvedeno na stránce Wikipedie pro Deep Učení , „hluboká“ část se týká hlavně toho, že funkce interagují nelineárním způsobem na více vrstvách, a proto provádějí extrakci a transformaci funkcí. To bylo také provedeno ve standardních NN, ale v menším měřítku.
Na stejné stránce zde máte definici „Hluboká neurální síť (DNN) je umělá neurální síť (ANN) s více skrytými vrstvami jednotek mezi vstupní a výstupní vrstvou.“
Komentáře
- Ahoj Mttk, děkuji za tvou odpověď, vrhlo to na tuto otázku více světla. Pokud jde o tvůj poslední bod, ano, strukturálně je velmi snadné vysvětlit rozdíl (1 vs. více vrstev), ale rozdíl v na tom, jak se tyto více vrstev používají, se zdá být důležité a je to mnohem méně jasné. Proto jsem otázku nesoustředil na strukturu ..
- Upřímně řečeno, ne ‚ nesouhlasím s poslední definicí, na kterou jsem odkazoval – protože ANN / NN s jednou skrytou vrstvou nejsou opravdu efektivní a pro jakýkoli druh složitější predikce jste potřebovali více (I ‚ m říkám to, protože si myslím, že DNN bylo zbytečné přidané módní slovo na již dobrý termín, NN). Myslím, že můžete použít NN a DNN zaměnitelně (protože v dnešní době nikdo nepoužívá NN ‚ s jedné skryté vrstvy), zatímco použití vrstev se u různých typů DNN s (CNN, RBM, RNN, LSTM, CW-RNN, …) a ne myšlenka samotné DNN.
Odpověď
Pokud vím, dnešní DNN (Deep Neural Network) nemá nic zásadního nebo se filozoficky liší od starého standardu Neural Network (NN). I když teoreticky lze aproximovat libovolný NN pomocí mělkého NN s pouze jednou skrytou vrstvou, toto však není znamená, že obě sítě budou fungovat podobně, když budou trénovány pomocí stejného algoritmu a tréninkových dat. Ve skutečnosti roste zájem o výcvik mělkých sítí, které fungují podobně jako hluboké sítě. Způsob, jakým se to dělá, je však nejprve trénovat hlubokou síť a poté trénovat mělkou síť, aby napodobil konečný výstup (tj. Výstup předposlední vrstvy) hluboké sítě. Podívejte se, díky čemuž jsou hluboké architektury příznivé, je to, že dnešní tréninkové techniky (zpětné šíření) fungují lépe, když jsou neurony uspořádány v hierarchické struktuře.
Další otázka, kterou si můžete položit, je: proč Neural Sítě (zejména DNN) se staly tak populárními najednou. Podle mého chápání jsou magické přísady, díky nimž jsou DNN v poslední době tak populární, následující:
A. Vylepšené datové sady a možnosti zpracování dat
1. Byly k dispozici rozsáhlé datové sady s miliony různorodých obrázků
2. Rychlá implementace GPU byla zpřístupněna veřejnosti
B. Vylepšené tréninkové algoritmy a síťové architektury
1. Rektifikované lineární jednotky (ReLU) namísto sigmoidu nebo tanh
2. Hluboké síťové architektury se v průběhu let vyvíjely
A-1) Alespoň donedávna v Computer Vision jsme nemohli trénovat modely na milionech označených obrázků; jednoduše proto, že označené datové sady této velikosti neexistovaly. Ukazuje se, že kromě počtu obrázků je zrnitost sady štítků také velmi zásadním faktorem úspěchu DNN (viz obrázek 8 v tomto příspěvku , autor: Azizpour et al.).
A-2) Bylo vynaloženo značné technické úsilí šlo o to, aby bylo možné trénovat DNN, které fungují dobře v praxi, zejména s příchodem implementací GPU. Jedna z prvních úspěšných implementací GPU DNN, běží na dvou paralelních GPU; přesto trvá trénink DNN na 1,2 milionu obrázků z 1000 kategorií pomocí špičkových GPU přibližně týden (viz tento článek, autorů Krizhevsky et al.) .
B-1) Použití jednoduchých usměrňovaných lineárních jednotek (ReLU) namísto sigmoidu a funkce tanh je pravděpodobně největším stavebním kamenem umožňujícím výcvik DNN. Všimněte si, že funkce sigmoid i tanh mají téměř nulový gradient téměř všude, v závislosti na tom, jak rychle přecházejí z nízké aktivační úrovně na vysokou; v krajním případě, když je přechod náhlý, dostaneme krokovou funkci, která má sklon nula všude kromě jednoho bodu, kde k přechodu dojde.
B-2) Příběh o tom, jak se architektury neuronových sítí vyvíjely v průběhu let, mi připomíná, jak evoluce mění strukturu organismu v přírodě. Sdílení parametrů ( např. v konvolučních vrstvách), regularizace předčasného ukončení, inicializace, plán rychlosti učení, prostorové sdružování, dílčí vzorkování v hlubších vrstvách a mnoho dalších triků, které jsou nyní ve školení DNN považovány za standardní , byly vyvinuty, vyvinuty, skončí v průběhu let na míru, aby bylo možné trénovat hluboké sítě tak, jak je to dnes.
Komentáře
- +1. První odpověď v toto vlákno, které poskytuje adekvátní odpověď na otázky OP ‚. Mnoho dobrých bodů zde. Moje jediná hlavní poznámka by byla, že kromě vašich A a B, th Je zde také C: Masivní nárůst velikosti dostupných tréninkových datových sad. To se zdá být přinejmenším stejně důležité jako A a B.
- Nemyslím si ‚ že relu je tak důležitý: Papír Alexe Križevského tvrdil, že ho to naučilo až 6krát rychlejší. Většina ostatních změn struktury sítě, které zmiňujete, se týká konvolučních nns, které kopírují pouze standardní kanály zpracování obrazu (dobrá věc, ale žádné nové poznatky)
- @amoeba: velikost datové sady je pod A. I aktualizoval text, aby jej zvýraznil.
- @ seanv507: při psaní odpovědi jsem měl na mysli konvoluční sítě (ConvNets). Pokud mi chyběly další důležité faktory (nesouvisející s ConvNets), ocenil bych, kdybyste je zmínil. Rád bych odpovídajícím způsobem aktualizoval svoji odpověď.Pokud jde o ReLU, trénink nns s tanh a sigmoidem je podstatně těžší než s ReLU kvůli problému mizejících přechodů: jednotky se snadno nasytí a jakmile k tomu dojde, trvá jim dlouho, než se znovu stanou nenasycenými (přechody jsou velmi malé, když je nasycený)
Odpověď
Rozdíl mezi „hlubokým“ NN a standardním NN je čistě kvalitativní: neexistuje žádná definice toho, co to znamená „Hluboká“. Výraz „hluboký“ může znamenat cokoli od extrémně sofistikovaných architektur, které používají Google, Facebook a další, které mají 50–80 nebo i více vrstev, až po 2 skryté vrstvy (celkem 4 vrstvy). Nebylo by mě překvapilo, kdybyste dokonce našli články, které tvrdí, že se učí hluboko, s jedinou skrytou vrstvou, protože „hluboký“ neznamená mnoho.
„Neuronová síť“ je také slovo, které „Nemají velmi přesný význam. Pokrývá extrémně velký soubor modelů, od náhodných boltzmanských strojů (což jsou neorientované grafy) až po dopředné architektury s různými aktivačními funkcemi. Většina NN bude proškolena pomocí backpropu, ale nemusí je pravda, že ani tréninkové algoritmy nejsou příliš homogenní.
Celkově se hluboké učení, hluboké NN a NN staly všestrannými slovy, která zachycují množství přístupů.
Dobré úvodní odkazy na téma „co se změnilo“: Deep Learning of Representations: Look Forward , Bengio, 2013 je dobrá recenze + perspektiva do budoucna. Viz také Musí být hluboké sítě opravdu hluboké? Ba & Caruana, 2013, které ilustrují hluboké nemusí nemusí být užitečné pro reprezentaci, ale pro učení.
Komentáře
- Odkazy, které uvedete, jsou velmi užitečné , ale zbytek odpovědi v aktuální podobě (který zní jako “ NN neznamená nic, DNN neznamená nic, NN a DNN mohou dělat spoustu věcí „) nic moc, uvažovali byste o jeho revizi?
odpověď
Abychom rozšířili odpověď Davida Gasqueze, jedním z hlavních rozdílů mezi hlubokými neuronovými sítěmi a tradičními neuronovými sítěmi je to, že nepoužíváme backpropagation pro hluboké neurální sítě.
Proč? Protože backpropagation trénuje pozdější vrstvy efektivněji, než trénuje dřívější vrstvy – jak postupujete v síti dříve a dříve, chyby se zmenšují a rozptýlí. Desetivrstvá síť tedy bude v zásadě sedm vrstev náhodných vah následovaných třemi vrstvami přizpůsobených vah a bude fungovat stejně dobře jako třívrstvá síť. Další informace najdete zde .
Takže koncepční průlom zachází se samostatnými problémy (označenými vrstvami) jako se samostatnými problémy – pokud nejprve zkuste vyřešit problém s vytvořením obecně dobré první vrstvy a poté se pokuste vyřešit problém s vytvořením obecně dobré druhé vrstvy, nakonec budeme mít hluboký prostor funkcí, který můžeme použít pro náš skutečný problém.
Odpověď
Nechtěl bych říci, že existuje nějaký velký filozofický rozdíl mezi NN a DNN (ve skutečnosti bych řekl, že DNN je jen marketing výraz odlišit od „neúspěšného“ NN). Co se změnilo, je velikost souborů dat. Neuronové sítě jsou v zásadě v současnosti nejlepšími statistickými odhady $ O (n) $, které dobře fungují pro velkorozměrné velké datové sady (např. Imagenet).
Myslím, že byste měli ustoupit a podívat se, že tím došlo mělká AI – např pytel slov pro analýzu sentimentu a další jazykové aplikace a vizuální balíček slov byl předním přístupem k rozpoznávání obrázků před DNN. Nikdo neříká, že pytel slov je opravdovým modelem jazyka, ale je to efektivní technické řešení. Řekl bych tedy, že DNN jsou lepší „vizuální balíčky slov“ – viz např. Szegedy a kol. 2013 Zajímavé vlastnosti neuronových sítí a Nguyen et al. Deep Neural Networks Easily Fooled: High Confidence Predictions for Unrecognizable Images , kde je jasné, že se nenaučí žádné struktury vyššího řádu atd. DNN).
Komentáře
- @amoeba tento další příspěvek je téměř doprovodným příspěvkem k prvnímu (opět se spoustou obrázků!)
Odpověď
Chcete-li odpovědět na druhou otázku, podívejte se na tento příspěvek od Telgarsky který říká, že pro určitý problém s klasifikací „všechny mělké sítě s méně než exponenciálně (v k) vykazují mnoho uzlů chybu alespoň 1/6, zatímco hluboká síť se 2 uzly v každé z 2k vrstev dosahuje nulové chyby.“
Dotyčný problém s klasifikací je problém s n-střídavým bodem, ve kterém uvažujeme o intervalu $ [0,1-2 ^ {- k}] $ , takže vstup $ x_i $ jsou $ 2 ^ k $ rovnoměrně rozložené body v tento interval a odpovídající $ y_i $ jsou dány $ y_i = 1 $ if $ i $ je liché a $ y_i = 0 $ pokud $ i $ je sudé. Poté se ptáme, jak dobře mohou mělké sítě bez exponenciálních šířek zachytit tento vztah ve srovnání s hlubokými sítěmi s pouhými dvěma uzly v každé vrstvě? V zásadě můžeme data lépe aproximovat (přesně sudě) lineárním ( v $ k $ ) počet vrstev s pouhými dvěma uzly v každé vrstvě, zatímco bychom potřebovali exponenciálně mnoho (v $ k $ ) uzly k dosažení stejného výsledku v mělké síti.
Důkaz citace zahrnuje povšimnutí, že složení nelineárních aktivací aplikovaných na afinní transformace (tj. s větším počtem vrstev) dokáže zachytit větší variabilitu v datech než součet těchto stejných funkcí (jako když přidáváme uzly do vrstev).
Odpověď
Deep Learning je sada algoritmů strojového učení, které pokusit se modelovat abstrakce na vysoké úrovni v datech pomocí architektur složených z více nelineárních transformací .
Zdroj: Arno Candel
Napsat komentář