Grunnleggende AI

Hva er dyp læring?

mm
Legg til Unite.AI blant dine foretrukne kilder på Google

Dyp læring er ett av de mest innflytelsesrike og raskest voksende feltene innen kunstig intelligens. Likevel kan det være vanskelig å få en intuitiv forståelse av dyp læring, fordi begrepet dyp læring dekker en rekke forskjellige algoritmer og tekniker. Dyp læring er også en underdisiplin av maskinlæring generelt, så det er viktig å forstå hva maskinlæring er for å forstå dyp læring.

Hva er maskinlæring?

Dyp læring er en utvidelse av noen av konseptene som opprinnelig kommer fra maskinlæring, så av den grunn, la oss ta en minut til å forklare hva maskinlæring er.

Maskinlæring er en metode for å aktivere datamaskiner til å utføre bestemte oppgaver uten å kode hver enkelt linje av algoritmene som brukes til å fullføre disse oppgavene. Det finnes mange forskjellige maskinlæring-algoritmer, men en av de mest vanlige algoritmene er en multilayer-perceptron. En multilayer-perceptron kalles også et neuralt nettverk, og det består av en rekke noder/nevroner koblet sammen. Det finnes tre forskjellige lag i en multilayer-perceptron: inngangs-laget, skjulte laget og utgangs-laget.

Inngangs-laget tar inn dataene i nettverket, der de manipuleres av nodene i midten/skjulte laget. Nodene i skjulte laget er matematiske funksjoner som kan manipulere dataene fra inngangs-laget, og trekke ut relevante mønster fra inndataene. Dette er hvordan neuralt nettverk “lærer”. Neurale nettverk får navnet sitt fra det faktum at de er inspirert av strukturen og funksjonen til det menneskelige hjernen.

Koblingene mellom nodene i nettverket har verdier som kalles vekter. Disse verdiene er essensielt antagelser om hvordan dataene i ett lag er relatert til dataene i neste lag. Mens nettverket trener, justeres vektene, og målet er at vektene/antagelsene om dataene til slutt vil konvergere mot verdier som nøyaktig representerer de meningsfulle mønstrene innen dataene.

Aktiveringsfunksjoner er til stede i nodene i nettverket, og disse aktiveringsfunksjonene transformerer dataene på en ikke-lineær måte, og muliggjør at nettverket kan lære komplekse representasjoner av dataene. Aktiveringsfunksjoner multipliserer inndata-verdiene med vekt-verdiene og legger til en bias-terminator.

Hva er dyp læring?

Dyp læring er begrepet gitt til maskinlæring-arkitekturer som kobler mange multilayer-perceptron sammen, så det ikke bare er ett skjult lag, men mange skjulte lag. “Dypere” det dype neurale nettverket er, jo mer sofistikerte mønster nettverket kan lære.

De dype lag-nettverkene bestående av noder/nevroner kalles noen ganger fullt koblet nettverk eller fullt koblet lag, med henvisning til det faktum at en gitt neuron opprettholder en kobling til alle nodene/nevronene rundt det. Fullt koblet nettverk kan kombineres med andre maskinlæring-funksjoner for å skape forskjellige dyp læring-arkitekturer.

Forskjellige typer dyp læring

Det finnes en rekke dyp læring-arkitekturer som brukes av forskere og ingeniører, og hver av de forskjellige arkitektene har sin egen spesialitet-brukssak.

Convolutional Neural Networks

Convolutional neurale nettverk, eller CNN-er, er neuralt nettverks-arkitekturen som vanligvis brukes i skapelsen av datavisjon-systemer. Strukturen til convolutional neurale nettverk muliggjør at de kan tolke bilde-data, og konvertere dem til tall som et fullt koblet nettverk kan tolke. Et CNN har fire hovedkomponenter:

  • Convolutional lag
  • Subsampling/lag-pooling
  • Aktiveringsfunksjoner
  • Fullt koblet lag

De convolutional lagene er det som tar inn bildene som inndata i nettverket, og analyserer bildene og henter verdiene av pikslene. Subsampling eller lag-pooling er der bildedataene konverteres/reduces til å forenkle representasjonen av bildene og redusere sensitiviteten av bildefiltrene til støy. Aktiveringsfunksjonene kontrollerer hvordan dataene flyter fra ett lag til neste lag, og de fullt koblet lagene er det som analyserer verdiene som representerer bildene og lærer mønstrene i disse verdiene.

