1. ProgrammeringBig DataData ScienceMachine Learning vs. Deep Learning: Forklaring af Deep Learning forskelle fra andre former for AI

Af John Paul Mueller, Luca Mueller

I betragtning af forlegenheden over rigdomme, der vedrører AI som helhed, såsom store mængder data, ny og kraftfuld beregningsmæssig hardware tilgængelig for alle, og masser af private og offentlige investeringer, er du måske skeptisk til teknologien bag dyb læring, der består af neurale netværk, der har flere neuroner og skjulte lag end tidligere. Dybe netværk står i kontrast til de enklere, lavere grunde netværk fra fortiden, der i det bedste indeholdt et eller to skjulte lag. Mange løsninger, der muliggør dyb læring i dag, er slet ikke nye, men dyb læring bruger dem på nye måder.

Dyb læring er ikke blot en omlægning af en gammel teknologi, perceptron, opdaget i 1957 af Frank Rosenblatt ved Cornell Aeronautical Laboratory. Dyb læring fungerer bedre på grund af den ekstra sofistikering, den tilføjer gennem fuld brug af magtfulde computere og tilgængeligheden af ​​bedre (ikke bare flere) data. Dyb læring indebærer også en dybtgående kvalitativ ændring i teknologiens muligheder sammen med nye og forbløffende applikationer. Tilstedeværelsen af ​​disse evner moderniserer gamle, men gode neurale netværk, og omdanner dem til noget nyt. Den følgende artikel beskriver, hvordan dyb læring udfører sin opgave.

Tilføjelse af flere lag til dyb læring

Du kan undre dig over, hvorfor dyb læring først har blomstret, da teknologien, der blev brugt som grundlaget for dyb læring, eksisterede for længe siden. Computere er mere magtfulde i dag, og dyb læring kan få adgang til store mængder data. Disse svar peger imidlertid kun på vigtige problemer med dyb læring i fortiden, og lavere computerkraft sammen med mindre data var ikke de eneste uovervindelige hindringer. Indtil for nylig led dyb læring også af et vigtigt teknisk problem, der forhindrede neurale netværk fra at have nok lag til at udføre virkelig komplekse opgaver.

Fordi det kan bruge mange lag, kan dyb læring løse problemer, der er uden for rækkevidde af maskinlæring, såsom billedgenkendelse, maskinoversættelse og talegenkendelse. Når det kun er udstyret med nogle få lag, er et neuralt netværk en perfekt universalfunktionskonimator, som er et system, der kan genskabe enhver mulig matematisk funktion. Når det er udstyret med mange flere lag, bliver et neuralt netværk i stand til inden for sin interne kæde af matrixmultiplikationer at skabe et sofistikeret system med repræsentationer for at løse komplekse problemer. For at forstå, hvordan en kompleks opgave som billedgenkendelse fungerer, skal du overveje denne proces:

  1. Et dybt læringssystem, der er trænet til at genkende billeder (såsom et netværk, der er i stand til at skelne fotos af hunde fra dem, der indeholder katte) definerer interne vægte, der har evnen til at genkende et billedemne. Efter at have registreret hver enkelt kontur og hjørne i billedet, samler det dybe læringsnetværk alle sådanne grundlæggende træk til sammensatte karakteristiske træk. Netværket matcher sådanne funktioner til en ideel repræsentation, der giver svaret.

Med andre ord kan et dybt læringsnetværk skelne hunde fra katte ved hjælp af dets indre vægt til at definere en repræsentation af hvad, ideelt set, en hund og en kat skal ligne. Den bruger derefter disse interne vægte til at matche ethvert nyt billede, du leverer det med.

En af de tidligste resultater af dyb læring, der gjorde offentligheden opmærksom på dens potentiale, er katteuronet. Google Brain-teamet, der blev kørt på det tidspunkt af Andrew Ng og Jeff Dean, sammensatte 16.000 computere til at beregne et dybt læringsnetværk med mere end en milliard vægt, hvilket muliggør uovervåget læring fra YouTube-videoer. Computernetværket kunne endda bestemme af sig selv uden nogen menneskelig indgriben, hvad en kat er, og Google-forskere formåede at grave ud af netværket en repræsentation af, hvordan netværket i sig selv forventede, at en kat skulle se ud (se artiklen Wired, der diskuterer neurale netværk) .

I løbet af den tid, hvor forskere ikke kunne stable flere lag i et neuralt netværk på grund af grænserne for computerhardware, forblev teknologiens potentiale begravet, og forskere ignorerede neurale netværk. Manglen på succes føjede til den dybe skepsis, der opstod omkring teknologien i løbet af den sidste AI-vinter. Hvad der virkelig forhindrede forskere i at skabe noget mere sofistikeret var problemet med forsvindende gradueringer.

En forsvindende gradient opstår, når du prøver at transmittere et signal gennem et neuralt netværk, og signalet falmer hurtigt til næsten nulværdier; det kan ikke komme igennem aktiveringsfunktionerne. Dette sker, fordi neurale netværk er kædede multiplikationer. Hver multiplikation under nul nedsætter de indgående værdier hurtigt, og aktiveringsfunktioner har brug for store nok værdier til at lade signalet passere. Jo længere neuronlag er fra output, jo større er sandsynligheden for, at de bliver låst uden for opdateringer, fordi signalerne er for små, og aktiveringsfunktionerne stopper dem. Derfor ophører dit netværk med at lære som en helhed, eller det lærer i et utroligt langsomt tempo.

