Vad är Deep Learning?

över 4 år sedan

Under de senaste åren har Deep Learning blivit det mest framgångsrika tillvägagångssättet för mönsterigenkänning för ”perceptuella uppgifter”. När du pratar med Siri, Cortana eller Google Voice tolkas ditt tal av ett djupt neuralt nätverk. Och i ”The Large Scale Visual Recognition Challenge”, så överträffar neurala nätverk människor när det gäller att känna igen saker på bilder.

Deep Learning, eller "Djupt Lärande", blir snabbt vanligt i allt från filmrekommendationer till Facebook-taggar,  Autonoma, självkörande, fordon och har klarat av att besegra European GO-mästaren. Deep Learning och AI blir, i snabbt ökande takt, allt vanligare inom fler och fler områden. Deep Learning är inte nytt utan har funnits sedan 1970-talet i en eller annan form.

 

Kort om Deep Learning

Grundidén är att träna ett mycket djupt (dvs massor av lager) neuralt nätverk. Flera studier har visat att ett neuralt nätverk, om det är korrekt konfigurerat, kan reproducera vilken funktion som helst (tänk universella Turing-maskiner). Men det betyder inte att vi vet hur man konfigurerar dem på bästa sätt. Det är här Deep Learning kommer in. Genom att ha massor av lager så kommer ett Neuralt Nätverk att kunna lösa ett problem i många små steg, snarare än i ett eller två stora steg. Även om detta inte verkar vara en revolutionerande idé betyder det att med en tillräckligt stor uppsättning träningsdata är det möjligt att träna / konfigurera dessa neurala nätverk för att lösa uppgifter som tidigare varit omöjliga.

Deep Learning Revolutionen

Även om vi har grepp om idén och vi vet hur man skall göra så är träningen av Djupa Neurala Nätverk otroligt beräkningsintensivt och har därmed, historiskt, varit väldigt dyra. Det är inte bara det att näten själva är mycket stora men stora dataset krävs för att träna dem bra. Hittills har vi helt enkelt inte haft beräkningsförmågan eller tillgång till de data som krävs för att Deep Learning ska visa vad den kan göra. Detta ändras nu i rask takt med användning av NVIDIAs grafikkort för parallell programmering. Deep Learning görs nu nästan uteslutande på GPUer.

Deep Learning är egentligen stora (många komplexa lager) neurala nätverk. Vad har förändrats sedan de neurala nätverk vi kände till på 80-talet och 90-talet jämfört med nuvarande nätverk, är att (a) datorerna, som exempelvis NVIDIA DGX-1 , har blivit tillräckligt snabba, b) dataset har blivit tillräckligt stora [bildbehandling och video data], och (c) vi kan nu (genom förbättrade tekniker) initiera den neurala nätverksutbildningen bättre.

De flesta applikationer för Deep Learning idag handlar mest om övervakat lärande (även om stora framsteg görs för närvarande i oövervakat lärande). Däremot, I motsats till andra maskininlärningsalgoritmer vars prestanda-platåer hänger ihop med skala- och mängden data, om vi konstruerar större neurala nätverk med större datamängder, kommer deras prestanda att fortsätta öka.

Således:Mer data + större nätverk + Mer maskinvara bearbetning = * Bättre resultat

* kompletterat med bättre algoritmer och bättre insikter

Hur fungerar Deep Learning egentligen?

Den vanligaste formen av Deep Learning handlar om vad som kallas ett ”konvolutionellt neuralt nätverk”, det här är en speciell typ av neuralt nätverk där varje artificiell neuron är ansluten till ett litet fönster över ”inputen” eller föregående lager. Till exempel, i en visuell uppgift, kommer varje neuron i det första konvolutionsskiktet bara att se en liten del av bilden, kanske bara några pixlar. Detta konvolutionsskikt består av flera kartor, var och en söker efter en annan egenskap än den andra och varje neuron i varje karta söker efter den egenskapen på en lite annorlunda plats.

 

Det här första skiktet kommer (efter viss träning) att identifiera användbara lågnivåfunktioner i bilden, såsom linjer, kanter och gradienter i olika orienteringar. Detta konvolutionsskikt sub-samplas sedan i det som kallas ett samlingsskikt, innan hela processen börjar igen med ett annat konvolutionsskikt denna gång för att hitta kombinationer av funktionerna i det föregående skiktet (linjer, hörn, kurvor etc.).

Som med de flesta neurala nätverk startar parametrarna för systemet slumpmässigt och nätverket fungerar dåligt. Under träningen kan du dock programmera nätverket och visa vad den korrekta klassificeringen av en bild är och efter många många exempel ändras nätverksparametrarna / vikterna långsamt för att ge rätt klassificering. Systemet har lärt sig.

 

CGit samarbetar med Nvidia, Purestorage och Arista Networs för att leverera infrastruktur som motsvarar de krav som våra kunder ställer i sina Deep Learning/AI-projekt. Ta kontakt med oss så berättar vi mer!