Fråga:
Neuralt nätverk med anslutningar över skikt
Souhaib Ben Taieb
2013-04-23 17:42:13 UTC
view on stackexchange narkive permalink

Jag är intresserad av regression med neurala nätverk.

Neurala nätverk med noll dolda noder + anslutningar över skikt är linjära modeller.

Vad sägs om samma neurala nät men med dolda noder? Jag undrar vad som skulle vara rollen för skip-layer-anslutningarna?

Intuitivt skulle jag säga att om du inkluderar skip-layer-anslutningarna kommer den slutliga modellen att vara en summa av en linjär modell + några icke-linjära delar.

Finns det några fördelar eller nackdelar med att lägga till hoppskiktsanslutningar till neurala nät?

Fem svar:
Indie AI
2016-01-06 20:17:20 UTC
view on stackexchange narkive permalink

Jag är väldigt sen till spelet, men jag ville posta för att återspegla en viss aktuell utveckling i favörliga neurala nätverk med avseende på hoppa över anslutningar .

Ett Microsoft Research-team vann nyligen tävlingen ImageNet 2015 och släppte en teknisk rapport Deep Residual Learning for Image Recognition som beskriver några av deras huvudidéer.

Ett av deras huvudsakliga bidrag är detta begrepp med djupa kvarvarande lager . Dessa djupa kvarvarande lager använder hoppa över anslutningar . Med hjälp av dessa djupa kvarvarande lager kunde de träna ett 152-lagers konv. Nät för ImageNet 2015. De utbildade till och med ett 1000+ lager konv. Nät för CIFAR-10.

Problemet som motiverade dem är följande :

När djupare nätverk kan börja konvergera har ett problem med nedbrytning exponerats: när nätverksdjupet ökar blir noggrannheten mättad (vilket kan vara överraskande) och försämras sedan snabbt. Oväntat orsakas sådan nedbrytning inte av överanpassning , och att lägga till fler lager till en lämplig djup modell leder till högre träningsfel ...

Tanken är att om du tar ett "grunt" nätverk och bara staplar på fler lager för att skapa ett djupare nätverk, bör resultatet av det djupare nätverket vara minst lika bra som det grunda nätverket som det djupare nätverket kan lära sig exakt grunt nätverk genom att ställa in de nya staplade lagren till identitetslager (i själva verket vet vi att det förmodligen är mycket osannolikt att det kommer att ske utan arkitektoniska prioriteter eller nuvarande optimeringsmetoder). De observerade att detta inte var fallet och att träningsfel ibland blev värre när de staplade fler lager ovanpå en grundare modell.

Så detta motiverade dem att använda hoppanslutningar och använda så kallade djupa kvarvarande lager för att låta deras nätverk lära sig avvikelser från identitetslagret, därav termen kvarvarande , kvarstående här med hänvisning till skillnad från identiteten.

De implementerar hoppanslutningar på följande sätt: enter image description here

Så de visar kartan $ \ mathcal {F} (x): = \ mathcal {H} (x) - x $ som någon restkarta. De använder en hopplageranslutning för att kasta denna mappning till $ \ mathcal {F} (x) + x = \ mathcal {H} (x) $. Så om den återstående $ \ mathcal {F} (x) $ är "liten" är kartan $ \ mathcal {H} (x) $ ungefär identiteten.

På detta sätt möjliggör användningen av djupa kvarvarande lager via hoppanslutningar deras djupa nät att lära sig ungefärliga identitetslager, om det verkligen är vad som är optimalt eller lokalt optimalt. De hävdar faktiskt att deras restskikt:

Vi visar genom experiment (Fig. 7) att de inlärda restfunktionerna i allmänhet har små svar

varför exakt detta fungerar har de inte ett exakt svar. Det är mycket osannolikt att identitetslagren är optimala, men de tror att användning av dessa kvarvarande lager hjälper till att förutsätta problemet och att det är lättare att lära sig en ny funktion med en referens / baslinje för jämförelse med identitetskartläggningen än att lära sig en "från grunden" utan att använda baslinjen för identitet. Vem vet. Men jag trodde att det här skulle vara ett trevligt svar på din fråga.

Förresten, i efterhand: sashkellos svar är ännu bättre, eller hur?

