stub Hva er dyp læring? (2024) - Unite.AI
Kontakt med oss

AI 101

Hva er Deep Learning?

mm
oppdatert on

Dyplæring er et av de mest innflytelsesrike og raskest voksende feltene innen kunstig intelligens. Men å få en intuitiv forståelse av dyp læring kan være vanskelig fordi begrepet dyp læring dekker en rekke forskjellige algoritmer og teknikker. Deep learning 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 stammer fra maskinlæring, så la oss derfor bruke et minutt på å forklare hva maskinlæring er.

Enkelt sagt er maskinlæring en metode for å gjøre det mulig for datamaskiner å utføre spesifikke oppgaver uten eksplisitt å kode hver linje av algoritmene som brukes for å utføre disse oppgavene. Det finnes mange forskjellige maskinlæringsalgoritmer, men en av de mest brukte algoritmene er en flerlags perceptron. En flerlags perceptron er også referert til som et nevralt nettverk, og det består av en serie noder/nevroner koblet sammen. Det er tre forskjellige lag i en flerlags perceptron: inngangslaget, det skjulte laget og utdatalaget.

Inndatalaget tar dataene inn i nettverket, hvor de manipuleres av nodene i det midterste/skjulte laget. Nodene i det skjulte laget er matematiske funksjoner som kan manipulere dataene som kommer fra inngangslaget, og trekke ut relevante mønstre fra inngangsdataene. Dette er hvordan det nevrale nettverket "lærer". Nevrale nettverk får navnet sitt fra det faktum at de er inspirert av strukturen og funksjonen til den menneskelige hjernen.

Forbindelsene mellom noder i nettverket har verdier som kalles vekter. Disse verdiene er i hovedsak antagelser om hvordan dataene i ett lag er relatert til dataene i det neste laget. Etter hvert som nettverket trener, justeres vektene, og målet er at vektene/antakelsene om dataene til slutt vil konvergere til verdier som nøyaktig representerer de meningsfulle mønstrene i dataene.

Aktiveringsfunksjoner er tilstede i nodene til nettverket, og disse aktiveringsfunksjonene transformerer dataene på en ikke-lineær måte, noe som gjør det mulig for nettverket å lære komplekse representasjoner av dataene. Aktiveringsfunksjoner multipliserer inngangsverdiene med vektverdiene og legger til et skjevhetsledd.

Hva er Deep Learning?

Deep learning er betegnelsen på maskinlæringsarkitekturer som forbinder mange flerlags perseptroner, slik at det ikke bare er ett skjult lag, men mange skjulte lag. Jo "dypere" det dype nevrale nettverket er, jo mer sofistikerte mønstre kan nettverket lære.

De dype lagnettverkene som består av nevroner blir noen ganger referert til som fullt tilkoblede nettverk eller fullt tilkoblede lag, og refererer til det faktum at en gitt nevron opprettholder en forbindelse til alle nevronene som omgir den. Fullt tilkoblede nettverk kan kombineres med andre maskinlæringsfunksjoner for å skape forskjellige dyplæringsarkitekturer.

Ulike typer dyp læring

Det finnes en rekke dyplæringsarkitekturer som brukes av forskere og ingeniører, og hver av de forskjellige arkitekturene har sin egen spesialitet.

Konvolusjonelle nevrale nettverk

Konvolusjonelle nevrale nettverk, eller CNN-er, er den nevrale nettverksarkitekturen som vanligvis brukes til å lage datasynssystemer. Strukturen til konvolusjonelle nevrale nettverk gjør dem i stand til å tolke bildedata, og konvertere dem til tall som et fullstendig tilkoblet nettverk kan tolke. En CNN har fire hovedkomponenter:

  • Konvolusjonslag
  • Delprøvetaking/samlingslag
  • Aktiveringsfunksjoner
  • Fullt tilkoblede lag

Konvolusjonslagene er det som tar inn bildene som input til nettverket, analyserer bildene og henter verdiene til pikslene. Subsampling eller pooling er der bildeverdiene konverteres/reduseres for å forenkle representasjonen av bildene og redusere følsomheten til bildefiltrene for støy. Aktiveringsfunksjonene kontrollerer hvordan dataene flyter fra ett lag til neste lag, og de fullt tilkoblede lagene er det som analyserer verdiene som representerer bildet og lærer mønstrene i disse verdiene.

