Din IP-adress: Okänd · Din status: SkyddadOskyddadOkänd

Hoppa till huvudinnehåll

Vad är neurala nätverk och hur fungerar de?

Neurala nätverk är en väsentlig teknologi för utvecklingen inom djupinlärning. Man brukar säga att neurala nätverk “simulerar den mänskliga hjärnan” och behandlar data på ett liknande sätt. Det är såklart inte möjligt att bokstavligt talat simulera hjärnan, men rent arkitekturellt liknar teknologin den fysiska representationen vi idag har av hjärnan. Det är ett nätverk av noder där varje nod ges en viss vikt och kopplas på ett speciellt sätt, precis som att hjärnan rent fysiskt är ett nätverk av neuroner som kräver vissa elektriska impulser för att skapa reaktioner.

Vad är neurala nätverk och hur fungerar de?

Vad är neurala nätverk?

Definition av ett neuralt nätverk

Neurala nätverk, eller neuronnät, är ett samlingsnamn för metoder inom artificiell intelligens som genom behandling av data har förmågan att lära sig av erfarenhet. Nätverken består av självlärande algoritmer som bearbetar information i samarbetande noder. Trots den komplexa behandlingsprocessen är resultaten inte bara sammanhängande, utan också värdefulla inom en rad olika områden – till exempel bildigenkänning, språkbehandling och taligenkänning.

Neurala nätverk används i en process inom maskininlärning som kallas för djupinlärning. Sammankopplade noder används som om de vore neuroner i den mänskliga hjärnan för att återskapa förhållanden som möjliggör inlärning. Det lägger grunden för ett dynamiskt och självreglerande system som datorer kan använda för att kontinuerligt rätta sina misstag och lära sig av dem.

Hur fungerar neurala nätverk?

Neurala nätverk hämtar sin konceptuella inspiration från den mänskliga hjärnan. Det är alltså människan själv och följaktligen sätten vi lär oss på, som lägger grunden för nätverksarkitekturen. På samma sätt som när våra neuroner i samspel genererar vår inlärningsförmåga genom elektriska signaler, samarbetar noder inom ett neuralt nätverk för att lösa ett problem.

Hur fungerar neurala nätverk?

Självklart finns det väsentliga skillnader – vi vet ju inte ens hur hjärnan faktiskt fungerar – men processen kan åtminstone beskrivas som likartad. I grund och botten handlar neurala nätverk om att lösa matematiska beräkningar, vilket däremot inte kan sägas om hjärnan. Som sagt, det är egentligen bara en ungefärligt korrekt jämförelse, men ändå viktig att poängtera eftersom den ofta används utan förklaring.

Hur ett simpelt neuralt nätverk är uppbyggt

Ett simpelt neuralt nätverk består av minst tre lager. Ett input-lager, ett dolt lager och ett output-lager. Input-lagret är helt enkelt det lager som tar emot information och matar in det i det neurala nätverket. Input-lagret behandlar och analyserar även datan enligt förbestämda algoritmer. Den resulterande kategoriseringen lägger grunden för hela den resterande processen.

När input-lagret är klart skickas datan över till det dolda lagret. Till skillnad från input-lagret kan det finnas flera dolda lager. Det dolda lagret analyserar datan från föregående lager och genomför ytterligare operationer innan datan skickas vidare.

Output-lagret utför den slutgiltiga databehandlingen i ett neuralt nätverk och kan, precis som det dolda lagret, bestå av en eller flera noder. Om klassificeringen av databehandlingen som sker i output-lagret är simpel krävs det bara en. Till exempel om den behöver svara ja eller nej enligt någon parameter. Om problemet däremot är mer komplext krävs det fler.

Hur ett deep neural network är uppbyggt

Ett “djupt” neuralt nätverk, bättre känt på engelska som deep neural network, har flera dolda lager bestående av miljontals sammankopplade noder. Här används någonting som kallas för vikt eller weight, vilket är ett tal som beskriver styrkan på kopplingen mellan två noder. Talet är positivt om en nod exciterar en annan, och negativt om den inhiberar. Detta är snarlikt ekvivalent till hur hjärnan fungerar. Kopplingar mellan neuroner kan beskrivas vara starka eller svaga, exciterande eller inhiberande.

Rent praktiskt skiljer sig djupinlärning från andra typer av maskininlärning på så sätt att det kräver stora volymer data för att nyttja sin fulla potential och kapacitet. Men när de väl är igång och fungerar väger mångsidigheten och förmågan att lösa komplexa problem upp för den mer resurskrävande träningsperioden. Rent teoretiskt finns det nästan inga begränsningar för problemen djupinlärning kan lösa. Det är ett väldigt flexibelt ramverk.

Typer av neurala nätverk

Det finns många typer av neurala nätverk som alla har sina individuella styrkor och svagheter. Olika metoder används för att lösa olika problem – inte så förvånande kanske. Nedan går vi igenom några vanliga typer av neurala nätverk.

Convolutional neural network (CNN)

