Mi a különbség a neurális hálózat és a mély neurális hálózat között, és miért működnek jobban a mélyek?
On december 22, 2020 by adminNem láttam a kérdést pontosan megfogalmazva, ezért teszek fel egy új kérdést.
Amit érdekel, nem az idegháló meghatározása, hanem a mély neurális hálózattal való tényleges különbség megértése.
További kontextusért: Tudom, hogy mi az a neurális hálózat, és hogyan működik a szaporítás. Tudom, hogy egy DNN-nek több rejtett réteggel kell rendelkeznie. 10 évvel ezelőtt azonban az osztályban megtanultam, hogy több réteggel vagy egy réteggel (nem a bemeneti és a kimeneti rétegek számlálása) egyenértékű volt azon funkciók tekintetében, amelyeket egy neurális hálózat képes képviselni (lásd Cybenko “s univerzális közelítési tétel ), és hogy több réteg tette bonyolultabbá az elemzést a teljesítmény növekedése nélkül. Nyilvánvaló, hogy ez már nem így van.
Feltételezem, talán tévesen, hogy a különbségek a képzés algoritmusában és tulajdonságaiban vannak, nem pedig a struktúrában, ezért Nagyon örülnék, ha a válasz aláhúzná azokat az okokat, amelyek lehetővé tették a DNN-re való áttérést (pl. Matematikai bizonyítás vagy véletlenszerű lejátszás a hálózatokkal?) és kívánatos (pl. a konvergencia sebessége?)
megjegyzések
- FYI: Mennyire igaz ez a dián a mély tanulás során?
- Ha a közelíteni kívánt függvény kompozíciós függvény (a képfeldolgozásban gyakori és sok természetes tartományok a fizika törvénye miatt). Bizonyítható, hogy a mély hálózatok ki tudják használni ezt a kompozíciót, és ugyanolyan szintű közelítési hibát érhetnek el exponenciálisan kevesebb idegsejtszámmal (összehasonlítva az egyetlen rejtett rétegű hálózattal). Hiv .: Poggio, Tomaso és mtsai. ” Miért és mikor kerülhetik el a mély, de nem sekély hálózatok a dimenzió átkát: áttekintés. ” International Journal of Automation and Computing (2017)
- Érdemes megnéznie ezt a cikket
- Lásd: arxiv.org/pdf/2004.06093.pdf
Válasz
Kezdjük egy triviliatiával: A mély neurális hálózat egyszerűen egy előremenő hálózat, sok rejtett réteggel.
Nagyjából ennyit kell mondani a definícióról. Az ideghálózatok lehetnek visszatérőek vagy előrehozhatóak; az előremenő hálózatok nem tartalmaznak hurokokat a gráfjukban, és rétegekbe rendezhetők. Ha “sok” réteg van , akkor azt mondjuk, hogy a hálózat mély .
Hány sok rétegnek kell lennie egy hálózatnak ahhoz, hogy mélynek minősüljön? Nincs határozott válasz erre (ez ” kicsit olyan, mintha megkérdezném, hány szem csinál halmot ), de általában két vagy több elrejtett réteg számít mélynek. Ezzel szemben a csak egyetlen rejtett réteget tartalmazó hálózatot szokás “sekélynek” nevezni. Gyanítom, hogy itt némi infláció megy végbe, és tíz év múlva az emberek azt gondolhatják, hogy bármi, mondjuk tíznél kevesebb, sekély és csak óvodai gyakorlatokra alkalmas. Informálisan a “deep” arra utal, hogy a hálózatot nehéz kezelni.
Íme egy illusztráció, átdolgozva innen :
De a valódi kérdés természetesen az, hogy miért lenne előnyös a sok réteg megléte?
Úgy gondolom, hogy a kissé meghökkentő válasz az, hogy igazából senki sem tudja. Van néhány gyakori magyarázat, amelyet az alábbiakban röviden áttekintek, de egyikük sem bizonyult meggyőzően igaznak, és nem is lehet biztos abban, hogy a sok réteg megléte valóban hasznos.
Azt mondom, hogy ez megdöbbentő, mert a mély tanulás hatalmas népszerűségnek örvend, minden évben megdönti az összes rekordot (a képfelismeréstől a Go lejátszásán át az automatikus fordításig stb.), az ipar megszokja stb. . És még mindig nem vagyunk egészen biztosak abban, miért működik ilyen jól.
Beszélgetésemet a Deep-re alapozom. Goodfellow, Bengio és Courville tanulás könyve, amely 2017-ben jelent meg, és széles körben a mély tanulásról szóló könyvnek tekinthető. (Az interneten szabadon elérhető.) A vonatkozó szakasz a 6.4.1 Univerzális közelítés tulajdonságai és mélysége .
Azt írta, hogy
10 évvel ezelőtt az osztályban megtanultam, hogy több réteg vagy egy réteg megléte (a bemeneti és kimeneti rétegeket nem számítva) egyenértékű azoknak a funkcióknak a tekintetében, amelyeket egy neurális hálózat képes képviselni […]
Utalnia kell az úgynevezett univerzális közelítési tételre , amelyet Cybenko 1989-ben, és különböző emberek által az 1990-es években általánosították. Alapvetően azt mondja, hogy egy sekély neurális hálózat (1 rejtett réteggel) közelíthet bármely funkcióhoz, azaz elvileg bármit megtanulhat . Ez igaz a különféle nemlineáris aktiválási funkciókra, ideértve a helyesbített lineáris egységeket, amelyeket a legtöbb idegi hálózat használ ma (a tankönyv hivatkozik erre az eredményre Leshno et al. 1993 ).
Ha igen, akkor miért használ mindenki mélyhálót?
Nos, naiv válasz az, hogy jobban működnek. Itt van egy ábra a Deep Learning könyvből, amely megmutatja, hogy segít abban, hogy több réteg legyen egy adott feladatban, de ugyanaz a jelenség gyakran megfigyelhető a különböző feladatok és területek között:
Tudjuk, hogy egy sekély hálózat képes ugyanolyan jól teljesítenek, mint a mélyebbek. De nem így van; és általában nem. A kérdés — miért? Lehetséges válaszok:
- Lehet, hogy egy sekély hálózatnak több neuronra lenne szüksége, mint a mélyre?
- Talán egy sekély hálózatot nehezebb edzeni a jelenlegi algoritmusainkkal (pl. csúnyább helyi minimumok, vagy a konvergencia aránya lassabb, vagy bármi más)?
- Lehet, hogy egy sekély architektúra nem felel meg azoknak a problémáknak, amelyeket általában megpróbálunk megoldani (pl. az objektumfelismerés lényegi “mély” “, hierarchikus folyamat)?
- Még valami?
A Deep Learning könyv az 1. és a 3. pont felsorolásával érvel. Először is azzal érvel, hogy a sekély hálózat egységeinek száma a feladat bonyolultságával exponenciálisan növekszik. Tehát ahhoz, hogy egy sekély hálózat hasznos legyen, nagyon nagynak kell lennie; valószínűleg sokkal nagyobb, mint egy mély hálózat. Ez számos olyan dokumentumon alapul, amelyek bizonyítják, hogy a sekély hálózatoknak egyes esetekben exponenciálisan sok neuronra lenne szükségük; de hogy pl. Az MNIST besorolása vagy a Go play ilyen esetek nem igazán egyértelműek. Másodszor, a könyv ezt mondja:
A mély modell kiválasztása nagyon általános meggyőződést kódol, hogy a megtanulni kívánt funkciónak több egyszerűbb funkció összetételét kell magában foglalnia. Ez egy reprezentációs tanulási szempontból úgy értelmezhető, hogy azt gondoljuk, hogy a tanulási probléma egy olyan mögöttes variációs tényező felfedezéséből áll, amelyet más, egyszerűbb variációs tényezőkkel lehet leírni.
Úgy gondolom, hogy a jelenlegi “konszenzus” az, hogy az 1. és 3. pontok kombinációja: a valós feladatokhoz a mélyépítészet gyakran előnyös és sekély architektúra nem hatékony és sokkal több neuront igényelne ugyanahhoz a teljesítményhez.
De korántsem bizonyított. Fontolja meg pl. Zagoruyko és Komodakis, 2016, Széles maradék hálózatok . A több mint 150 rétegű hálózatok 2015-ben jelentek meg , és nyertek különböző képfelismerési versenyeket. Ez nagy siker volt, és meggyőző érvnek tűnt a mélység mellett; itt van egy ábra az első szerző előadásából a maradék hálózati papíron (vegye figyelembe, hogy az idő itt zavaróan balra megy):
De a fent hivatkozott cikk azt mutatja, hogy egy “széles A “csak” 16 réteggel rendelkező “maradék hálózat” felülmúlhatja a “mély” hálózatokat, több mint 150 réteggel. Ha ez igaz, akkor a fenti ábra teljes pontja lebomlik.
Vagy vegye fontolóra Ba és Caruana, 2014, a mély hálókat valóban meg kell Mély? :
Ebben a cikkben empirikus bizonyítékokat szolgáltatunk arról, hogy a sekély hálók képesek ugyanazt a funkciót megtanulni, mint a mély hálók, és egyesekben esetek azonos számú paraméterrel, mint a mélyhálók. Ezt úgy tesszük meg, hogy először egy korszerű mélymodellt képezünk ki, majd egy sekély modellt képezünk a mélymodell utánzására. A mimikai modellt a következő szakaszban leírt modelltömörítési sémával képezzük. Figyelemre méltó, hogy a modelltömörítéssel képesek vagyunk a sekély hálókat ugyanolyan pontosságra edzeni, mint néhány mély modellt, annak ellenére, hogy ezeket a sekély hálókat nem vagyunk képesek ugyanolyan pontosan kiképezni, mint a mélyhálókat, ha a sekély hálókat közvetlenül az eredetire gyakorolják felcímkézett képzési adatok. Ha egy sekély háló, ugyanannyi paraméterrel, mint a mély háló, megtanulhatja a mély hálót nagy hűséggel utánozni, akkor egyértelmű, hogy az adott mély háló által megtanult funkciónak nem igazán kell mélynek lennie.
Ha igaz, ez azt jelentené, hogy a helyes magyarázat inkább a 2. pontom, nem pedig az 1. vagy a 3. pont.
Mint mondtam – – még senki sem tudja biztosan.
Záró megjegyzések
A az elmúlt ~ 10 év mély tanulása valóban elképesztő, de ennek a fejlődésnek a legnagyobb részét kísérletekkel és hibákkal sikerült elérni, és még mindig nincs nagyon alapos megértésünk arról, hogy mitől pontosan a mély hálók ilyen jól működnek. Még az a lista is, amelyet az emberek döntő fontosságúnak tartanak a hatékony mélyhálózat kiépítéséhez, néhány évente változni látszik.
A mély tanulási reneszánsz 2006-ban kezdődött, amikor Geoffrey Hinton (aki idegsejteken dolgozott). hálózatok 20 éven keresztül, anélkül, hogy bárki különösebb érdeklődést mutatott volna rá) közzétett néhány áttörő cikket, amely hatékony módszert kínál a mély hálózatok képzésére ( tudományos cikk , Neurális számítási papír ). A trükk az volt, hogy a gradiens ereszkedés megkezdése előtt felügyelet nélküli előképzést kellett használni. Ezek a cikkek forradalmasították a területet, és pár évig az emberek azt gondolták, hogy a felügyelet nélküli előképzés a kulcs.
Aztán 2010-ben Martens megmutatta, hogy a mély neurális hálózatok másodrendű módszerekkel (ún. Hessian-mentes módszerekkel) oktathatók, és felülmúlhatják az előképzéssel képzett hálózatokat: Mély tanulás Hessian-mentes optimalizálás révén . Majd 2013-ban Sutskever et al. megmutatta, hogy a sztochasztikus gradiens süllyedés néhány nagyon okos trükkel felülmúlhatja a Hessian-mentes módszereket: Az inicializálás és a lendület fontosságáról a mély tanulásban . Ezenkívül 2010 táján az emberek rájöttek, hogy szignifikáns lineáris egységek használata sigmoid egységek helyett óriási különbséget jelent a gradiens süllyedésben. A lemorzsolódás 2014-ben jelent meg. A maradék hálózatok 2015-ben jelentek meg. Az emberek folyamatosan egyre hatékonyabb módszereket találnak a mély hálózatok kiképzésére, és gyakran figyelembe veszik a 10 évvel ezelőtti kulcsfontosságúnak tűnő ma kellemetlenség. Mindezt nagyrészt próba és hiba vezérli, és kevés a megértés arról, hogy egyes dolgok milyen jól működnek, más dolgok nem. A mély hálózatok képzése olyan, mint egy nagy trükk. A sikeres trükköket általában ésszerűsítik a post factum.
Azt sem tudjuk, miért érik el a mély hálózatok a teljesítmény-fennsíkot; csupán tíz évvel ezelőtt az emberek hibáztatták a helyi minimumokat, de a jelenlegi gondolkodás szerint ez nem a lényeg (amikor a fellépési fennsíkok, a színátmenetek általában nagyok maradnak). Ez egy olyan alapvető kérdés a mély hálózatokkal kapcsolatban, és még ezt sem tudjuk ezt .
Frissítés: Ez többé-kevésbé Ali Rahimi NIPS 2017-es gépi tanulásról szóló alkímia-beszélgetésének témája: “>
https://www.youtube.com/watch?v=Qi1Yry33TQE .
[Ezt a választ 2017 áprilisában teljesen átírtuk, így néhány az alábbi megjegyzések többé nem érvényesek.]
Megjegyzések
- Kedves válasz! 1) Amint azt @Nicolas is megemlítette, kiderül, hogy létezik egy tétel ( hu.wikipedia.org/wiki/Universal_approximation_theorem ), amely azt állítja, hogy egy előre irányított Az etwork egyetlen rejtett réteggel és véges számú idegsejttel közelíthet bármilyen folyamatos funkciót (beleértve a DNN-t is) az egység hiperkockáján. Ez az eredmény állítólag független az aktiválási függvény megválasztásától. 2) Nem vagyok biztos benne, hogy az utolsó megjegyzésed (azaz, hogy Hinton csatlakozott a Google-hoz) releváns-e a DNN-ek közelmúltbeli sikere szempontjából; Hinton jóval azután csatlakozott a Google-hoz, hogy a DNN-k járványokká váltak!
- Talán ‘ másként használjuk a terminológiát. A perceptronok don ‘ nem rendelkeznek rejtett réteggel – bemenetük adat, kimenete az osztályozás. A többrétegű hálózat egy csomó perceptronból áll, amelyek úgy vannak összekötve, hogy a $ n-1 $ réteg kimenete képezi a $ n $ réteg bemenetét. Az egyetlen rejtett réteggel rendelkező hálózatnak tehát három rétege van (bemenet, rejtett, kimenet). Ez a rejtett réteg az univerzális közelítés kulcsa: a perceptronok, amelyekből hiányzik, ‘ nem tudnak olyan dolgokat kiszámítani, mint az XOR, de a többrétegű hálózatok igen.
- A linearitás két kérdés kombinációjának tűnik. A perceptronok csak lineáris döntési határokat tudnak kiszámítani – csak két vonal felosztásához képes egyenes vonalakat húzni. A többrétegű hálózatok ” bonyolultabb határokat rajzolhatnak meg “. De sem a perceptronok, sem a többrétegű hálózatok nem használnak lineáris aktiválási funkciókat, kivéve a többrétegű hálózat kimeneti rétegében. A perceptron aktiválási függvény egy heaviside (1, ha x > 0, 0 egyébként); a többrétegű hálózatok gyakran használnak sigmoidokat, de az univerzális kb. elég enyheek: nem állandóak, korlátozottak és monoton növekednek.
- @amoeba remek válasz, a rajtnál lévő kép egyfajta kedvemre szolgált, hogy elolvassam a többit, de ez a legjobb volt. A perceptron a lineáris regresszió megfelelője a besoroláshoz, ezért, amikor az emberek online (sgd) módszerek helyett zárt formájú megoldást (pszeudoinverse) használnak a probléma megoldására, akkor ez s logisztikai regressziónak hívjuk, a logisztikai (sigmoid függvény) = perceptron miatt. A perceptron / logisztikai regresszió csak ‘ vonhat le ‘ lineáris döntési határokat, és ‘ s miért hívják lineárisnak ‘.
- Azonban a többrétegű perceptron (amit az első bal oldali képeden rajzoltál) több ilyen lineáris döntést kombinálhat határokat, és így fel tudja osztani a teret a (nem lineáris) XOR-probléma megoldásához, mint amilyen @Matt volt. Tehát sok sok kombinált lineáris döntési határ kört alkothat például, ha hunyorít a szemével. Attól függ, hogyan gondolkodik róla – a döntés továbbra is lineáris egy magasabb térben, ha ismeri a kerneleket, akkor ‘ ugyanaz a dolog.
Válasz
Eddig jó válasz, bár van néhány olyan dolog, amit itt senki nem említett, itt a 0.02 $
Csak egy történet formájában válaszolok, szórakoztatóbbá és világosabbá kell tennem a dolgokat. Itt nincs tldr. Ennek során képesnek kell lennie megérteni, mi a különbség.
Számos oka van annak, hogy a DNN-k akkor szikráztak, amikor megcsinálták (a csillagoknak igazodniuk kellett, mint minden hasonló dologhoz, ez is csak a helyes kérdés hely, megfelelő időpont stb.).
Ennek egyik oka az adatok, sok adat (címkézett adatok) rendelkezésre állása. Ha általánosítani és megtanulni szeretne valami olyasmit, mint a „generikus papok” vagy az „univerzális papok” “(más néven az alapvető építőelemek, amelyek újra felhasználhatók a feladatok / alkalmazások között), akkor sok adatra van szükséged. És vad adatokra, tegyem hozzá, nem steril adathalmazokra, amelyeket gondosan rögzítettek a laboratóriumban vezérelt világítással és mindennel. Mechanikus Turk ezt lehetővé tette (címkézés).
Másodszor, a nagyobb hálózatok gyorsabb képzésének lehetősége a GPU-k segítségével gyorsabbá tette a kísérletezést. A ReLU egységek számításilag is gyorsabbá tették a dolgokat, és biztosították azok rendszeresítését, mivel több egységet kellett használni egy réteg, hogy képes legyen ugyanazt az információt tömöríteni, mivel a rétegek mostantól inkább sparok voltak e, tehát a lemorzsolódással is jól ment. Ezenkívül segítettek egy fontos problémában, amely akkor fordul elő, amikor több réteget raksz egymásra. Erről később. Különböző több trükk, amelyek javították a teljesítményt. Mint például a mini-kötegek használata (ami valójában hátrányos a végső hibára nézve) vagy a konvolúciók (amelyek valójában nem képesek akkora eltérést elkapni, mint a helyi befogadó mezők), de számítási szempontból gyorsabbak.
Közben az emberek vitatkoztak ha tetszettek nekik soványabbak vagy ducibbak, kisebbek vagy magasabbak, szeplőkkel vagy anélkül, stb. mind rájöttek, hogy nincs ingyen ebéd. A hálózatok döcögtek.
Ami lelassította a dolgokat, az a eltűnő gradiens probléma volt. Az emberek úgy tettek, hogy: izé, ez messze van, ember! Dióhéjban ez azt jelenti, hogy nehéz volt a hibát beállítani a bemenetekhez közelebb eső rétegeken. Ha újabb rétegeket ad a tortára, túl ingatag lesz. Nem tudta ” t Az értelmes hibát vissza kell terjeszteni az első rétegekre. Minél több réteg, annál rosszabb lett. Bummer.
Néhány ember kitalálta, hogy a kereszt-entrópia veszteségfüggvényként történő használata (nos, megint a besorolás és a képfelismerés) valamiféle szabályozást biztosít, és segít a hálózat telítettségében, és a gradiensben. nem tudta ezt elrejteni.
Ami lehetővé tette a dolgokat, az a rétegenkénti előképzés is volt, felügyelet nélküli módszerekkel. Alapvetően egy csomó automatikus kódolót használ, és egyre kevésbé elvont ábrázolásokat tanul meg növeli a tömörítési arányt. Ezeknek a hálózatoknak a súlyait használták fel a felügyelt verzió inicializálásához. Ez egy másik módon oldotta meg az eltűnő gradiens problémát: máris sokkal jobb kezdő helyzetből kezdi a felügyelt edzést. Tehát az összes többi hálózat felállt és lázadni kezdett. De a hálózatoknak mindenképp felügyeletre volt szükségük, különben lehetetlen volt a nagy adatokat mozdulatlanul tartani.
Most, az utolsó részhez, amely végül valamiféle válaszhoz vezet, amely dióhéjban túl bonyolult: miért több réteg és nem csak egy. Mert megtehetjük! és mivel a kontextus és az invariáns tulajdonságleírók. és poolok.
Íme egy példa: van egy képkészleted, hogyan fogod az NN tervet betanítani az adatok felhasználásával? Nos, naivan minden egyes sort mondj, és összefűzöd egy hosszú vektorba, és ez a bemeneted. Mit tanulsz?Nos, néhány fuzzy nonszensz funkció, amely nem tűnhet semminek, a sokféle variancia miatt, amelyet a képen lévő objektumok tartalmaznak, és nem tudsz megkülönböztetni releváns és lényegtelen dolgokat. Egy bizonyos ponton a hálózatnak el kell felejtenie az új dolgok újratanulását. Tehát itt van a kapacitás kérdése. Ez inkább nemlineáris dinamika, de az az intuíció, hogy növelnie kell az idegsejtek számát, hogy több információt tudjon beépíteni a hálózatába.
Tehát a lényeg az, hogy ha csak egy darabként adja meg a képet, akkor az extra rétegek hozzáadása nem jelent túl sokat, mivel nem képes megtanulni absztrakciókat , ami nagyon fontos. A holisztikus dolgok így nem működnek olyan jól, hacsak nem egyszerűbb dolgokat csinál a hálózattal, mint például egy adott típusú objektumra összpontosít, tehát csak egy osztályra korlátozódik, és osztályozási célként néhány globális tulajdonságot választ.
Tehát mit kell tennie? Nézd meg a képernyő szélét, és próbáld meg elolvasni ezt a szöveget. Probléma? Bármilyen hülyén is hangzik, meg kell néznie, mit olvas. Ellenkező esetben túl homályos / nincs elég felbontás / részletesség. Nevezzük a fókuszterületet befogadó mezőnek. A hálózatoknak is képesnek kell lenniük az összpontosításra. Alapvetően ahelyett, hogy a teljes képet használná bemenetként, egy csúszó ablakot mozgat a kép mentén, majd ezt használja bemenetként a hálózatra (egy kicsit kevésbé sztochasztikus, mint amit az emberek tesznek). Most arra is lehetősége van, hogy összefüggéseket rögzítsen a képpontok és így az objektumok között, és meg tudja különböztetni a díványon ülő álmos macskát és a fejjel lefelé fordított macskabunge ugrást. Ügyes, helyreállt az emberiségbe vetett hit. A hálózat több szinten képes megtanulni egy kép helyi absztrakcióit. A hálózat megtanulja az eredetileg egyszerű szűrőket, majd azokra építve bonyolultabb szűrőket tanul.
Tehát összefoglalva a dolgokat: befogadó mezők / konvolúciók, felügyelet nélküli inicializálás, kijavított lineáris egységek, lemorzsolódás vagy egyéb szabályozás mód. Ha nagyon komolyan gondolja ezt, javasoljuk, hogy vessen egy pillantást Schmidhuber Mély tanulás a neurális hálózatokban: áttekintés re itt található az előd nyomtatási URL http://arxiv.org/abs/1404.7828
És ne feledje: nagy tanulás, mély adatok. Word.
Megjegyzések
- Szia Florin, köszönöm a szép választ! Tetszik az írás stílusa. Ha a csúszó ablakokról beszél, arra utal, hogy a konvolúciós NN konvolúciós rétegei hogyan figyelik meg a kép és a projekt különböző részeit aktivációjuk egy alacsonyabb dimenziós téren?
- nagyjából igen, a konvolúciók nem szükségesek, de számításilag ‘ gyorsabbak, mivel a súlyok korlátozottak. ezt a cikket, ahol nem használnak ‘ nem konvolúciókat és helyi receptív mezőket. A fontos kulcsszavak lokálisak / hierarchikusak: arxiv.org /pdf/1112.6209.pdf
- szerintem is a legközelebb szisztematikus válasz a sobi ‘ s. ő ‘ s megkapta a pozitív szavazatomat. csak néhány dolgot adtam ide-oda egy kis sóval és borssal.
Válasz
laikus kifejezés, a fő különbség a klasszikus Neural Networks hez képest az, hogy sokkal több rejtett réteg van bennük.
Például egy mély neurális hálózat az objektumfelismerés hez:
- 1. réteg: Egyetlen képpont
- 2. réteg: Élek
- 3. réteg: Formák (körök, négyzetek)
- n réteg: Teljes objektum
Megtalálhatja jó magyarázat erre a kérdésre a Quora kérdésben.
És ha érdekel ez a téma, javasoljuk, hogy vessen egy pillantást erre könyv .
Megjegyzések
- Köszönöm Dávidot, de én nem ‘ nem igazán látja, hogy a címkék hozzáadásával hogyan lehetne más. Emlékszem arra is, hogy nehéz probléma volt megérteni és lebontani, hogyan kódoltak egy funkciót az idegháló által. Valami másnak kell lennie, nem csak több rétegnek. Ami az Ön által adott példát illeti, úgy gondolom, hogy az egyes feladatok elvégzésére egyénileg (régi iskola) ideghálózatokat lehet képezni.
- A hatalom akkor jön létre, amikor csővezetékként használja, tehát a bemenetek és kimenetek a rétegből minden rétegnél halmozódik.
- Olvastam az első linkedet, ami jó forrás, és egyéb kapcsolódó kérdéseket a quora és se kapcsán, azonban az általad adott példa nem tűnik pontosnak azzal, amit én olvas.
megpróbálom megválaszolni saját kérdésemet, összefoglalva a téziseket.
Válasz
NN:
- elég egy rejtett réteg, de ennek ellenére több rétege is lehet, balról jobbra sorrendben (modell: feed forward NN)
- csak felügyelt módon képzett (backpragation) )
- ha több réteget használ, akkor az összes réteget egyidejűleg képezze (ugyanaz az algoritmus: backpropagation), több réteg megnehezíti a használatát, mivel a hibák túl kicsivé válnak
- nehéz értse meg az egyes rétegeken tanultakat
DNN:
- több réteg szükséges, irányítatlan élek (modell: korlátozott boltzman gép)
- először felügyelet nélkül képezték ki, ahol a hálózatok megtanulják a releváns jellemzőket azáltal, hogy megtanulják reprodukálni a bemenetet , majd felügyelt módon képezzük ki, amely finom finomhangolással finomítja a jellemzőket az osztályozás érdekében
- a rétegek egyesével történő oktatása bemenetről kimeneti rétegre (algoritmus: kontrasztív divergencia)
- minden réteg egyértelműen tartalmazza az egyre növekvő absztrakció jellemzőit
A DNN-re való lépés három független áttörésnek tudható be, amelyek 2006-ban történtek.
Az NN-re vonatkozó tételeket illetően a kérdés az, :
- univerzális közelítési tétel vagy Cybenko-tétel: egyetlen rejtett réteggel ellátott, előre irányított neurális hálózat képes megközelíteni minden folyamatos funkciót. A gyakorlatban azonban sokkal több neuronra lehet szükség, ha egyetlen rejtett réteget használnak.
Megjegyzések
- -1? Igazán? Mindezt elolvastam az irodalomban, és pontonként összehasonlítottam mindkét megközelítést! Kérem, legalább mondja el, mi a helytelen …
- Nem szavaztam le (lehet, hogy egy leszavazónak nem tetszett, hogy a saját kérdésére válaszol? De ez itt természetesen teljesen rendben van), de itt van egy dolog, ami nem teljesen helyes. Amit a DNN tulajdonságaként sorol fel: az élek irányítatlanok, hogy ‘ először felügyelet nélkül edzi ki, hogy a rétegeket egyenként edzik – mindez csak arra utal a Hinton által 2006-ban javasolt mély hiedelmi hálózatok ra. Ez általában nem feltétlenül igaz a mély ideghálózatokra, és valójában ma már sokféleképpen lehet egy mély hálót kiképezni mindezek nélkül. Lásd a válaszomat.
Válasz
Az elején is kissé összezavart a különbség neurális hálózatok (NN) és mély neurális hálózatok (DNN), azonban a “mélység” sajnos csak a paraméterek & paraméterekre vonatkozik, sajnos. Felveheti valamilyen re -márkázás az úgynevezett “kanadai maffia” alatt.
Néhány évvel ezelőtt volt egy Neural Networks is egy osztály részeként, és számjegyű felismerést, hullám-közelítést és hasonló alkalmazásokat készítettünk az NN használatával, amely több rejtett rétege és kimenete volt, és mindaz a jazz, amellyel a DNN rendelkezik. Mi azonban akkor nem volt számítási teljesítmény.
A DNN-re való áttérést a hardverfejlesztés előrelépései tették lehetővé és kívánatosá. Egyszerűen fogalmazva, most többet, gyorsabban és többet tudunk kiszámolni. párhuzamosan (DNN a GPU-kon), míg korábban az idő volt a NN-ek szűk keresztmetszete.
Amint arra a Wikipédia oldala hivatkozik Deep Megtanulva , a “mély” rész többnyire arra utal, hogy a funkciók nem-lineáris módon lépnek fel egymással több rétegben, ezért a funkciók kinyerését és átalakítását hajtják végre. Ez a szokásos NN-ekben is megtörtént, azonban kisebb méretben.
Ugyanazon az oldalon itt van a “A mély neurális hálózat (DNN) egy mesterséges neurális hálózat (ANN), amely több rejtett egységréteget tartalmaz a bemeneti és a kimeneti réteg között.”
Megjegyzések
- Szia Mttk, köszönöm a választ, ez jobban megvilágította ezt a kérdést. Ami az utolsó kérdését illeti, az igen strukturálisan nagyon könnyű megmagyarázni a különbséget (1 vs több réteg), de a különbség Úgy tűnik, hogy ez a több réteg hogyan használható, és sokkal kevésbé világos. Ezért a kérdést nem a szerkezetre koncentráltam.
- Őszintén szólva nem ‘ t egyetért az általam utoljára hivatkozott definícióval – mivel az ANN / NN egy rejtett réteggel nem igazán hatékony, és mindenféle bonyolultabb előrejelzéshez többször kellett volna (I ‘ m ezt azért mondtam, mert szerintem a DNN haszontalan szóhasználat volt amúgy is jó kifejezésre, NN). Úgy gondolom, hogy az NN és a DNN felcserélhető (mivel manapság senki sem használ egy rejtett rétegű NN ‘ s), míg a rétegek használata eltérő a DNN típusai között ‘ ek (CNN, RBM, RNN, LSTM, CW-RNN, …) és nem maga a DNN ötlete.
Válasz
Ha jól tudom, a Deep Neural Network (DNN) nevű manapság alapvetően nincs semmi vagy filozófiailag különbözik a régi standard Neural Network-től (NN). Noha elméletileg egy tetszőleges NN-t hozzá lehet adni egy sekély NN használatával csak egy rejtett réteggel, ez azonban nem azt jelenti, hogy a két hálózat hasonlóan fog teljesíteni, ha ugyanazon algoritmus és edzési adatok felhasználásával képzik őket. Valójában egyre nagyobb az érdeklődés a sekély hálózatok képzése iránt, amelyek hasonlóan teljesítenek, mint a mély hálózatok. Ennek módja azonban az, hogy először egy mély hálót képeznek ki, majd a sekély hálózatot arra oktatják, hogy utánozza a mély hálózat végső kimenetét (vagyis az utolsó előtti réteg kimenetét). Lásd, ami a mély architektúrákat kedvezővé teszi, hogy a mai tréning technikák (hátsó szaporítás) történetesen jobban működnek, ha az idegsejtek hierarchikus felépítésűek.
Egy másik kérdés, amelyet fel lehet tenni: miért Neural A hálózatok (különösen a DNN-ek) hirtelen olyan népszerűvé váltak. Megértésem szerint a mágikus összetevők, amelyek a közelmúltban olyan népszerűvé tették a DNN-eket, a következők:
A. Továbbfejlesztett adatkészletek és adatfeldolgozási képességek
1. Nagy méretű, sokféle képet tartalmazó adathalmazok váltak elérhetővé
2. A GPU gyors megvalósítását a nyilvánosság rendelkezésére bocsátották
B. Továbbfejlesztett képzési algoritmusok és hálózati architektúrák
1. Igazított lineáris egységek (ReLU) sigmoid vagy tanh helyett
2. Az évek során kialakult mély hálózati architektúrák
A-1) Egészen a közelmúltig legalább a Computer Vision-ben nem tudtunk modelleket képezni több millió címkézett képen; pusztán azért, mert nem léteztek ekkora méretű címkézett adatkészletek. Kiderült, hogy a képek száma mellett a címkekészlet részletessége is nagyon fontos tényező a DNN-ek sikerében (lásd a 8. ábrát ebben a cikkben , írta: Azizpour et al.).
A-2) Sok mérnöki erőfeszítést igényelt lehetővé tette a gyakorlatban jól működő DNN-ek képzését, nevezetesen a GPU-implementációk megjelenését. A DNN-ek egyik első sikeres GPU-implementációja két párhuzamos GPU-n fut; ennek ellenére körülbelül egy hétbe telik egy DNN képzése 1000 kategória 1,2 millió képén csúcskategóriás GPU-k segítségével (lásd ezt a cikket , Krizhevsky et al.) .
B-1) egyszerű Rektifikált Lineáris Egységek (ReLU) használata sigmoid és A tanh funkciók valószínűleg a legnagyobb építőelemek a DNN-ek képzésének lehetővé tételében. Ne feledje, hogy mind a sigmoid, mind a tanh függvények majdnem nulla gradienssel szinte mindenhol rendelkeznek, attól függően, hogy milyen gyorsan haladnak át az alacsony aktiválási szintről a magasba; szélsőséges esetben, amikor az átmenet hirtelen, kapunk egy lépésfüggvényt, amelynek a lejtése nulla mindenhol , kivéve az átmenet egyik pontját.
B-2) A neurális hálózati architektúrák évek során kialakult története emlékeztet arra, hogy az evolúció hogyan változtatja meg az organizmus természetét. Paraméterek megosztása ( pl. konvolúciós rétegekben), lemorzsolódás, inicializálás, tanulási arány ütemezése, térbeli összevonás, részmintavétel a mélyebb rétegekben, és sok más olyan trükk, amelyet ma már a képzés során standard nak tartanak a DNN-ek, az évek során úgy alakították ki, hogy a mélyhálózatok kiképzése a mai módon lehetséges legyen.
Megjegyzések
- +1. Az első válasz ez a szál, amely megfelelő választ ad az OP ‘ kérdésekre. Sok jó pont itt. Az egyetlen fő megjegyzésem az lenne, hogy az A és B mellett C: A rendelkezésre álló oktatási adatkészletek méretének hatalmas növekedése. Úgy tűnik, hogy ez legalább olyan fontos, mint A és B.
- Nem gondolom, hogy a relu olyan fontos: Alex krizhevsky tanulmánya azt állította, hogy ez az ún. 6-szor gyorsabb. Az Ön által említett egyéb hálózati struktúra-változások nagy része a konvolúciós nns-hez kapcsolódik, amelyek csak átmásolják a szokásos képfeldolgozó csővezetékeket (jó, de nincs új betekintés)
- @amoeba: az adatkészlet mérete A. alatt van frissítette a szöveget, hogy kiemelje.
- @ seanv507: Valóban konvolúciós hálózatokat (ConvNets) gondoltam a válasz megírásakor. Ha vannak más (a ConvNets-hez nem kapcsolódó) tényezők, amelyeket hiányoltam, megköszönöm, ha megemlíti őket. Örömmel frissíteném a válaszomat ennek megfelelően.Ami a ReLU-kat illeti, a tanh és sigmoid nns-ek gyakorlása lényegesen nehezebb, mint a ReLU-k esetében az eltűnő gradiensek miatt: az egységek könnyen telítődnek, és ha ez megtörténik, sokáig tart, amíg ismét telítetlenné válnak (a gradiensek nagyon kicsiek, ha az egység telített)
Válasz
A “mély” NN és a standard NN közötti különbség pusztán kvalitatív: nincs meghatározva, hogy mit jelent az a “Mély”. A “mély” jelenthet bármit, a rendkívül kifinomult architektúráktól, amelyeket a Google, a Facebook és a társai használnak, amelyek 50-80 vagy annál több réteggel rendelkeznek, a 2 rejtett rétegű (összesen 4 rétegű) architektúráig. Nem lennék meglepve, ha akár olyan cikkeket is találna, amelyek azt állítják, hogy mélyreható tanulást végeznek egyetlen rejtett réteggel, mert a “mély” nem sokat jelent.
A “neurális hálózat” szintén nem jelent szó “Nincs nagyon pontos jelentése. Rendkívül nagy modellegyüttest fed le, a véletlenszerű boltzman gépektől (amelyek irányítatlan grafikonok), a különböző aktiválási funkciókkal rendelkező előretekintő architektúrákig. A legtöbb NN-t backprop segítségével fogják oktatni, de nem kell” legyen ez így, így még a képzési algoritmusok sem túl homogének.
Összességében a mély tanulás, a mély NN-ek és az NN-ek mind összefogó szavakká váltak, amelyek megközelítések sokaságát ragadják meg.
A „mi változott” jó bevezető hivatkozásokért: A képviseletek mély tanulása: előretekintés , Bengio, 2013 jó áttekintés + perspektíva a jövőre nézve. Lásd még Valóban a mély hálózatoknak mélyeknek kell lenniük? Ba & Caruana, 2013, amelyek szemléltetik ezt A mélység lehet hogy nem a reprezentáció, hanem a tanulás szempontjából hasznos.
Megjegyzések
- Az Ön által adott hivatkozások nagyon hasznosak , de a válasz többi része az aktuális formában (amely ” -nek felel meg: Az NN nem jelent semmit, a DNN nem jelent semmit, az NN és a DNN sok mindent képes megtenni “) nem sok, fontolgatnád ennek felülvizsgálatát?
Válasz
David Gasquez válaszának bővítése érdekében az egyik fő különbség a mély ideghálózatok és a hagyományos ideghálózatok között az, hogy nem csak a mély ideghálóknál alkalmazzuk a hátteret.
Miért? Mivel a háttérpropagáció hatékonyabban képezi a későbbi rétegeket, mint a korábbi rétegeket – amint a hálózaton egyre korábban megy, a hibák egyre kisebbek és diffúzabbak lesznek. Tehát a tízrétegű hálózat alapvetően hét réteg véletlenszerű tömeg lesz, amelyet három réteg illesztett súly követ, és ugyanúgy működik, mint egy háromrétegű hálózat. További részletekért lásd: itt .
Tehát a fogalmi áttörés a különálló problémákat (a címkézett rétegeket) külön problémaként kezeli – ha először próbáljon megoldani egy általánosan jó első réteg felépítésének problémáját, majd próbálja meg megoldani egy általánosan jó második réteg felépítésének problémáját, végül “lesz egy mély funkcióterünk, amelyet betáplálhatunk a tényleges problémánkba.
Válasz
Nem mondanám, hogy NN és DNN között van valami nagy filozófiai különbség (valójában azt mondanám, hogy a DNN csak marketing megkülönböztetni a “sikertelen” NN-től). Ami megváltozott, az az adatkészletek mérete. A lényegében a neurális hálózatok jelenleg a legjobb $ O (n) $ statisztikai becslők, amelyek jól működnek nagy dimenziós nagy adatkészleteknél (pl. Imagenet).
Szerintem lépjen vissza, és nézze meg, hogy ez újjáéledést okozott a sekély AI – pl szavak elemzése az érzelmek elemzéséhez és más nyelvi alkalmazásokhoz, valamint a vizuális szavak táska vezetett a képfelismeréshez a DNN előtt. Senki sem mondja, hogy a szavak zsákja a nyelv igazi modellje, de hatékony mérnöki megoldás. Tehát azt mondanám, hogy a DNN jobb “vizuális táska szavakkal” – lásd pl. Szegedy és mtsai. 2013 Az ideghálózatok érdekes tulajdonságai és Nguyen et al. A mély ideghálózatok könnyen bolondok: magas bizalmi előrejelzések a felismerhetetlen képekhez , ahol egyértelmű, hogy nincsenek magasabb rendű struktúrák stb., amelyeket megtanulnak (vagy bármi, amire hivatkoznak) DNN).
Megjegyzések
- @amoeba ez a másik cikk szinte kísérő papír az elsőhöz (megint sok képpel!)
Válasz
Az utóbbi kérdés megválaszolásához nézze meg ezt a cikket a Telgarsky , amely azt mondja, hogy egy bizonyos besorolási probléma esetén “az összes sekély hálózat, amelynek exponenciája (k-ban) kevesebb csomópontnál kevesebb, legalább 1/6-os hibát mutat, míg egy mély hálózat, amelynek 2 csomópontja van a 2k rétegben, nulla hibát eredményez.”
A kérdéses osztályozási probléma az n váltakozó pontú probléma, amelyben a $ [0,1-2 ^ {- k}] intervallumot vesszük figyelembe. $ úgy, hogy a bemenet $ x_i $ a $ 2 ^ k $ egységesen elosztott pont a ezt az intervallumot, és a megfelelő $ y_i $ -ot a $ y_i = 1 $ adja meg, ha $ i $ páratlan, és $ y_i = 0 $ if $ i $ páros. Ezután megkérdezzük, hogy a sekély hálózatok exponenciális szélességek nélkül mennyire képesek megragadni ezt az összefüggést a mély hálózatokkal összehasonlítva, amelyeknek minden rétegben csak két csomópontja van? Lényegében egy lineáris ( $ k $ ) rétegek számában csak két csomópont van minden rétegben, míg exponenciálisan sokra lenne szükségünk ( $ k $ ) csomópontok, hogy ugyanazt az eredményt kapják egy sekély hálózatban.
Az idézet bizonyítása magában foglalja annak észrevételét, hogy az affin transzformációkra alkalmazott nem lineáris aktivációk összetétele (azaz nagyobb számú réteggel) nagyobb változékonyságot képes megragadni az adatokban, mint ugyanazon függvények összegzése (mint amikor csomópontokat adunk a rétegekhez).
Válasz
A mély tanulás a gépi tanulás algoritmusainak összessége kísérlet az adatok magas szintű absztrakcióinak modellezésére több nemlineáris transzformáció ból álló architektúrák felhasználásával.
Forrás: Arno gyertya
Vélemény, hozzászólás?