RNN-er/LSTM-er

Tilbakevendende nevrale nettverk, eller RNN-er, er populære for oppgaver der rekkefølgen på dataene betyr noe, der nettverket må lære om en sekvens av data. RNN-er brukes ofte på problemer som naturlig språkbehandling, ettersom rekkefølgen på ordene betyr noe når du dekoder betydningen av en setning. Den "tilbakevendende" delen av begrepet Recurrent Neural Network kommer fra det faktum at utgangen for et gitt element i en sekvens er avhengig av den forrige beregningen så vel som den nåværende beregningen. I motsetning til andre former for dype nevrale nettverk, har RNN-er "minner", og informasjonen som er beregnet ved de forskjellige tidstrinnene i sekvensen brukes til å beregne de endelige verdiene.

Det finnes flere typer RNN-er, inkludert toveis RNN-er, som tar hensyn til fremtidige elementer i sekvensen, i tillegg til de tidligere elementene, når man beregner en vares verdi. En annen type RNN er en Langtidsminne, eller LSTM, Nettverk. LSTM-er er typer RNN som kan håndtere lange kjeder med data. Vanlige RNN-er kan bli offer for noe som kalles "eksploderende gradientproblem". Dette problemet oppstår når kjeden av inndata blir ekstremt lang, men LSTM-er har teknikker for å bekjempe dette problemet.

Autokodere

De fleste av de dype læringsarkitekturene som er nevnt så langt, brukes på veiledede læringsproblemer, i stedet for uovervåket læringsoppgaver. Autoenkodere er i stand til å transformere uovervåket data til et overvåket format, slik at nevrale nettverk kan brukes på problemet.

Autokodere brukes ofte til å oppdage anomalier i datasett, et eksempel på uovervåket læring ettersom arten av anomalien ikke er kjent. Slike eksempler på avsløring av anomalier inkluderer svindeloppdagelse for finansinstitusjoner. I denne sammenhengen er hensikten med en autokoder å bestemme en grunnlinje av vanlige mønstre i dataene og identifisere anomalier eller uteliggere.

Strukturen til en autokoder er ofte symmetrisk, med skjulte lag arrangert slik at utgangen fra nettverket ligner inngangen. De fire typene autoenkodere som ser hyppig bruk er:

  • Vanlige/vanlige autoenkodere
  • Flerlags kodere
  • Konvolusjonskodere
  • Regulerte kodere

Vanlige/vanlige autokodere er bare nevrale nett med et enkelt skjult lag, mens flerlags autokodere er dype nettverk med mer enn ett skjult lag. Konvolusjonelle autokodere bruker konvolusjonslag i stedet for, eller i tillegg til, fullt koblede lag. Regulariserte autokodere bruker en spesifikk type tapsfunksjon som lar det nevrale nettverket utføre mer komplekse funksjoner, andre funksjoner enn bare å kopiere innganger til utganger.

Generative motstandernettverk

Generative Adversarial Networks (GAN) er faktisk flere dype nevrale nettverk i stedet for bare ett nettverk. To dyplæringsmodeller trenes samtidig, og resultatene deres mates til det andre nettverket. Nettverkene er i konkurranse med hverandre, og siden de får tilgang til hverandres utdata, lærer de både av disse dataene og forbedrer seg. De to nettverkene spiller i hovedsak et spill med forfalskning og deteksjon, der den generative modellen prøver å skape nye instanser som vil lure detektivmodellen/diskriminatoren. GAN-er har blitt populære innen datasyn.

Sammendrag av dyp læring

Dyplæring utvider prinsippene til nevrale nettverk for å lage sofistikerte modeller som kan lære komplekse mønstre og generalisere disse mønstrene til fremtidige datasett. Konvolusjonelle nevrale nettverk brukes til å tolke bilder, mens RNN-er/LSTM-er brukes til å tolke sekvensielle data. Autoenkodere kan transformere uovervåkede læringsoppgaver til overvåkede læringsoppgaver. Til slutt er GAN-er flere nettverk som står opp mot hverandre som er spesielt nyttige for datasynsoppgaver.

Blogger og programmerer med spesialiteter innen Maskinlæring og Dyp læring emner. Daniel håper å hjelpe andre å bruke kraften til AI til sosialt gode.