Mikä on ero hermoverkon ja syvän hermoverkon välillä, ja miksi syvät toimivat paremmin?
On joulukuu 22, 2020 by adminEn ole nähnyt kysymystä täsmällisesti ilmaistuna näillä termeillä, ja siksi esitän uuden kysymyksen.
Olen kiinnostunut tietämään, ettei hermoverkko ole määritelty, vaan ymmärrän todellisen eron syvän hermoverkon kanssa.
Lisää kontekstia varten: tiedän, mikä hermoverkko on ja miten lisääntyminen toimii. Tiedän, että DNN: llä on oltava useita piilotettuja kerroksia. Kuitenkin 10 vuotta sitten luokassa sain tietää, että sillä on useita kerroksia tai yksi kerros syöttö- ja ulostulotasojen laskeminen) oli vastaava funktioiden suhteen, joita hermoverkko pystyy edustamaan (katso Cybenkon ”s yleinen lähentämislause ), ja useampien kerrosten ansiosta analysointi ilman suorituskyvyn parantamista oli monimutkaisempaa. Ilmeisesti näin ei ole enää.
Oletan, ehkä väärin, että erot johtuvat harjoittelualgoritmista ja ominaisuuksista eikä rakenteesta ja siksi Arvostan todella, voisiko vastaus korostaa syitä, jotka mahdollistivat siirtymisen DNN: ään (esim. Matemaattinen todiste tai satunnainen toisto verkkojen kanssa?) ja toivottava (esim. lähentymisen nopeus?)
Kommentit
- FYI: Kuinka totta tämä dia on syvälliseen oppimiseen?
- Jos arvioitava funktio on koostumusfunktio (yleinen kuvankäsittelyssä ja monissa fysiikan lain aiheuttamat luonnolliset alueet). Voidaan todistaa, että syvät verkot voivat hyödyntää tätä koostumusta ja saavuttaa saman tason likiarvovirheen eksponentiaalisesti pienemmällä hermosolujen määrällä (verrattuna yhden piilokerroksen verkkoon). Viite: Poggio, Tomaso et ai. ” Miksi ja milloin syvät, mutta ei matalat verkot voivat välttää ulottuvuuden kirouksen: tarkistus. ” International Journal of Automation and Computing (2017)
- Haluat ehkä tarkastella tätä artikkelia
- Katso arxiv.org/pdf/2004.06093.pdf
Vastaa
Aloitetaan triviliatia: Syvä hermoverkko on yksinkertaisesti eteenpäin suuntautuva verkko, jossa on paljon piilotettuja kerroksia.
Tämä on suurin piirtein kaikki sanottava määritelmästä. Neuroverkot voivat olla toistuvia tai eteenpäin; eteenpäin suuntautuvien verkkojen kaaviossa ei ole silmukoita ja ne voidaan järjestää kerroksiksi. Jos kerroksia on ”monia” , sitten sanotaan, että verkko on syvä .
Kuinka monta tasoa verkolla on oltava, jotta se voidaan luokitella syväksi? Ei ole olemassa selkeä vastaus tähän (se on vähän kuin kysyä kuinka monta jyvää tekee kasan ), mutta yleensä vähintään kaksi piilotettua kerrosta lasketaan syväksi. Sitä vastoin verkkoa, jossa on vain yksi piilotettu kerros, kutsutaan tavallisesti ”matalaksi”. Epäilen, että täällä tapahtuu jonkin verran inflaatiota, ja kymmenen vuoden kuluttua ihmiset saattavat ajatella, että kaikki, esimerkiksi alle kymmenen kerrosta, on matala ja sopii vain päiväkodin harjoituksiin. Epävirallisesti ”syvä” viittaa siihen, että verkkoa on vaikea käsitellä.
Tässä on kuva, mukautettu täältä :
Mutta oikea kysymyksesi on tietysti, miksi monien tasojen käyttäminen olisi hyödyllistä?
Luulen, että hieman hämmästyttävä vastaus on, että kukaan ei todellakaan tiedä. On joitain yleisiä selityksiä, joita tarkastelen lyhyesti alla, mutta yksikään niistä ei ole osoittautunut vakuuttavasti totta, eikä voi edes olla varma, että monien tasojen käyttäminen on todella hyödyllistä.
Sanon, että tämä on hämmästyttävää, koska syvällinen oppiminen on massiivisesti suosittua, se rikkoo vuosittain kaikkia ennätyksiä (kuvien tunnistamisesta, Go-pelaamiseen, automaattiseen kääntämiseen jne.), teollisuus tottelee jne. Ja emme ole vieläkään aivan varmoja siitä, miksi se toimii niin hyvin.
Keskustelun perustana Deep Goodfellown, Bengion ja Courvillen oppimisen kirja, joka ilmestyi vuonna 2017 ja jota pidetään yleisesti syvällisen oppimisen kirjana. (Se on vapaasti saatavana verkossa.) Asiaankuuluva osa on 6.4.1 Yleiset lähentämisen ominaisuudet ja syvyys .
Kirjoitit, että
Kymmenen vuotta sitten luokassa sain tietää, että usean kerroksen tai yhden kerroksen (sisään- ja ulostulotasojen laskemattomuus) omistaminen oli samanarvoista niiden toimintojen suhteen, joita neuroverkko pystyy edustamaan […]
Sinun on viitattava ns. yleiseen approksimaatiolauseeseen , jonka todistaa Cybenko vuonna 1989 ja useiden ihmisten yleistämä 1990-luvulla. Periaatteessa sanotaan, että matala hermoverkko (yhdellä piilotetulla kerroksella) voi arvioida mitä tahansa toimintoa, eli voi periaatteessa oppia mitä tahansa . Tämä pätee useisiin epälineaarisiin aktivointitoimintoihin, mukaan lukien oikaisut lineaariset yksiköt, joita useimmat hermoverkot käyttävät nykyään (oppikirjaviitteet Leshno et ai. 1993 tälle tulokselle).
Jos on, niin miksi kaikki käyttävät syväverkkoja?
No, naiivi vastaus on, koska ne toimivat paremmin. Tässä on luku Deep Learning -kirjasta, joka osoittaa, että se auttaa saamaan enemmän kerroksia yhteen tehtävään, mutta sama ilmiö havaitaan usein eri tehtävissä ja aloilla:
Tiedämme, että matala verkko voisi toimivat yhtä hyvin kuin syvemmät. Mutta se ei; eivätkä yleensä. Kysymys kuuluu — miksi? Mahdollisia vastauksia:
- Ehkä matala verkosto tarvitsisi enemmän hermosoluja kuin syvä?
- Ehkä matalaa verkkoa on vaikeampaa kouluttaa nykyisillä algoritmeillamme (esim. ilkeämmät paikalliset minimit, tai lähentymisaste on hitaampi, tai mikä tahansa)?
- Ehkä matala arkkitehtuuri ei sovi sellaisiin ongelmiin, joita yleensä yritämme ratkaista (esim. kohteen tunnistus on olennainen ”syvä” ”, hierarkkinen prosessi)?
- Jotain muuta?
Deep Learning -kirjassa esitetään luettelomerkit # 1 ja # 3. Ensinnäkin se väittää, että matalassa verkossa olevien yksiköiden määrä kasvaa eksponentiaalisesti tehtävän monimutkaisuuden myötä. Joten matala verkko voi olla hyödyllinen, jotta siitä olisi hyötyä. mahdollisesti paljon suurempi kuin syvä verkko. Tämä perustuu useisiin asiakirjoihin, jotka osoittavat, että matalat verkot tarvitsevat joissakin tapauksissa eksponentiaalisesti monia neuroneja; mutta onko esim. MNIST-luokitus tai Go play ovat tällaisia tapauksia, ei ole oikeastaan selvää. Toiseksi kirjassa sanotaan tämä:
Syvän mallin valitseminen koodaa hyvin yleistä uskoa siihen, että haluamasi funktion tulisi sisältää useita yksinkertaisempia toimintoja. Tämä voidaan tulkita edustuksen oppimisen näkökulmasta sanomalla, että uskomme, että oppimisongelma koostuu joukon taustalla olevista vaihtelutekijöistä, jotka voidaan puolestaan kuvata muilla yksinkertaisemmilla variaatiotekijöillä.
Mielestäni nykyinen ”yksimielisyys” on se, että se on luettelomerkkien 1 ja 3 yhdistelmä: reaalimaailman tehtävissä syvä arkkitehtuuri on usein hyödyllistä ja matala arkkitehtuuri olisi tehoton ja vaatisi paljon enemmän hermosoluja samaan suorituskykyyn.
Mutta se ei ole kaukana todistetusta. Harkitse esimerkiksi Zagoruyko ja Komodakis, 2016, Wide Residual Networks . Jäännösverkot, joissa on yli 150 kerrosta ilmestyi vuonna 2015 ja voitti useita kuvien tunnistuskilpailuja. Tämä oli suuri menestys ja näytti pakottavalta argumentilta syvyyden puolesta; tässä on yksi luku ensimmäisen kirjoittajan esityksestä jäljellä olevassa verkkopaperissa (huomaa, että aika menee hämmentävästi vasemmalle tässä):
Mutta yllä linkitetty paperi osoittaa, että ”laaja ”jäännösverkko, jossa on vain” 16 kerrosta, voi ylittää ”syvät”, joissa on yli 150 kerrosta. Jos tämä on totta, yllä olevan kuvan koko kohta hajoaa.
Tai harkitse Ba ja Caruana, 2014, Do Deep Nets Really Need be Syvä? :
Tässä artikkelissa annamme empiiristä näyttöä siitä, että matalat verkot pystyvät oppimaan saman toiminnon kuin syväverkot, ja joissakin tapauksissa, joissa on sama määrä parametreja kuin syväverkoissa. Teemme tämän kouluttamalla ensin huipputason syvä malli ja sitten kouluttamalla matala malli syvän mallin jäljittelemiseksi. Mimiikkamalli koulutetaan seuraavassa osassa kuvatun mallin pakkausmenetelmän avulla. Huomattavaa on, että mallipakkauksella pystymme kouluttamaan matalat verkot yhtä tarkkoiksi kuin jotkut syvämallit, vaikka emme pysty kouluttamaan näitä matalia verkkoja yhtä tarkkoiksi kuin syväverkot, kun matalat verkot koulutetaan suoraan alkuperäiseen merkittyjä harjoitustietoja. Jos matala verkko, jolla on sama määrä parametreja kuin syvällä verkolla, voi oppia jäljittelemään syvää verkkoa erittäin tarkasti, on selvää, että kyseisen syvän verkon oppiman toiminnon ei tarvitse olla syvä.
Jos se on tosi, se tarkoittaisi, että oikea selitys on pikemminkin luettelomerkkini 2, ei # 1 tai # 3.
Kuten sanoin – – kukaan ei vielä tiedä varmasti.
Loppuhuomautukset
syvällinen oppiminen viimeisten 10 vuoden aikana on todella hämmästyttävää, mutta suurin osa tästä edistymisestä saavutettiin kokeilemalla ja erehdyksellä, ja meillä ei vielä ole perustiedot siitä, mikä tarkalleen saa syvät verkot toimimaan niin hyvin. Jopa luettelo asioista, joita ihmiset pitävät ratkaisevan tärkeinä tehokkaan syväverkoston luomisessa, näyttää muuttuvan parin vuoden välein.
Syvän oppimisen renessanssi alkoi vuonna 2006, kun Geoffrey Hinton (joka oli työskennellyt hermosolujen parissa) verkostot yli 20 vuoden ajan ilman kenenkään suurta kiinnostusta) julkaisi pari läpimurtoasiakirjaa, jotka tarjoavat tehokkaan tavan syvällisten verkkojen kouluttamiseen ( tiedepaperi , Neuraalilaskentapaperi ). Temppu oli käyttää valvomatonta esikoulutusta ennen kaltevuuslaskun aloittamista. Nämä paperit mullistivat kentän, ja muutaman vuoden ajan ihmiset ajattelivat, että valvomaton esikoulutus oli avain.
Sitten vuonna 2010 Martens osoitti, että syviä hermoverkkoja voidaan kouluttaa toisen asteen menetelmillä (ns. Hessiläisvapaita menetelmiä) ja ne voivat ylittää esikoulutuksella koulutetut verkot: Syvä oppiminen hessiläisen optimoinnin avulla . Sitten vuonna 2013 Sutskever et ai. osoitti, että stokastinen gradienttinen laskeutuminen erittäin älykkäillä temppuilla voi ylittää Hessiläisvapaat menetelmät: Alustamisen ja vauhdin merkitys syvässä oppimisessa . Noin vuoden 2010 aikana ihmiset tajusivat, että tasasuuntaisten lineaaristen yksiköiden käyttäminen sigmoidien yksiköiden sijasta tekee valtavan eron kaltevuuslaskennassa. Keskeytyminen ilmestyi vuonna 2014. Jäännösverkot ilmestyivät vuonna 2015. Ihmiset keksivät jatkuvasti tehokkaampia tapoja kouluttaa syviä verkostoja ja , joka tuntui 10 vuotta sitten tärkeältä oivallukselta. haitta tänään. Kaikki tämä johtuu suurelta osin kokeiluista ja erehdyksistä, ja on vähän ymmärrystä siitä, mikä saa jotkut asiat toimimaan niin hyvin ja jotkut muut asiat ei. Syvien verkkojen kouluttaminen on kuin iso laukku temppuja. Menestyksekkäitä temppuja järkeistetään yleensä post factum.
Emme edes tiedä miksi syvät verkostot saavuttavat suorituskyvyn tasangon; vain 10 vuotta ihmiset syyttivät paikallisia minimiä, mutta nykyinen ajattelu on, että tämä ei ole asia (kun esiintymistasot, kaltevuudet pysyvät yleensä suurina.) Tämä on syväverkkoja koskeva peruskysymys, emmekä edes tiedä tätä .
Päivitys: Tämä on enemmän tai vähemmän Ali Rahimin NIPS 2017 -keskustelun aihe koneoppimisesta alkemiana: https://www.youtube.com/watch?v=Qi1Yry33TQE .
[Tämä vastaus kirjoitettiin kokonaan uudelleen huhtikuussa 2017, joten jotkut alla olevista kommenteista eivät enää koske.]
Kommentit
- Hieno vastaus! 1) Kuten @Nicolas mainitsi, se käy ilmi, että on olemassa lause ( fi.wikipedia.org/wiki/Universal_approximation_theorem ), joka väittää, että eteenpäin suuntautuva hermo n etwork, jossa on yksi piilotettu kerros ja rajallinen määrä hermosoluja, voi arvioida minkä tahansa jatkuvan toiminnon (mukaan lukien DNN) yksikön hyperkuutiossa. Tämän tuloksen väitetään olevan riippumaton aktivointitoiminnon valinnasta. 2) En ole varma, onko viimeisellä huomautuksellasi (eli että Hinton liittyi Googleen) merkitystä DNN-verkkojen viimeaikaisen menestyksen kannalta; Hinton liittyi Googleen kauan sen jälkeen, kun DNN: stä tuli epidemia!
- Ehkä me ’ käytämme terminologiaa eri tavalla. Perceptroneilla ei ole piilotettua tasoa – niiden syöttö on tietoa, niiden lähtö on luokitus. Monikerroksinen verkko koostuu joukosta perceptroneja, jotka on kytketty yhteen siten, että kerroksen $ n-1 $ lähtö muodostaa tulon kerrokseen $ n $. Verkossa, jossa on yksi piilotettu kerros, on siis kolme kerrosta (tulo, piilotettu, lähtö). Tämä piilotettu kerros on avain yleiseen lähentämiseen: perceptronit, joista puuttuu, eivät ’ voi laskea XOR: n kaltaisia asioita, mutta monikerroksiset verkot voivat.
- Lineaarisuus asia näyttää olevan kahden asian yhdistelmä. Perceptrons voi laskea vain lineaariset päätösrajat – se voi piirtää vain suoria viivoja kahden luokan jakamiseksi. Monikerroksiset verkot voivat ” piirtää ” monimutkaisempia rajoja. Mutta perceptronit tai monikerroksiset verkot eivät käytä lineaarisia aktivointitoimintoja, paitsi monikerroksisen verkon ulostulokerroksessa. Perceptronin aktivaatiofunktio on heaviside (1, jos x > 0, muuten 0); monikerroksisissa verkoissa käytetään usein sigmoideja, mutta universaalien noin. ovat melko lieviä: ei-vakio, rajoitettu ja monotonisesti kasvava.
- @amoeba loistava vastaus, kuva alussa eräänlainen ajatteli minut lukemaan loput, mutta se oli parasta. Perceptron on luokittelun lineaarisen regression vastine, minkä vuoksi, kun ihmiset käyttävät ongelman ratkaisemiseen suljetun muodon ratkaisua (pseudoinverse) online (sgd) -menetelmien sijaan, s kutsutaan logistiseksi regressioksi logistisen (sigmoidifunktion) = perceptronin takia. Perceptron / logistinen regressio voi vain ’ piirtää ’ lineaarisen päätösrajan ja että ’ s miksi sitä ’ kutsutaan lineaariseksi.
- Monikerroksinen perceptron (mitä piirrit vasemmalla ensimmäisessä kuvassasi) voi kuitenkin yhdistää useita tällaisia lineaarisia päätöksiä rajoja ja voi siten jakaa tilan (ei-lineaarisen) XOR-ongelman ratkaisemiseksi, kuten @Matt mainitsi. Joten monet monet yhdistetyt lineaariset päätösrajat voivat muodostaa ympyrän esimerkiksi, jos kutistat silmiäsi. Se riippuu siitä, miten ajattelet sitä – päätös on edelleen lineaarinen korkeammassa tilassa, jos ytimet ovat tuttuja, se ’ on samanlainen asia.
Vastaus
Toistaiseksi hyvä vastaus, vaikka pari asiaa kukaan täällä ei maininnut, tässä on 0,02 dollaria
Voin vain vastata tarinan muodossa, pitäisi tehdä asioista hauskempia ja selkeämpiä. Ei tldr täällä. Prosessin aikana sinun pitäisi pystyä ymmärtämään, mikä ero on.
On useita syitä, miksi DNN: t syttyivät, kun he tekivät (tähtien oli kohdistettava, kuten kaikki muutkin vastaavat asiat, se on vain oikea asia paikka, oikea aika jne.).
Yksi syy on tietojen saatavuus, paljon dataa (merkittyjä tietoja). Jos haluat pystyä yleistämään ja oppimaan jotain esimerkiksi ”yleisiä prioreja” tai ”universaaleja prioreita” ”(alias rakennuspalikoita, joita voidaan käyttää uudelleen tehtävien / sovellusten välillä), tarvitset paljon tietoa. Ja villi data, voin lisätä, ei steriilejä tietojoukkoja, jotka on tallennettu huolellisesti laboratorioon valvotulla valaistuksella ja kaikella. Mekaaninen Turk mahdollisti sen (merkinnät).
Toiseksi mahdollisuus kouluttaa suurempia verkkoja nopeammin GPU: illa teki kokeilusta nopeamman. ReLU-yksiköt tekivät asioista myös laskennallisesti nopeammat ja toimittivat niiden laillistamisen, koska sinun tarvitsi käyttää enemmän yksiköitä yksi kerros voidakseen pakata samat tiedot, koska kerrokset olivat nyt enemmän spareja e, joten meni myös mukavasti keskeyttämisen kanssa. Lisäksi he auttoivat tärkeässä ongelmassa, joka tapahtuu, kun pinot useita kerroksia. Lisää siitä myöhemmin. Useita temppuja, jotka parantavat suorituskykyä. Kuten mini-erien (mikä on itse asiassa haitallista lopullisille virheille) tai kääntymisten (jotka eivät todellakaan vangitse yhtä paljon variansseja kuin paikalliset vastaanottokentät) käyttämistä, mutta ovat laskennallisesti nopeampia.
Sillä välin ihmiset keskustelivat jos he pitivät heistä laihemmista tai pulleammista, pienemmistä tai pitemmistä, pisaroilla tai ilman. jne. kaikki tajusivat, ettei siellä ole ilmaista lounasta. Verkot röyhtäivät.
Mikä hidasti asioita, oli katoava kaltevuus -ongelma. Ihmiset menivät kuin: hau, se on kaukana, mies! Pähkinänkuoressa se tarkoittaa, että oli vaikea säätää virhettä tasoille, jotka ovat lähempänä syötteitä. Kun lisäät lisää kerroksia kakkuun, se muuttuu liian huojuvaksi. Et voinut ” t levitä mielekäs virhe takaisin ensimmäisiin kerroksiin. Mitä enemmän kerroksia, sitä huonommin se muuttui. Bummer.
Jotkut tajusivat, että ristiantropian käyttäminen menetystoimintona (hyvin, jälleen kerran, luokittelu ja kuvan tunnistus) tarjoaa jonkinlaisen säännönmukaisuuden ja auttaa estämään verkon kyllästymisen ja puolestaan kaltevuuden ei pystynyt piilottamaan sitä hyvin.
Mikä mahdollisti tilanteen, oli myös kerrosten mukainen esiharjoittelu valvomattomilla menetelmillä. Pohjimmiltaan otat joukon automaattisia koodereita ja opit yhä vähemmän abstrakteja esityksiä lisäät pakkaussuhdetta. Näiden verkkojen painoja käytettiin valvotun version alustamiseen. Tämä ratkaisi katoavan kaltevuusongelman toisella tavalla: aloitat jo valvotun harjoittelun paljon paremmasta lähtöasennosta. Joten kaikki muut verkot nousivat ylös ja alkoivat kapinoida. Mutta verkot tarvitsivat joka tapauksessa valvontaa, muuten oli mahdotonta pitää suuria tietoja paikallaan.
Nyt viimeinen osa, joka vihdoin johtaa sellaiseen vastaukseesi, joka on liian monimutkainen pähkinänkuoressa: miksi enemmän kerroksia eikä vain yksi. Koska voimme! ja koska konteksti ja muuttumattomat piirteiden kuvaimet. ja poolit.
Tässä on esimerkki: sinulla on tietojoukko kuvia, kuinka aiot kouluttaa suunnitelman NN käyttämällä näitä tietoja? No, naiivisti, sanot jokaisen rivin ja ketjutat sen yhdeksi pitkäksi vektoriksi ja se on sinun panoksesi. Mitä opit?Jotkut sumeat hölynpölyfunktiot, jotka eivät ehkä näytä miltään, koska monta monenlaista varianssia, joita kuvan objektit sisältävät, etkä pysty erottamaan asiaankuuluvia ja merkityksettömiä asioita. Ja jossain vaiheessa verkon on unohdettava voidakseen oppia uudet asiat uudelleen. Joten siinä on kapasiteettiongelma. Tämä on enemmän epälineaarista dynamiikkaa, mutta intuitio on, että sinun on lisättävä hermosolujen määrää voidaksesi sisällyttää enemmän tietoa verkkoosi.
Joten asia on, että jos syötät kuvan vain yhtenä kappaleena, ylimääräisten kerrosten lisääminen ei tee sinulle liikaa, koska et pysty oppimaan abstrakteja , mikä on erittäin tärkeää. Asioiden tekeminen kokonaisvaltaisesti ei siten toimi niin hyvin, ellet tee verkon kanssa yksinkertaisempia asioita, kuten keskittyminen tietyntyyppiseen objektiin, joten rajoitat itsesi yhteen luokkaan ja valitset luokittelutavoitteeksi joitain globaaleja ominaisuuksia.
Mitä sitten tehdä? Katso näytön reunaa ja yritä lukea tämä teksti. Ongelma? Niin typerältä kuin miltä se kuulostaa, sinun on tarkasteltava mitä olet lukemassa. Muuten se on liian sumea / siinä ei ole tarpeeksi tarkkuutta / tarkkuutta. Kutsutaan tarkennusaluetta vastaanottokentäksi. Myös verkkojen on kyettävä keskittymään. Pohjimmiltaan sen sijaan, että käyttäisit koko kuvaa syötteenä, siirrät liukuvan ikkunan pitkin kuvaa ja sitten käytät sitä verkon tulona (vähän vähemmän stokastinen kuin mitä ihmiset tekevät). Nyt sinulla on myös mahdollisuus kaapata korrelaatio pikselien ja siten esineiden välillä, ja voit myös erottaa sohvalla istuvan unisen kissan ja ylösalaisin käännetyn kissan benjihypyn. Siisti, usko ihmiskuntaan palautettu. Verkko voi oppia paikallisia abstraktioita kuvassa useilla tasoilla. Verkko oppii aluksi yksinkertaiset suodattimet ja rakentaa sitten ne suodattimien oppimiseksi monimutkaisemmista suodattimista.
Yhteenvetona: vastaanottavat kentät / kääntymät, valvomaton alustus, oikaistut lineaariset yksiköt, keskeytykset tai muu laillistaminen menetelmiä. Jos olet erittäin vakava asia, suosittelen, että tutustut Schmidhuberin Deep Learning in Neural Networks: An Overview tässä ”esipainoksen URL-osoitteeseen http://arxiv.org/abs/1404.7828
Ja muista: iso oppiminen, syvällinen data. Word.
Kommentit
- Hei Florin, kiitos mukavasta vastauksesta! Pidän kirjoitustyylistä. Kun puhut liukuikkunoista, viittaatko siihen, kuinka konvoluutio-NN: n konvoluutiokerrokset tarkkailevat kuvan ja projektin eri osia heidän aktivoitumisensa alemman ulottuvuuden avaruuteen?
- melko kyllä, kääntymät eivät ole välttämättömiä, mutta ne ’ ovat nopeammin laskennallisesti, koska painot ovat rajoitetut. tarkista julkaista tämä artikkeli, jossa he eivät ’ käytä käänteitä ja käytä paikallisia vastaanottokenttiä. Tärkeät avainsanat ovat paikallinen / hierarkkinen: arxiv.org /pdf/1112.6209.pdf
- mielestäni myös lähin systemaattinen vastaus on sobi ’ s. hän ’ sai ääneni. lisäsin vain muutama asia täällä ja siellä hieman suolaa ja pippuria.
Vastaa
maallikkotermeillä, suurin ero klassisiin Neural Networks iin on, että niissä on paljon piilotettuja tasoja.
Ajatuksena on lisätä tasoihin tasoja, jotta voidaan tehdä useita abstraktikerroksia:
Esimerkiksi syvä hermoverkko objektintunnistukseen :
- Kerros 1: Yksittäiset pikselit
- Kerros 2: Reunat
- Taso 3: Lomakkeet (ympyrät, neliöt)
- Kerros n: Koko objekti
Löydät hyvä selitys tähän kysymykseen Quorassa .
Ja jos olet kiinnostunut tästä aiheesta, suosittelen katsomaan tätä kirja .
Kommentit
- Kiitos David, mutta en ’ ei todellakaan näe, kuinka vain lisätä tarroja tehdä siitä erilainen. Muistan myös, että oli vaikea ongelma ymmärtää ja hajottaa, miten funktio koodattiin hermoverkossa. On oltava jotain muuta kuin vain, että kerroksia on enemmän. Antamasi esimerkin osalta uskon, että voit kouluttaa erikseen (vanhan koulun) hermoverkkoja suorittamaan kaikki tehtävät.
- Teho tulee, kun käytät sitä kuin putkea, joten panokset ja lähdöt jokaisesta kerroksesta kerääntyvistä kerroksista.
- Olen lukenut ensimmäisen linkkisi, joka on hyvä resurssi, ja muita siihen liittyviä kysymyksiä quora ja se, mutta antamasi esimerkki ei vaikuta tarkalta mitä minä lukea. Y ’ yritän vastata omaan kysymykseeni, yhteenvetona opinnäytetyön lukemista.
- Huolimatta siitä, että huomautettu resurssi on mielenkiintoinen, vastaus ei vastaa kysymykseen.
- Voitteko viitata esimerkkiin, jossa kerrokset on merkitty (muuten kuin puhtaasti kuvaavalla tavalla)?On totta, että piilotetut kerrokset näyttävät peräkkäin monimutkaisemmilta ominaisuuksiltaan jokaisessa piilotetussa kerroksessa, mutta ” tunnisteiden lisääminen ” näyttää tarkoittavan, että ne ovat ’ koulutetaan erityisesti siihen.
Vastaa
NN:
- yksi piilotettu kerros riittää, mutta siinä voi kuitenkin olla useita kerroksia, järjestys vasemmalta oikealle (malli: feed forward NN)
- koulutettu vain valvotulla tavalla (backpropation) )
- kun käytetään useita kerroksia, kouluta kaikki kerrokset samanaikaisesti (sama algoritmi: backpropage), useampien kerrosten käyttö on vaikeaa, koska virheet pienenevät
- vaikeasti ymmärrä, mitä jokaisessa kerroksessa opitaan
DNN:
- tarvitaan useita kerroksia, suuntaamattomat reunat (malli: rajoitettu boltzman-kone)
- koulutettu ensin valvomattomalla tavalla, jossa verkostot oppivat asiaankuuluvat ominaisuudet oppimalla toistamaan panoksensa , sitten koulutetaan valvotulla tavalla, joka hienosäätää ominaisuuksia luokittelemiseksi
- kouluta kerrokset yksi kerrallaan sisääntulokerroksesta kerrokseen (algoritmi: kontrastinen divergenssi)
- jokainen kerros selvästi sisältää lisääntyvän abstraktion ominaisuuksia
Siirtyminen DNN: ään johtuu kolmesta itsenäisestä läpimurrosta, jotka tapahtuivat vuonna 2006.
NN: n lauseiden osalta kysymykseen viitataan :
- yleinen approksimaatiolause tai Cybenkon teoreema: eteenpäin suuntautuva hermoverkko, jossa on yksi piilotettu kerros, voi arvioida minkä tahansa jatkuvan toiminnon. Käytännössä se voi kuitenkin vaatia paljon enemmän neuroneja, jos käytetään yhtä piilotettua kerrosta.
Kommentit
- -1? Todella? Luin kaiken tämän kirjallisuudesta ja vertailin piste pisteittäin molempia lähestymistapoja! Ilmoita ainakin, mikä ei ole oikein …
- En äänestänyt alhaalla (ehkä eräs äänestäjä ei pitänyt siitä, että vastaat omaan kysymykseesi? Mutta se on tietysti täysin hieno täällä), mutta tässä on yksi asia, joka ei ole täysin oikea. Mitä luet DNN: n ominaisuuksina: että reunat ovat suuntaamattomia, että se ’ koulutetaan ensin valvomattomalla tavalla, että kerrokset koulutetaan yksi kerrallaan – kaikki tämä viittaa vain Hintonin vuonna 2006 ehdottamiin syväuskoverkostoihin . Tämä ei välttämättä päde syvähermoverkoihin yleensä, ja itse asiassa on olemassa monia tapoja kouluttaa syväverkkoa ilman sitä. Katso vastaukseni.
Vastaus
Minua on myös alussa hämmentänyt ero hermoverkot (NN) ja syvät hermoverkot (DNN), mutta ”syvyys” viittaa valitettavasti vain parametrien lukumäärään &. Voit ottaa sen jonkinlaisena uudelleen -merkki niin sanotun ”Kanadan mafian” alla.
Useita vuosia sitten minulla oli myös hermoverkot osana luokkaa ja teimme numerotunnistuksen, aaltolähennyksen ja vastaavia sovelluksia NN: n avulla, joka oli useita piilotettuja kerroksia ja ulostuloja sekä kaikkea sitä jazzia, jota DNN: llä on. Mutta meillä ei silloin ollut laskentatehoa.
Syy, joka teki siirtymisen DNN: ään mahdollisen ja toivottavan, ovat laitteistokehityksen edistysaskeleet. Yksinkertaisesti sanottuna nyt voimme laskea enemmän, nopeammin ja enemmän rinnakkaistettu (DNN GPU: lla), kun aikaisemmin aika oli NN: n pullonkaula.
Kuten Wikipedian sivulla Deep viitataan Oppimalla , ”syvä” osa viittaa enimmäkseen ominaisuuksien vuorovaikutukseen epälineaarisesti useilla kerroksilla, mikä tekee ominaisuuksien purkamisesta ja muunnoksesta. Tämä tehtiin myös tavallisissa NN: ssä, kuitenkin pienemmässä mittakaavassa.
Samalla sivulla täällä sinulla on määritelmä ”Syvä hermoverkko (DNN) on keinotekoinen hermoverkko (ANN), jossa on useita piilotettuja yksiköiden kerroksia tulo- ja lähtökerrosten välillä.”
Kommentit
- Hei Mttk, kiitos vastauksestasi, se valotti tätä kysymystä. Viimeisen huomautuksesi osalta kyllä, rakenteellisesti on helppo selittää ero (1 vs. useampia kerroksia), mutta ero se, kuinka näitä useita kerroksia käytetään, näyttää olevan tärkeätä, ja se on paljon vähemmän selvää. Siksi keskitin kysymyksen ei rakenteeseen.
- Rehellisesti sanottuna en ’ t ovat samaa mieltä viimeksi mainitsemani määritelmän kanssa – koska ANN / NN, jossa on yksi piilotettu kerros, eivät ole todella tehokkaita, ja tarvitsit useita monenlaisille monimutkaisemmille ennusteille (I ’ m sanomalla tämän, koska mielestäni DNN oli hyödytön lisäys jo hyvään termiin, NN). Luulen, että voit käyttää NN: ää ja DNN: ää vaihdettavasti (koska nykyään kukaan ei käytä yhden piilotetun kerroksen NN ’ s), kun taas kerrosten käyttö vaihtelee DNN-tyyppien välillä ’ s (CNN, RBM, RNN, LSTM, CW-RNN, …) eikä itse DNN: n idea.
vastaus
Tietääkseni tällä hetkellä nimellä syvä hermoverkko (DNN) ei ole mitään pohjimmiltaan tai filosofisesti erilainen kuin vanha standardi hermoverkko (NN). Vaikka teoriassa voidaan arvioida mielivaltainen NN käyttämällä matalaa NN: ää vain yhdellä piilotetulla kerroksella, tämä ei kuitenkaan tarkoittaa, että nämä kaksi verkkoa toimivat samalla tavalla, kun niitä harjoitellaan samalla algoritmilla ja harjoitustiedoilla. Itse asiassa on kasvava kiinnostus matalien verkkojen koulutukseen, jotka toimivat samalla tavalla kuin syvät verkot. Tapa tämä tehdään kuitenkin kouluttamalla ensin syvä verkko ja sitten matala verkko kouluttamalla jäljittelemään syvän verkon lopullista lähtöä (eli viimeisen viimeisen kerroksen ulostuloa). Katso, mikä tekee syväarkkitehtuureista suotuisan, on se, että nykypäivän harjoittelutekniikat (selän eteneminen) toimivat paremmin, kun neuronit on sijoitettu hierarkkiseen rakenteeseen.
Toinen kysymys, joka voidaan esittää, on: miksi hermo Verkot (erityisesti DNN: t) tulivat niin suosituiksi yhtäkkiä. Ymmärtääkseni DNN: n viime aikoina niin suosittua taika-ainesosat ovat seuraavat:
A. Parannetut tietojoukot ja tietojenkäsittelyominaisuudet
1. Saatavilla oli laajamittaisia aineistoja, joissa oli miljoonia erilaisia kuvia
2. Nopea GPU-toteutus saatettiin yleisön saataville
B. Parannetut koulutusalgoritmit ja verkkoarkkitehtuurit
1. Tasasuuntaiset lineaariset yksiköt (ReLU) sigmoidin tai tanhin sijaan
2. Syvä verkkoarkkitehtuuri kehittyi vuosien varrella
A-1) Ainakin viime aikoihin asti Computer Vision -ohjelmassa emme voineet kouluttaa malleja miljoonille leimattuille kuville; yksinkertaisesti siksi, että merkittyjä kokoisia aineistoja ei ollut olemassa. On käynyt ilmi, että kuvamäärän lisäksi tarrasarjan tarkkuus on myös erittäin tärkeä tekijä DNN-verkkojen menestyksessä (katso kuva 8 tässä artikkelissa , kirjoittanut Azizpour ym.).
A-2) Suunnittelutyötä on tehty paljon mahdollistanut käytännössä toimivien DNN-verkkojen kouluttamisen, etenkin GPU: n käyttöönoton myötä. Yksi DNN: n ensimmäisistä onnistuneista GPU-toteutuksista toimii kahdella rinnakkaisella GPU: lla; silti kestää noin viikon kouluttaa DNN 1,2 miljoonalle kuvalle 1000 luokasta käyttämällä huippuluokan GPU: ta (katso tämä artikkeli , Krizhevsky ym.) .
B-1) Yksinkertaisten oikaisujen lineaaristen yksiköiden (ReLU) käyttö sigmoidien ja tanh-toiminnot ovat luultavasti suurin rakennuspalikka DNN-verkkojen kouluttamisen mahdollistamisessa. Huomaa, että sekä sigmoid- että tanh-funktioilla on melkein nolla gradientti melkein kaikkialla, riippuen siitä, kuinka nopeasti ne kulkevat matalalta aktivointitasolta korkealle; äärimmäisessä tapauksessa, kun siirtyminen on äkillinen, saamme vaihefunktion, jonka kaltevuus on nolla kaikkialla paitsi yhdessä kohdassa, jossa siirtyminen tapahtuu.
B-2) Tarina siitä, kuinka hermoverkkoarkkitehtuurit kehittyivät vuosien varrella, muistuttaa minua siitä, kuinka evoluutio muuttaa organismin rakennetta luonnossa. Parametrien jakaminen ( esim. konvoluutiokerroksissa), keskeyttämisen laillistamista, alustamista, oppimisnopeuden aikataulua, alueellista yhdistämistä, alinäytteenottoa syvemmissä kerroksissa ja monia muita temppuja, joita nykyään pidetään vakiona DNN-koulutuksessa, kehitettiin, kehitettiin, on räätälöity vuosien varrella, jotta syväverkkojen koulutus olisi mahdollista nykyisellä tavalla.
Kommentit
- +1. Ensimmäinen vastaus tämä ketju, joka antaa riittävän vastauksen OP ’ -kysymyksiin. Paljon hyviä kohtia täällä. Ainoa tärkeä kommenttini on, että A: n ja B: n lisäksi Tämä on myös C: Saatavilla olevien koulutusjoukkojen koon suuri kasvu. Tämä näyttää olevan vähintään yhtä tärkeää kuin A ja B.
- En usko, että relu on niin tärkeä: Alex Krizhevsky -lehti väitti, että se teki nn oppimisesta. 6 kertaa nopeammin. Suurin osa muista mainitsemistasi verkkorakenteiden muutoksista liittyy konvoluutio-nns: iin, jotka vain kopioivat tavalliset kuvankäsittelyputket (hyvä asia, mutta ei uusia oivalluksia)
- @amoeba: tietojoukon koko on alle A. päivitti tekstin korostaakseen sen.
- @ seanv507: Minulla oli todellakin mielessä konvoluutioverkot (ConvNets) kirjoittaessani vastausta. Jos on muita tärkeitä tekijöitä (jotka eivät liity ConvNetsiin), jotka olen unohtanut, kiitän sitä, jos mainitset ne. Olisin iloinen voidessani päivittää vastaukseni vastaavasti.ReLU: iden kohdalla nh: n harjoittelu tanh: lla ja sigmoidilla on huomattavasti vaikeampaa kuin ReLU: n kanssa kadonneiden kaltevuuksien vuoksi: yksiköt kyllästyvät helposti ja kun tämä tapahtuu, niiden kestää jälleen kauan muuttua tyydyttymättömiksi (kaltevuudet ovat hyvin pieniä, kun yksikkö on kylläinen)
vastaus
”Syvän” NN: n ja tavallisen NN: n ero on puhtaasti kvalitatiivinen: ei ole määritelmää, mitä tuo ”syvä” tarkoittaa. ”Syvä” voi tarkoittaa mitä tahansa erittäin kehittyneistä arkkitehtuureista, joita Google, Facebook ja co käyttävät, joissa on 50-80 tai enemmän kerroksia, 2 piilotettuun kerrokseen (yhteensä 4 kerrosta). En olisi yllättynyt, jos voisit jopa löytää artikkeleita, joissa väitetään tekevänsä syvää oppimista yhdellä piilotetulla kerroksella, koska ”syvä” ei tarkoita paljoa.
”Neuraaliverkko” on myös sana, joka ei tarkoita ”T: llä ei ole tarkkaa merkitystä. Se kattaa erittäin suuren joukon malleja satunnaisista boltzman-koneista (jotka ovat suuntaamattomia kaavioita) eteenpäin suuntautuviin arkkitehtuureihin, joissa on erilaisia aktivointitoimintoja. Useimmat NN: t koulutetaan backpropilla, mutta sen ei tarvitse” Olkoon niin, joten edes harjoittelualgoritmit eivät ole kovin homogeenisia.
Kaiken kaikkiaan syvällisestä oppimisesta, syvistä kieli- ja kielikouluista on tullut kaikki sanat, jotka vangitsevat monia lähestymistapoja.
Hyvät johdantoviitteet ”mikä muuttui”: Edustusten syvällinen oppiminen: katse eteenpäin , Bengio, 2013 on hyvä katsaus + tulevaisuuden näkökulma. Katso myös Pitääkö syväverkkojen olla todella syviä? Ba & Caruana, 2013, jotka kuvaavat tätä Syvästä olemisesta ei välttämättä ole hyötyä edustamisen vaan oppimisen kannalta.
Kommentit
- Antamasi viitteet ovat erittäin hyödyllisiä , mutta loppu vastaus nykyisessä muodossa (joka lukee ” NN ei tarkoita mitään, DNN ei tarkoita mitään, NN ja DNN voivat tehdä paljon asioita ”) ei paljon, harkitsisitko sen tarkistamista?
Vastaa
Laajentamalla David Gasquezin vastausta, yksi tärkeimmistä eroista syvän hermoverkon ja perinteisten hermoverkkojen välillä on, että emme vain käytä backpropagationia syvissä hermoverkoissa.
Miksi? Koska jälkilisäys kouluttaa myöhemmät kerrokset tehokkaammin kuin aikaisemmat kerrokset – kun menet verkossa aikaisemmin ja aikaisemmin, virheet pienenevät ja diffuusoituvat. Kymmenenkerroksinen verkko on siis periaatteessa seitsemän kerrosta satunnaisia painoja, joita seuraa kolme kerrosta sovitettuja painoja, ja ne tekevät yhtä hyvin kuin kolmikerroksinen verkko. Katso lisätietoja täältä .
Joten käsitteellinen läpimurto käsittelee erillisiä ongelmia (merkittyjä tasoja) erillisinä ongelmina – jos ensin yritä ratkaista yleisesti hyvän ensimmäisen kerroksen rakentamisen ongelma ja yritä sitten ratkaista yleisesti hyvän toisen kerroksen rakentamisen ongelma, lopulta meillä on syvä ominaisuusalue, johon voimme syöttää todellisen ongelmamme.
Vastaus
En sanoisi, että NN: n ja DNN: n välillä on mitään suurta filosofista eroa (itse asiassa sanoisin, että DNN on vain markkinointi termi erottaa ”epäonnistuneesta” NN: stä). Muuttunut on tietojoukkojen koko. Pohjimmiltaan hermoverkot ovat tällä hetkellä parhaat $ O (n) $ -tilastolliset estimaattorit, jotka toimivat hyvin suurikokoisissa suurissa aineistoissa (esim. Imagenet).
Luulen, että sinun pitäisi astua taaksepäin ja nähdä, että tämä on luonut uudelleen matala tekoäly – esim sanapussi sentimenttianalyysiä ja muita kielisovelluksia varten ja visuaalinen sanapussi johti lähestymistapaa kuvien tunnistamiseen ennen DNN: ää. Kukaan ei sano, että sanapussi on todellinen kielimalli, mutta se on tehokas tekninen ratkaisu. Joten sanoisin, että DNN on parempi ”visuaalinen sanapussi” – katso esim. Szegedy et ai. 2013 Hermoverkkojen kiehtovat ominaisuudet ja Nguyen et al. Syvät hermoverkot ovat helposti huijattuja: ennustuksia tunnistamattomille kuville erittäin luotettavasti , kun on selvää, ettei opeteta ylemmän tason rakenteita jne. (tai mitä tahansa vaaditaankin) DNN).
ul>
Vastaa
Jos haluat vastata jälkimmäiseen kysymykseen, katso tämä artikkeli osoitteesta Telgarsky , joka sanoo, että tietyn luokitusongelman kohdalla ”kaikilla matalilla verkoilla, joissa on vähemmän kuin eksponentiaalisesti (k: ssä) useita solmuja, on virhe vähintään 1/6, kun taas syvä verkko, jossa on 2 solmua kussakin 2k-kerroksessa, saavuttaa nollavirheen.”
Kyseinen luokitusongelma on n-vaihtuvan pisteen ongelma, jossa tarkastellaan väliä $ [0,1-2 ^ {- k}] $ niin, että syöttö $ x_i $ ovat $ 2 ^ k $ tasaisesti jaettuja pisteitä kyseinen väli ja vastaava $ y_i $ annetaan $ y_i = 1 $ , jos $ i $ on pariton, ja $ y_i = 0 $ if $ i $ on tasainen. Kysymme sitten, kuinka hyvin matalat verkot ilman eksponentiaalisia leveyksiä voivat kaapata tämän suhteen verrattuna syviin verkkoihin, joissa on vain kaksi solmua kussakin kerroksessa? Voimme lähinnä arvioida tietoja paremmin (tasaisesti) lineaarisella ( $ k $ ) kerroksissa, joissa on vain kaksi solmua kussakin kerroksessa, kun taas tarvitsemme eksponentiaalisesti monia (ryhmässä $ k $ ) solmuja saadaksesi saman tuloksen matalassa verkossa.
Lainan todistamiseen kuuluu huomata, että affinimuunnoksiin (ts. suuremmalla kerrosten lukumäärällä) sovellettujen epälineaaristen aktivointien koostumus onnistuu vangitsemaan datassa enemmän vaihtelevuutta kuin samojen toimintojen summaaminen (kuten kun lisäämme solmut kerroksiin).
vastaus
Syväoppiminen on joukko koneoppimisen algoritmeja, jotka yritä mallintaa korkean tason abstraktit tiedoissa käyttämällä arkkitehtuureja, jotka koostuvat useista epälineaarisista muunnoksista .
Lähde: Arno-kynttilä
Vastaa