Hvert forsøg på at sammensætte og teste komplekse netværk endte i en fiasko, fordi backpropagation-algoritmen ikke kunne opdatere lagene tættere på input, hvilket således gjorde enhver læring fra komplekse data, selv når sådanne data var tilgængelige på det tidspunkt, næsten umuligt. I dag er dybe netværk mulige takket være undersøgelser af lærde fra University of Toronto i Canada, såsom Geoffrey Hinton, som insisterede på at arbejde på neurale netværk, selv når de mest syntes at være en gammeldags maskinslæringsmetode.

Professor Hinton, en veteran inden for området neurale netværk (han bidrog til at definere bagpropagationsalgoritmen), og hans team i Toronto udarbejdede et par metoder til at omgå problemet med forsvindende gradueringer. Han åbnede feltet for at genoverveje nye løsninger, der gjorde neurale netværk til et vigtigt redskab i maskinlæring og AI igen.

Professor Hinton og hans team er også mindeværdige for at være blandt de første til at teste GPU-brug for at fremskynde træningen i et dybt neuralt netværk. I 2012 vandt de en åben konkurrence, arrangeret af lægemiddelfirmaet Merck og Kaggle (sidstnævnte et websted til datavidenskonkurrencer) ved hjælp af deres seneste opdagelser om dyb læring. Denne begivenhed gjorde opmærksom på deres arbejde. Du kan læse alle detaljer om Hinton-holdets revolutionære præstation med neurale netværkslag fra dette Geoffrey Hinton-interview.

Ændring af aktiveringer til dyb læring

Geoffrey Hintons team var i stand til at tilføje flere lag til en neural arkitektur på grund af to løsninger, der forhindrede problemer med bagpropagering:

  • De forhindrede problemet med eksploderende gradienter ved at bruge smartere netværksinitialisering. En eksploderende gradient adskiller sig fra en forsvindende gradient, fordi den kan få et netværk til at sprænge, ​​når den eksploderende gradient bliver for stor til at håndtere. Dit netværk kan eksplodere, medmindre du korrekt initialiserer netværket for at forhindre, at det beregner store vægtnumre. Derefter løser du problemet med forsvindende gradueringer ved at ændre netværksaktiveringer. Holdet indså, at passering af et signal gennem forskellige aktiveringslag havde en tendens til at dæmpe bagpropagationssignalet, indtil det bliver for svagt til at passere længere efter at have undersøgt, hvordan en sigmoid-aktivering fungerede. De brugte en ny aktivering som løsningen på dette problem. Valget af hvilken algoritme, der skal bruges, faldt hen imod en gammel aktiveringstype af ReLU, der står for korrigerede lineære enheder. En ReLU-aktivering stoppede det modtagne signal, hvis det var under nul, hvilket sikrer ikke-linearitetskarakteristikken for neurale netværk og lader signalet passere, som det var, hvis det var over nul. (Brug af denne type aktivering er et eksempel på at kombinere gammel, men stadig god teknologi med nuværende teknologi.) Billedet herunder viser, hvordan denne proces fungerer.
ReLU aktiveringsfunktion i dyb læring

ReLU arbejdede utroligt godt og lod bagpropagationssignalet ankomme til de indledende dybe netværkslag. Når signalet er positivt, er dets derivat 1. Du kan også finde bevis på, at ReLU-derivatet ser ud. Bemærk, at ændringshastigheden er konstant og ækvivalent med en enhed, når indgangssignalet er positivt (mens signalet er negativt, er derivatet 0, hvilket forhindrer signalet i at passere).

Du kan beregne ReLU-funktionen ved hjælp af f (x) = max (0, x). Brugen af ​​denne algoritme øgede træningshastigheden meget, hvilket tillader hurtig træning af endnu dybere netværk uden at pådrage sig døde neuroner. En død neuron er en, som netværket ikke kan aktivere, fordi signalerne er for svage.

Tilføjelse af regularisering ved frafald til dyb læring

Den anden introduktion til dyb læring foretaget af Hintons team for at færdiggøre den indledende løsning til dyb læring med det formål at regulere netværket. Et reguleret netværk begrænser netværksvægtene, hvilket forhindrer netværket i at huske inputdataene og generalisere de vidne datamønstre.

Husk, at visse neuroner husker specifik information og tvinger de andre neuroner til at stole på denne stærkere neuron, hvilket får de svage neuroner til at opgive at lære noget nyttigt selv (en situation kaldet co-adaptation). For at forhindre ko-tilpasning slukker koden midlertidigt for aktiveringen af ​​en tilfældig del af neuroner i netværket.

Som du ser fra venstre side af billedet nedenfor, fungerer vægtene normalt ved at multiplicere deres input til output for aktiveringerne. For at deaktivere aktivering multiplicerer koden en maske lavet af en tilfældig blanding af enere og nuller med resultaterne. Hvis neuronet ganges med et, overfører netværket sit signal. Når en neuron ganges med nul, stopper netværket sit signal og tvinger andre neuroner til ikke at stole på det i processen.

dyb læringsfald

Frafald fungerer kun under træning og berører ikke nogen del af vægterne. Det maskerer og skjuler blot en del af netværket og tvinger den umaskede del til at tage en mere aktiv rolle i indlæring af datamønstre. I løbet af forudsigelsestid fungerer frafaldet ikke, og vægterne omklassificeres numerisk for at tage højde for det faktum, at de ikke arbejdede sammen under træning.