1. ProgrammeringBig DataData ScienceMachine Learning vs. Deep Learning: Explaining Deep Learning Differences from Other Forms of AI

Av John Paul Mueller, Luca Mueller

Gitt forlegenheten over rikdommer som angår AI som helhet, for eksempel store datamengder, ny og kraftig beregningsmaskinvare tilgjengelig for alle, og mange private og offentlige investeringer, kan du være skeptisk til teknologien bak dyp læring, som består av nevrale nettverk som har flere nevroner og skjulte lag enn tidligere. Dype nettverk står i kontrast til de enklere, grunnere nettverk fra fortiden, som best inneholdt ett eller to skjulte lag. Mange løsninger som gjør dyp læring i dag mulig er slett ikke nye, men dyp læring bruker dem på nye måter.

Dyp læring er ikke bare en omlegging av en gammel teknologi, perceptronet, oppdaget i 1957 av Frank Rosenblatt ved Cornell Aeronautical Laboratory. Dyp læring fungerer bedre på grunn av den ekstra sofistikerte den gir gjennom full bruk av kraftige datamaskiner og tilgjengeligheten av bedre (ikke bare mer) data. Dyp læring innebærer også en dyp kvalitativ endring i funksjonene som teknologien tilbyr sammen med nye og forbløffende applikasjoner. Tilstedeværelsen av disse mulighetene moderniserer gamle, men gode nevrale nettverk, og forvandler dem til noe nytt. Følgende artikkel beskriver hvor dyp læring oppnår oppgaven sin.

Legge til flere lag for dyp læring

Du lurer kanskje på hvorfor dyp læring først har blomstret opp når teknologien som ble brukt som grunnlag for dyp læring eksisterte for lenge siden. Datamaskiner er kraftigere i dag, og dyp læring får tilgang til enorme datamengder. Disse svarene peker imidlertid bare på viktige problemer med dyp læring i fortiden, og lavere datakraft sammen med mindre data var ikke de eneste uoverkommelige hindringene. Inntil nylig led dyp læring også av et sentralt teknisk problem som forhindret nevrale nettverk fra å ha nok lag til å utføre virkelig komplekse oppgaver.

Fordi den kan bruke mange lag, kan dyp læring løse problemer som er utenfor rekkevidde av maskinlæring, for eksempel bildegjenkjenning, maskinoversettelse og talegjenkjenning. Når det bare er utstyrt med noen få lag, er et nevralt nettverk en perfekt universalfunksjons approximator, som er et system som kan gjenskape alle mulige matematiske funksjoner. Når det er utstyrt med mange flere lag, blir et nevralt nettverk i stand til å skape, innenfor sin interne kjede av matrise-multiplikasjoner, et sofistikert system med representasjoner for å løse komplekse problemer. For å forstå hvordan en kompleks oppgave som bildegjenkjenning fungerer, bør du vurdere denne prosessen:

  1. Et dypt læringssystem som er opplært til å gjenkjenne bilder (for eksempel et nettverk som er i stand til å skille bilder av hunder fra de som inneholder katter), definerer indre vekter som har evnen til å gjenkjenne et bildeemne. Etter å ha oppdaget hver enkelt kontur og hjørne i bildet, samler det dype læringsnettverket alle slike grunnleggende trekk til sammensatte karakteristiske funksjoner. Nettverket matcher slike funksjoner med en ideell representasjon som gir svaret.

Med andre ord kan et dypt læringsnettverk skille hunder fra katter ved å bruke sine indre vekter for å definere en representasjon av hva, ideelt sett, en hund og en katt skal ligne. Den bruker deretter disse interne vektene for å matche ethvert nytt bilde du gir det med.

En av de tidligste prestasjonene ved dyp læring som gjorde publikum oppmerksom på dens potensialitet er katteneuronet. Google Brain-teamet, drevet av den gang av Andrew Ng og Jeff Dean, satte sammen 16 000 datamaskiner for å beregne et dypt læringsnettverk med mer enn en milliard vekt, og muliggjør dermed uovervåket læring fra YouTube-videoer. Datanettverket kunne til og med bestemme av seg selv, uten noen menneskelig inngripen, hva en katt er, og Google-forskere klarte å grave ut av nettverket en representasjon av hvordan nettverket selv forventet at en katt skulle se ut (se artikkelen Wired om nevrale nettverk) .

I løpet av tiden som forskere ikke kunne stable flere lag i et nevralt nettverk på grunn av datamaskinens maskinvare, forble teknologiens potensiale begravet, og forskere ignorerte nevrale nettverk. Mangelen på suksess bidro til den dype skepsisen som oppstod rundt teknologien den siste AI-vinteren. Det som imidlertid virkelig hindret forskere i å skape noe mer sofistikert var problemet med forsvinnende graderinger.

En forsvinnende gradient oppstår når du prøver å overføre et signal gjennom et nevralt nettverk og signalet blekner raskt til nesten nullverdier; den kan ikke komme gjennom aktiveringsfunksjonene. Dette skjer fordi nevrale nettverk er kjedede multiplikasjoner. Hver multiplikasjon under null reduserer de innkomne verdiene raskt, og aktiveringsfunksjoner trenger store nok verdier til å la signalet passere. Jo lenger nevronlag er fra utgangen, desto større er sannsynligheten for at de blir låst ute av oppdateringer fordi signalene er for små og aktiveringsfunksjonene vil stoppe dem. Følgelig slutter nettverket å lære som en helhet, eller det lærer i et utrolig sakte tempo.