RNNs/LSTMs

Rekursive neurale nettverk, eller RNN-er, er populære for oppgaver der rekkefølgen av dataene betyr noe, der nettverket må lære om en sekvens av data. RNN-er brukes vanligvis til problemer som naturlig språk-behandling, da rekkefølgen av ord betyr noe når man dekoder meningen av en setning. Den “rekursive” delen av begrepet Rekursivt Neuralt Nettverk kommer fra det faktum at utdata for en gitt element i en sekvens avhenger av den foregående beregningen samt den nåværende beregningen. I motsetning til andre former for dyp neurale nettverk, har RNN-er “minner”, og informasjonen beregnet på de forskjellige tidspunktene i sekvensen brukes til å beregne de endelige verdiene.

Det finnes flere typer RNN-er, inkludert to-veis RNN-er, som tar fremtidige elementer i sekvensen i betraktning, i tillegg til de foregående elementene, når de beregner en verdien. En annen type RNN er en Lang Kort-Tids-Hukommelse, eller LSTM, nettverk. LSTM-er er typer RNN-er som kan håndtere lange kjeder av data. Vanlige RNN-er kan falle offer for noe som kalles “eksploderende gradient-problemet”. Dette problemet oppstår når kjeden av inndata blir ekstremt lang, men LSTM-er har teknikker for å bekjempe dette problemet.

Autoencoders

De fleste av de dyp læring-arkitektene nevnt hittil er brukt til overvåket læring-problemer, snarere enn uovervåket læring-oppgaver. Autoencoders kan transformere uovervåket data til en overvåket format, og tillate neurale nettverk å brukes på problemet.

Autoencoders brukes ofte til å detektere anomali i datasett, et eksempel på uovervåket læring, da naturen til anomalien ikke er kjent. Slike eksempler på anomali-deteksjon inkluderer svindel-deteksjon for finansielle institusjoner. I denne sammenhengen er formålet med en autoencoder å bestemme en basis for vanlige mønster i dataene og identifisere anomali eller outliers.

Strukturen til en autoencoder er ofte symmetrisk, med skjulte lag arrayet slik at utdataene fra nettverket ligner inndataene. De fire typene autoencoders som sees ofte brukt er:

  • Vanlige/autoencoders
  • Flere-lags-encoders
  • Convolutional-encoders
  • Regulariserte encoders

Vanlige/autoencoders er bare neurale nettverk med ett skjult lag, mens flere-lags-autoencoders er dype nettverk med mer enn ett skjult lag. Convolutional-autoencoders bruker convolutional-lag i stedet for, eller i tillegg til, fullt koblet lag. Regulariserte autoencoders bruker en spesiell type tap-funksjon som lar neuralt nettverk utføre mer komplekse funksjoner, funksjoner utover å bare kopiere inndata til utdata.

Generative Adversarial Networks

Generative Adversarial Networks (GAN-er) er faktisk flere dyp neurale nettverk i stedet for bare ett nettverk. To dyp læring-modeller trenes samtidig, og deres utdata mates til den andre modellen. Nettverkene er i konkurranse med hverandre, og siden de får tilgang til hverandres utdata, lærer de begge av denne dataen og forbedrer seg. Nettverkene spiller essensielt en kontrafeitekts- og detektions-spill, der den generative modellen prøver å lage nye eksempler som vil lure detektiven/modellen/diskriminatoren. GAN-er har blitt populære i feltet datavisjon.

Dyp Læring Sammendrag

Dyp læring utvider prinsippene til neurale nettverk for å skape sofistikerte modeller som kan lære komplekse mønster og generalisere disse mønstrene til fremtidige datasett. Convolutional neurale nettverk brukes til å tolke bilder, mens RNN-er/LSTM-er brukes til å tolke sekvensielle data. Autoencoders kan transformere uovervåket læring-oppgaver til overvåket læring-oppgaver. Til slutt er GAN-er flere nettverk som er satt mot hverandre, og som er spesielt nyttige for datavisjon-oppgaver.

Blogger og programmerer med spesialområder i Machine Learning og Deep Learning emner. Daniel håper å hjelpe andre med å bruke kraften av AI for sosialt godt.