Grundlæggende AI
Hvad er Dyb Læring?
Dyb læring er et af de mest indflydelsesrige og hurtigst voksende områder i kunstig intelligens. Det kan dog være svært at få en intuitiv forståelse for dyb læring, da begrebet dækker over en række forskellige algoritmer og teknikker. Dyb læring er også en underdisciplin til maskinlæring i almindelighed, så det er vigtigt at forstå, hvad maskinlæring er, for at forstå dyb læring.
Hvad er Maskinlæring?
Dyb læring er en udvidelse af nogle af de koncepter, der stammer fra maskinlæring, så lad os tage et øjeblik til at forklare, hvad maskinlæring er.
Maskinlæring er en metode til at enable computere til at udføre bestemte opgaver uden at kode hver enkelt linje af algoritmerne, der bruges til at udføre disse opgaver. Der er mange forskellige maskinlæring-algoritmer, men en af de mest almindeligt brugte algoritmer er en multilayer-perceptron. En multilayer-perceptron kaldes også for et neuralt netværk, og det består af en række knuder/neuroner, der er forbundet med hinanden. Der er tre forskellige lag i en multilayer-perceptron: input-laget, det skjulte lag og output-laget.
Input-laget tager data ind i netværket, hvor det manipuleres af knuderne i midten/det skjulte lag. Knuderne i det skjulte lag er matematiske funktioner, der kan manipulere data fra input-laget, og trække relevante mønstre ud af input-dataen. Dette er, hvordan neuralt netværk “lærer”. Neurale netværk får deres navn fra, at de er inspireret af strukturen og funktionen af det menneskelige hjerte.
Forbindelserne mellem knuderne i netværket har værdier, der kaldes vægte. Disse værdier er essentieligt antagelser om, hvordan data i ét lag er relateret til data i det næste lag. Når netværket trænes, justeres vægtene, og målet er, at vægtene/antagelserne om data vil til sidst konvergere på værdier, der nøjagtigt repræsenterer de meningsfulde mønstre inden for data.
Aktiveringsfunktioner er til stede i knuderne i netværket, og disse aktiveringsfunktioner transformerer data på en ikke-lineær måde, hvilket ermöglicer, at netværket kan lære komplekse repræsentationer af data. Aktiveringsfunktioner multiplicerer input-værdierne med vægt-værdierne og tilføjer en bias-term.
Hvad er Dyb Læring?
Dyb læring er betegnelsen for maskinlæring-arkitekturer, der forbinder mange multilayer-perceptron’er sammen, så der ikke er kun ét skjult lag, men mange skjulte lag. Jo “dybere” det dybe neurale netværk er, jo mere sofistikerede mønstre kan netværket lære.
De dybe lag-netværk, der består af neuroner, kaldes nogle gange fuldt forbundne netværk eller fuldt forbundne lag, med reference til, at en given neuron opretholder en forbindelse til alle neuronerne omkring den. Fult forbundne netværk kan kombineres med andre maskinlæring-funktioner for at skabe forskellige dybe læring-arkitekturer.
Forskellige Typer af Dyb Læring
Der er en række dybe læring-arkitekturer, der bruges af forskere og ingeniører, og hver af de forskellige arkitekturer har sin egen specialiserede brugsområde.
Convolutional Neurale Netværk
Convolutional neurale netværk, eller CNN’er, er den neurale netværks-arkitektur, der almindeligvis bruges til at skabe computer-vision-systemer. Strukturen af convolutional neurale netværk ermöglicer, at de kan fortolke billed-data, og konvertere dem til tal, som et fuldt forbundet netværk kan fortolke. Et CNN har fire store komponenter:
- Convolutional lag
- Subsampling/pooling lag
- Aktiveringsfunktioner
- Fult forbundne lag
De convolutional lag tager billederne ind i netværket, analyserer billederne og får værdierne af pixel-værdierne. Subsampling eller pooling er, hvor billed-værdierne konverteres/reduceres for at simplificere repræsentationen af billederne og reducere sensitiviteten af billed-filtrene til støj. Aktiveringsfunktionerne kontrollerer, hvordan data flyder fra ét lag til det næste lag, og de fuldt forbundne lag er, hvad analyserer værdierne, der repræsenterer billedet, og lærer mønstrene i disse værdier.
RNN’er/LSTM’er
Recurrent neurale netværk, eller RNN’er, er populære til opgaver, hvor rækkefølgen af data er vigtig, hvor netværket skal lære om en sekvens af data. RNN’er anvendes ofte til problemer som naturlig sprogbehandling, da rækkefølgen af ord er vigtig, når man dekoder betydningen af en sætning. Den “recurrente” del af begrebet Recurrent Neural Network kommer fra, at outputtet for et givet element i en sekvens afhænger af den foregående beregning samt den nuværende beregning. I modsætning til andre former for dybe neurale netværk har RNN’er “erindringer”, og informationen beregnet på de forskellige tidspunkter i sekvensen bruges til at beregne de endelige værdier.
Der er flere typer RNN’er, herunder bidirectional RNN’er, der tager fremtidige elementer i sekvensen i betragtning, samt tidligere elementer, når de beregner et elements værdi. En anden type RNN er en Long Short-Term Memory, eller LSTM, netværk. LSTM’er er typer af RNN, der kan håndtere lange kæder af data. Almindelige RNN’er kan falde offer for noget, der kaldes “exploding gradient-problemet”. Dette problem opstår, når kæden af input-data bliver ekstremt lang, men LSTM’er har teknikker til at bekæmpe dette problem.
Autoencoders
De fleste af de dybe læring-arkitekturer, der er nævnt hidtil, anvendes til overvågede læring-problemer, snarere end uovervåede læring-opgaver. Autoencoders kan transformere uovervåede data til en overvåget format, så neurale netværk kan bruges på problemet.
Autoencoders bruges ofte til at detektere anomalier i datasets, et eksempel på uovervået læring, da naturen af anomalien ikke er kendt. Sådanne eksempler på anomalidetektering inkluderer svindeldetektering for finansielle institutioner. I denne kontekst er formålet med en autoencoder at bestemme en baseline for normale mønstre i data og identificere anomalier eller outliers.
Strukturen af en autoencoder er ofte symmetrisk, med skjulte lag anordnet sådan, at outputtet af netværket ligner inputtet. De fire typer autoencoders, der ser hyppig brug, er:
- Almindelige/autoencoders
- Flere-lags encoders
- Convolutional encoders
- Regulariserede encoders
Almindelige/autoencoders er bare neurale netværk med ét skjult lag, mens flere-lags autoencoders er dybe netværk med mere end ét skjult lag. Convolutional autoencoders bruger convolutional lag i stedet for, eller i tillæg til, fuldt forbundne lag. Regulariserede autoencoders bruger en specifik type tab-funktion, der låter neuralt netværk udføre mere komplekse funktioner, funktioner andre end blot at kopiere input til output.
Generative Adversarial Netværk
Generative Adversarial Netværk (GAN’er) er faktisk flere dybe neurale netværk i stedet for kun ét netværk. To dybe læring-modeller trænes på samme tid, og deres output sendes til det andet netværk. Netværkene er i konkurrence med hinanden, og da de får adgang til hinandens output-data, lærer de begge af denne data og forbedrer sig. De to netværk spiller essentieligt en counterfeit- og detektions-spil, hvor den generative model forsøger at skabe nye eksemplarer, der vil narre detektions-modellen/diskriminatoren. GAN’er er blevet populære i området computer-vision.
Dyb Læring Sammenfatning
Dyb læring udvider principperne for neurale netværk for at skabe sofistikerede modeller, der kan lære komplekse mønstre og generalisere disse mønstre til fremtidige datasets. Convolutional neurale netværk bruges til at fortolke billeder, mens RNN’er/LSTM’er bruges til at fortolke sekventielle data. Autoencoders kan transformere uovervåede læring-opgaver til overvåede læring-opgaver. Endelig er GAN’er flere netværk, der er i konkurrence med hinanden, og som er særligt nyttige til computer-vision-opgaver.