Vad menar du med förutsättning?(också är ditt svar mycket bättre än sashkello's mycket imho).Dessutom är problemet att lägga till ytterligare lager utan att hoppa över anslutningar gör det svårt för det djupare nätverket att ens hitta identitetskartläggningen?(av någon anledning?)
Det här är ett bra svar, tack.Ville bara uppdatera att det finns ett bra papper, https://arxiv.org/pdf/1701.09175.pdf, som undersöker varför detta faktiskt förbättrar inlärningen.
sashkello
2013-04-23 18:42:10 UTC
view on stackexchange narkive permalink

I teorin bör anslutningar över skikt inte förbättra nätverksprestandan. Men eftersom komplexa nätverk är svåra att träna och är lätta att överträffa kan det vara mycket användbart att uttryckligen lägga till detta som en linjär regressionsterm, när du vet att dina data har en stark linjär komponent. Detta antyder modellen i rätt riktning ... Dessutom är detta mer tolkningsbart eftersom det presenterar din modell som linjära + störningar, vilket avviker lite av en struktur bakom nätverket, som vanligtvis bara ses som en svart ruta.

@sashkello kan du utarbeta om '' skip-layer-anslutningar bör inte förbättra nätverksprestanda '', på teoretiskt sätt.Det skulle vara bra att förstå.
@hunch Det beror på att du kan modellera detta utan att behöva hoppa över lager.Skip-layer är bara en linjär term.Sigmoid-funktionen är ~ linjär runt 0. Så, en hoppskiktsanslutning kommer att fungera som en dold nod med mycket små ingångsviktar.
Dikran Marsupial
2013-04-23 19:33:29 UTC
view on stackexchange narkive permalink

Min gamla neurala nätverksverktygslåda (jag använder mestadels kärnmaskiner idag) använde L1-reglering för att beskära bort redundanta vikter och dolda enheter, och hade även förbindelser med hopplager. Detta har fördelen att om problemet i huvudsak är linjärt tenderar de dolda enheterna att beskäras och du sitter kvar med en linjär modell, som tydligt säger att problemet är linjärt.

Som sashkello (+1 ) föreslår, MLP är universella approximatorer, så förbindelser över lageranslutningar förbättrar inte resultatet i gränsen för oändlig data och ett oändligt antal dolda enheter (men när närmar vi oss någonsin den gränsen?). Den verkliga fördelen är att det gör det lättare att uppskatta bra värden för vikterna om nätverksarkitekturen är väl anpassad till problemet, och du kanske kan använda ett mindre nätverk och få bättre generaliseringsprestanda.

Men som med de flesta neurala nätverksfrågor, är det enda sättet att ta reda på om det kommer att vara till hjälp eller skadligt för en viss dataset att prova och se (med hjälp av en tillförlitlig prestationsutvärderingsprocedur).

"prova och se" - gyllene ord :)
Nikolas Adaloglou
2020-06-06 19:07:32 UTC
view on stackexchange narkive permalink

En fördjupad förklaring av hoppanslutningar från flera perspektiv finns här:

https://theaisummer.com/skip-connections/

Här ger jag huvudpunkten från artikeln:

I grund och botten är hoppanslutning en standardmodul i många fällningsarkitekturer. Genom att använda en hoppanslutning tillhandahåller vi en alternativ väg för lutningen (med backpropagation). Det valideras experimentellt att dessa ytterligare vägar ofta är fördelaktiga för modellkonvergensen. Hoppa över anslutningar i djupa arkitekturer, som namnet antyder, hoppa över något lager i det neurala nätverket och matar utmatningen från ett lager som ingången till nästa lager (istället för bara nästa).

Som tidigare förklarats, med kedjeregeln, måste vi fortsätta att multiplicera termer med felgradienten när vi går bakåt. Men i den långa kedjan av multiplikation, om vi multiplicerar många saker tillsammans som är mindre än en, blir den resulterande lutningen väldigt liten. Således blir lutningen väldigt liten när vi närmar oss de tidigare skikten i en djup arkitektur. I vissa fall blir lutningen noll, vilket innebär att vi inte alls uppdaterar de tidiga skikten.

I allmänhet finns det två grundläggande sätt som man kan använda hoppanslutningar genom olika icke-sekventiella lager:

a) tillägg som i kvarvarande arkitekturer,

b) sammanfogning som i tätt anslutna arkitekturer.

Jag hoppas att det klargör din förståelse!

payam jome yazdian
2019-11-25 10:35:21 UTC
view on stackexchange narkive permalink

Baserat på biskop 5.1.Feed-forward nätverksfunktioner: Ett sätt att generalisera nätverksarkitekturen är att inkludera skip-layer-anslutningar, som var och en är associerad med en motsvarande adaptiv parameter.Till exempel, i ett nätverk med två lager (två dolda lager) skulle dessa gå direkt från ingångar till utgångar.I princip, ett nätverk med sigmoidala dolda enheter kan alltid efterlikna hoppa över skiktanslutningar (för begränsade ingångsvärden) genom att använda en tillräckligt liten första skiktvikt för att den dolda enheten över dess arbetsområde är linjär, och sedan kompensera med en stor viktvärde från den dolda enheten till utgången.

I praktiken Det kan dock vara fördelaktigt att inkludera hopplageranslutningar uttryckligen. enter image description here



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...