Vad som ger denna typ av neurala nätverk sitt namn är dess speciella dolda lager. Dessa lager utför matematiska beräkningar i form av filtrering och sammanfattning av data. Beräkningarna kallas för convolutions eller faltningar på svenska. Genom faltning kan CNN:er extrahera värdefull information från till exempel bilder och därigenom känna igen specifika bildegenskaper som färg, mättnad och former. Omvandlingsprocessen av datan gör den alltså lättare att behandla.

Recurrent neural network (RNN)

RNN:er används primärt när man behöver genomföra någon sorts sekventiell omordning av data. Exempel på detta är översättning, röstigenkänning och språkbehandling. Om du använt tjänster som till exempel Google Translate eller Apples Siri har du förmodligen kommit i kontakt med denna metod. RNN:er kommer ihåg data som nätverket behandlat tidigare, vilket innebär att hur ny data behandlas inte enbart bestäms av nätverket självt, utan resultaten varierar istället beroende på vad för sorts information som tidigare matats in.

Feedforward network

Så kallade feedforward neural networks är nätverk där signaler enbart går åt ett håll. Det börjar i input-noden och slutar i output-noden. På vägen dit används en feedback-process som gör det möjligt att utföra successiva förbättringar. Detta skiljer sig från recurrent neural networks som vi beskrev ovan. Processen i denna typ av neurala nätverk är sekventiell och inte rekursiv.

Autoencoders

Autoencoders är neurala nätverk som består av en encoder och en decoder. Det neurala nätverket lär sig en kodning av okategoriserad data som sedan går att användas för att omvandla indata i enlighet med ett visst mönster. Kodningen består av två processer, omvandling av indata (encoding) och motsatt operation (decoding) av utdata. En autoencoder lär sig alltså att hitta effektiva sätt att representera indata. Detta är en vanlig metod för att få mer kompakt data och används till exempel inom bildkomprimering.

Hur används neurala nätverk?

Neurala nätverk har i dagsläget otroligt många användningsområden. Det är svårt att föreställa sig att det inte för så länge sedan knappt var någon som insåg teknologins potential, men den tiden är förbi. Ibland är det faktiskt ganska oväntade branscher som anammat teknologi som bygger på neurala nätverk. Vi går igenom några av dessa nedan, men tyvärr kan vi inte täcka alla. Bortsett från bildigenkänning, taligenkänning och språkbehandling, används neurala nätverk för bland annat investeringsalgoritmer, diagnostisk mjukvara inom sjukvården, kvalitetskontroll, dataanalys och marknadsföring.

Bildigenkänning

Datorers förmåga att känna igen bilder är någonting som snabbt utvecklas. I dagsläget har vi till och med kommit så långt att artificiell intelligens kan skapa konst. Detta har dock fler användningsområden än enbart konst. Till exempel kan bildigenkänning användas för att förbättra självkörande bilar, ansiktsigenkänning, motverka identitetsstöld och identifiera skadligt innehåll på nätet.

Taligenkänning

Genom att analysera mönster i mänskligt tal som tonhöjd, språk och dialekt kan neurala nätverk identifiera och göra bedömningar som kan hjälpa till exempel digitala assistenter som Siri eller Alexa. Om man vet att personer som pratar har en viss dialekt kan man anpassa taligenkänningen för att vara mer receptiv mot de talmönster som karakteriserar den.

Språkbehandling

Språkbehandling (NLP) avser förmågan att analysera och behandla text i olika format. Neurala nätverk kan hjälpa användare att sammanfatta och självständigt beskriva text utan att återge innehållet ordagrant. Detta kan användas för att till exempel förbättra chatbotar, summera teknisk dokumentation och organisera data i textform.

Rekommendationssystem

Ett specialiserat neuralt nätverk kan analysera användarbeteende och utröna mönster i datan. Detta kan i sin tur användas för att förbättra rekommendationssystem och förbättra användarupplevelsen så att innehållet användaren möts av passar dennes preferenser. Här är risken att man sätter igång en sorts självuppfyllande process där användarens preferenser påverkas av algoritmens tolkning av användarens preferenser. Detta är anledningen till att det är så viktigt för algoritmer att vara flexibla. Annars är risken att användaren inte ser någonting nytt!

Neurala nätverk och djupinlärning

Neurala nätverk och djupinlärning är teknologier som faller under samlingsbegreppet artificiell intelligens. Inom artificiell intelligens utvecklas vanligtvis metoder i syfte att utföra uppgifter som annars hade krävt mänsklig inblandning. Maskininlärning är ett enklare exempel på artificiell intelligens och gör det möjligt att – baserat på förutbestämda parametrar – hitta mönster i data och förbättra algoritmer. Djupinlärning är i sin tur en typ av maskininlärning som använder neurala nätverk för att bearbeta stora mängder data.

Maskininlärning – åtminstone i traditionell bemärkelse – kräver mänsklig inblandning för att fungera ordentligt. Här måste en dataanalytiker eller tekniker organisera datan som matas in i förväg, vilket kan vara ett krävande arbete i sig. Däremot kräver djupinlärning ingen sådan förbehandling, utan datan som matas in i ett neuralt nätverk behövs sällan förbehandlas. Ren text-, ljud- eller bilddata matas helt enkelt in och så är det upp till nätverkets arkitektur att ge sammanhängande svar baserat på träningsdata.