Hvert forsøk på å sette sammen og teste komplekse nettverk endte i svikt fordi bakgrunnsforplantningsalgoritmen ikke kunne oppdatere lagene nærmere inngangen, og dermed gjøre læring fra komplekse data, selv når slike data var tilgjengelig den gang, nesten umulig. I dag er dype nettverk mulig takket være studiene fra lærde fra University of Toronto i Canada, for eksempel Geoffrey Hinton, som insisterte på å jobbe på nevrale nettverk selv når de mest virket som en gammeldags maskinlæringsmetode.

Professor Hinton, en veteran innen nevrale nettverk (han bidro til å definere backpropagation-algoritmen), og teamet hans i Toronto utviklet noen få metoder for å omgå problemet med forsvinnende gradienter. Han åpnet feltet for å tenke nytt om nye løsninger som gjorde nevrale nettverk til et avgjørende verktøy i maskinlæring og AI igjen.

Professor Hinton og teamet hans er minneverdig også for å være blant de første som testet GPU-bruk for å få fart på opplæringen i et dypt nevralt nettverk. I 2012 vant de en åpen konkurranse, organisert av legemiddelfirmaet Merck og Kaggle (sistnevnte et nettsted for datavitenskapskonkurranser), ved å bruke sine nyeste funn om dyp læring. Denne hendelsen vakte stor oppmerksomhet på arbeidet deres. Du kan lese alle detaljene om Hinton-teamets revolusjonerende prestasjon med nevrale nettverkslag fra dette Geoffrey Hinton-intervjuet.

Endring av aktiveringene for dyp læring

Geoffrey Hintons team var i stand til å legge flere lag til en nevrell arkitektur på grunn av to løsninger som forhindret problemer med bakpropagering:

  • De forhindret eksplosjonsgradientproblemet ved å bruke smartere nettverksinitiering. En eksploderende gradient skiller seg fra en forsvinnende gradient fordi den kan få et nettverk til å sprenge etter hvert som den eksploderende gradienten blir for stor til å håndtere. Nettverket ditt kan eksplodere med mindre du korrekt initialiserer nettverket for å forhindre at det beregner store vekttall. Deretter løser du problemet med forsvinnende graderinger ved å endre nettverksaktiveringene. Teamet skjønte at det å føre et signal gjennom forskjellige aktiveringslag hadde en tendens til å dempe bakpropagasjonssignalet til det ble for svakt til å passere lenger etter å ha undersøkt hvordan en sigmoid-aktivering fungerte. De brukte en ny aktivering som løsningen på dette problemet. Valget av hvilken algoritme som skal brukes falt mot en gammel aktiveringstype ReLU, som står for utbedrede lineære enheter. En ReLU-aktivering stoppet det mottatte signalet hvis det var under null, og sikret den ikke-linearitetskarakteristikken til nevrale nettverk og lot signalet passere som det var om over null. (Å bruke denne typen aktivering er et eksempel på å kombinere gammel, men fortsatt god teknologi med dagens teknologi.) Bildet nedenfor viser hvordan denne prosessen fungerer.
ReLU aktiveringsfunksjon i dyp læring

ReLU fungerte utrolig bra og lot bakpropagasjonssignalet komme frem til de første dype nettverkslagene. Når signalet er positivt, er detets derivat 1. Du kan også finne bevis på at ReLU-derivatet ser ut. Merk at endringshastigheten er konstant og tilsvarer en enhet når inngangssignalet er positivt (mens når signalet er negativt, er derivatet 0, og dermed forhindrer signalet fra å passere).

Du kan beregne ReLU-funksjonen ved å bruke f (x) = maks (0, x). Bruken av denne algoritmen økte treningshastigheten mye, og tillater rask trening av enda dypere nettverk uten å pådra seg døde nevroner. En død nevron er en som nettverket ikke kan aktivere fordi signalene er for svake.

Legger til regularisering ved frafall for dyp læring

Den andre introduksjonen til dyp læring laget av Hintons team for å fullføre den opprinnelige løsningen for dyp læring rettet mot å regulere nettverket. Et regularisert nettverk begrenser nettverksvektene, noe som hindrer nettverket i å huske inndatadataene og generalisere de vitne datamønstrene.

Husk at visse nevroner lagrer spesifikk informasjon og tvinger de andre nevronene til å stole på denne sterkere nevronen, noe som får de svake nevronene til å gi opp å lære noe nyttig selv (en situasjon som kalles co-adaptation). For å forhindre ko-tilpasning, slår koden midlertidig av aktiveringen av en tilfeldig del av nevronene i nettverket.

Som du ser fra venstre side av bildet nedenfor, fungerer vektene normalt ved å multiplisere inngangene til utganger for aktiveringene. For å slå av aktivering multipliserer koden en maske laget av en tilfeldig blanding av enere og nuller med resultatene. Hvis nevronen multipliseres med en, gir nettverket signalet. Når en nevron multipliseres med null, stopper nettverket signalet, og tvinger andre nevroner til ikke å stole på det i prosessen.

dyp læringsfrafall

Frafall fungerer bare under trening og berører ingen deler av vektene. Den maskerer og skjuler bare en del av nettverket, og tvinger den umaskede delen til å ta en mer aktiv rolle i å lære datamønster. I løpet av prediksjonstiden fungerer ikke frafall, og vektene blir numerisk beregnet for å ta hensyn til det faktum at de ikke jobbet sammen under trening.