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

Neurala nätverk är nästa stora sak när det gäller tunga beräkningar och smarta algoritmer. Så här fungerar de och varför de är så fantastiska.

Neurala nätverk är nästa stora sak när det gäller tunga beräkningar och smarta algoritmer.  Så här fungerar de och varför de är så fantastiska.
Annons

Om du fortsätter med tekniska nyheter, har du förmodligen stött på begreppet neurala nätverk (även kallat neurala nät).

I 2016 slog Googles AlphaGo-neurala nätverk en av de bästa professionella Go-spelarna i världen i en 4-1-serie. YouTube meddelade också att de skulle använda neurala nätverk för att bättre förstå sina videoklipp. YouTube kommer att använda neurala nätverk för att verkligen förstå videoklipp. YouTube kommer att använda neurala nätverk för att verkligen förstå videor. Att söka på YouTube kan vara frustrerande, eftersom YouTube inte ser videon på samma sätt som en person gör. Nyligen lägger Google ett patent som kan ändra det. Läs mer . Dussintals andra berättelser kan komma ihåg.

Men vad exakt är ett neuralt nätverk? Hur fungerar det? Och varför är det så populärt i maskininlärning?

En dator som en hjärna

Moderna neurovetenskapare diskuterar ofta hjärnan som en typ av dator. Neurala nätverk syftar till att göra motsatsen: bygga en dator som fungerar som en hjärna.

Självklart har vi bara en kortfattad förståelse av hjärnans extremt komplexa funktioner, men genom att skapa en förenklad simulering av hur hjärnan behandlar data kan vi bygga en typ av dator som fungerar väldigt annorlunda än en vanlig.

Datorprocessorer bearbetar data seriellt ("i ordning"). De utför många operationer på en uppsättning data, en i taget. Parallell bearbetning ("bearbetning av flera strömmar på en gång") minskar väsentligt datorn genom att använda flera processorer i serie.

I bilden nedan kräver parallellbehandlingsexemplet fem olika processorer:

seriell vs parallell bearbetning
Bildkredit: Förklara det

Ett konstgjort neuralt nätverk (så kallat att skilja det från de faktiska neurala nätverken i hjärnan) har en fundamentalt annan struktur. Det är mycket sammankopplat. Detta gör det möjligt att bearbeta data mycket snabbt, lära av den data och uppdatera sin egen interna struktur för att förbättra prestanda.

Den höga sammankopplingsnivån har emellertid några häpnadsväckande effekter. Till exempel är neurala nätverk mycket bra för att känna igen dunkla mönster i data.

Förmågan att lära

Det neurala nätverks förmåga att lära sig är sin största styrka. Med standarddatabasarkitektur måste en programmerare utveckla en algoritm som berättar datorn vad man ska göra med inkommande data för att säkerställa att datorn matar ut rätt svar.

Ett input-output-svar kan vara lika enkelt som "när A-tangenten trycks in, visas" A "på skärmen" eller så komplicerat som komplex statistik. Neurala nätverk, å andra sidan, behöver inte samma typ av algoritmer. Genom inlärningsmekanismer kan de i huvudsak utforma sina egna algoritmer 4 Maskininlärningsalgoritmer som formar ditt liv 4 Maskininlärningsalgoritmer som skapar ditt liv Du kanske inte inser det men maskininlärning är redan runt omkring dig och det kan utöva en överraskande grad av inflytande över ditt liv. Tro mig inte? Du kan bli förvånad. Läs mer så att de fungerar korrekt.

Det är viktigt att notera att eftersom neurala nätverk är program som skrivits på maskiner som använder standard seriell bearbetningshårdvara, ställer nuvarande teknik fortfarande gränser. Att bygga en hårdvaruversion av ett neuralt nätverk är faktiskt ett annat problem helt.

Från Neuroner till Noder

Nu när vi har lagt grunden för hur neurala nätverk fungerar, kan vi börja titta på några av detaljerna. Den grundläggande strukturen hos ett konstgjort neuralt nätverk ser så här ut:

neurala nätarkitekturen

Var och en av cirklarna kallas en "nod" och det simulerar en enda neuron. Till vänster finns ingångsnoder, i mitten är dolda noder, och till höger finns utgångsnoder.

I mycket grundläggande termer accepterar ingångsnoderna ingångsvärden, vilket kan vara en binär 1 eller 0, en del av ett RGB-färgvärde, status för ett schackbitar eller något annat. Dessa noder representerar informationen som flyter in i nätverket.

Varje ingångsknapp är kopplad till ett antal dolda noder (ibland till varje dold nod, ibland till en delmängd). Inmatningsnoder tar informationen de ges och skickar den vidare till det dolda lagret.

Till exempel kan en ingångsknapp skicka en signal ("eld" i neurologin) om den tar emot en 1 och förblir vilande om den tar emot en noll. Varje dold nod har ett tröskelvärde: om alla dess summerade ingångar når ett visst värde, bränder den.

Från synapser till anslutningar

Varje anslutning, som motsvarar en anatomisk synaps, ges också en specifik vikt, vilket gör det möjligt för nätverket att lägga större tonvikt på åtgärden hos en specifik nod. Här är ett exempel:

neural nettovikt

Som du kan se är vikten av anslutning B högre än den för anslutningen A och C. Låt oss säga att dold nod 4 bara kommer att avfyra om den får en total ingång på 2 eller högre. Det betyder att om 1 eller 3 eldar på egen hand så kommer 4 inte att utlösas, men 1 och 3 tillsammans skulle utlösa noden. Node 2 kan också utlösa noden i sig via anslutning B.

Låt oss ta väder som ett praktiskt exempel. Säg att du utformar ett enkelt neuralt nätverk för att avgöra om det ska finnas en vinterstormvarning.

Med hjälp av ovanstående anslutningar och vikter kan nod 4 bara skjuta om temperaturen är under 0 F och vindar över 30 MPH, eller det skulle elda om det finns mer än 70 procent chans för snö. Temperaturen skulle matas in i nod 1, vindar till nod 3 och sannolikhet för snö i nod 2. Nu kan nod 4 ta hänsyn till alla dessa när man bestämmer vilken signal som ska skickas till utgångslaget.

Bättre än enkel logik

Naturligtvis kan denna funktion enkelt utfärdas med enkla OCH / ELLER logiska grindar. Men mer komplexa neurala nätverk, som den nedan, kan göra betydligt mer komplexa operationer.

neuralt nät exempel
Bildkredit: Neurala nätverk och djupt lärande av Michael A. Nielsen

Utgångslagsnoder fungerar på samma sätt som dolda lager: utgångsnoder summerar inmatningen från det dolda lagret, och om de når ett visst värde, slår utmatningsnoderna ut och skickar specifika signaler. I slutet av processen sänder utmatningsskiktet en uppsättning signaler som indikerar resultatet av ingången.

Medan nätverket som visas ovan är enkelt kan djupa neurala nätverk ha många dolda lager och hundratals noder.

djupt neuralt nätverk
Bildkredit: Neurala nätverk och djupt lärande av Michael A. Nielsen

Felkorrigering

Processen hittills är relativt enkel. Men där neurala nätverk verkligen lyser är att lära. De flesta neurala nät använder en process som kallas backpropagation, som skickar signaler bakåt genom nätverket.

Innan programmerare distribuerar ett neuralt nätverk kör de det genom en träningsfas där den får en uppsättning ingångar med kända resultat. Till exempel kan en programmerare undervisa ett neuralt nätverk för att känna igen bilder Använd din smartphone för att identifiera någonting med CamFind Använd din smartphone för att identifiera någonting med CamFind Den här appen kan verkligen identifiera nästan alla objekt du kastar på den. Det är inte bara coolt, men det har också en massa praktiska användningsområden! Läs mer . Ingången kan vara en bild av en bil, och den korrekta effekten skulle vara ordet "bil".

Programmeraren ger bilden som inmatning och ser vad som kommer ut ur utgångsnoden. Om nätverket svarar med "flygplan", berättar programmeraren att den är felaktig.

Nätverket gör då anpassningar till sina egna anslutningar, vilket ändrar vikterna av olika länkar mellan noder. Denna åtgärd styrs av en specifik inlärningsalgoritm som läggs till i nätverket. Nätverket fortsätter att justera anslutningsvikter tills det ger rätt utgång.

Detta är en förenkling, men neurala nätverk kan lära sig mycket komplexa operationer med hjälp av liknande principer.

Fortsatt förbättring

Även efter träning fortsätter backpropagation - och det är här neurala nätverk blir riktigt coola. De fortsätter att lära sig som de används, integrera ny information och göra tweaks till vikten av olika anslutningar, blir mer och mer effektiva och effektiva i den uppgift de var avsedda för.

Detta kan vara lika enkelt som bildigenkänning eller så komplicerat som att spela Go.

På detta sätt förändras neurala nätverk alltid och förbättras. Och detta kan ha överraskande effekter, vilket resulterar i nätverk som prioriterar saker som en programmerare inte skulle ha tänkt prioritera.

Förutom processen som beskrivs ovan, som kallas övervakat lärande, finns det också en annan metod: oövervakat lärande .

I denna situation tar neurala nätverk en inmatning och försöker återskapa den exakt i sin produktion, med hjälp av backpropagation för att uppdatera sina anslutningar. Det kan låta som en fruktlös övning, men på det här sättet lär nätverk att extrahera användbara funktioner och generalisera dessa funktioner för att förbättra sina modeller.

Djupproblem

Backpropagation är ett mycket effektivt sätt att undervisa neurala nätverk ... när de bara är några lager djupt. När antalet dolda skikt ökar, minskar effektiviteten av backpropagation. Detta är ett problem för djupa nätverk. Med hjälp av backpropagation är de ofta inte mer effektiva än enkla nätverk.

Forskare har kommit med ett antal lösningar på detta problem, vars specifika är ganska komplicerade och bortom omfattningen av denna inledningsdel. Vilka många av dessa lösningar försöker göra, är enkla att minska nätets komplexitet genom att träna den för att "komprimera" data.

neural net beskärning
Bildkrediter: Song Han

För att göra detta lär nätverket att extrahera ett mindre antal identifierande funktioner i ingången, så småningom bli effektivare i sina beräkningar. I själva verket gör nätverket generaliseringar och abstraktioner, mycket på samma sätt som människor lär sig.

Efter denna inlärning kan nätverket beskära noder och anslutningar som den anser vara mindre viktiga. Detta gör nätverket effektivare och lärandet blir enklare.

Neural Network Applications

Så neurala nätverk simulerar hur hjärnan lär sig genom att använda flera lager noder - inmatning, dolda och utdata - och de kan lära sig både i övervakade och obesvarade situationer. Komplexa nät kan göra abstraktioner och generalisera, göra dem mer effektiva och bättre kunna lära sig.

Vad kan vi använda dessa fascinerande system för?

I teorin kan vi använda neurala nätverk för nästan vad som helst. Och du har säkert använt dem utan att förstå det. De är mycket vanliga i tal och visuellt erkännande, till exempel, för att de kan lära sig att välja ut specifika egenskaper som låter eller bilder har gemensamt.

Så när du frågar Siri 8 saker som du förmodligen inte hade förverkligat Siri kunde göra 8 saker du inte trodde Siri kunde göra Siri har blivit en av iPhone: s definierande funktioner, men för många människor är det inte alltid det mest användbara. Medan vissa av detta beror på begränsningarna av röstigenkänning, oddity med att använda ... Läs mer där närmaste bensinstation, din iPhone sätter ditt tal genom ett neuralt nätverk för att ta reda på vad du säger. Det kan finnas ett annat neuralt nätverk som lär sig att förutsäga de olika saker som du sannolikt kommer att begära.

siri ikon

Självkörande bilar kan använda neurala nätverk för att bearbeta visuella data, därigenom följa vägregler och undvika kollisioner. Robots av alla slag kan dra nytta av neurala nätverk som hjälper dem att lära sig att effektivt slutföra uppgifter. Datorer kan lära sig att spela spel som schack, Go och Atari- klassiker. Om du någonsin pratat med en chatbot finns det en chans att det var ett neuralt nätverk som erbjuder lämpliga svar.

Internetsökning kan dra nytta av neurala nätverk, eftersom den högeffektiva parallellbehandlingsmodellen snabbt kan kasta mycket data. Ett neuralt nätverk kan också lära dig dina vanor för att anpassa dina sökresultat eller förutse vad du ska leta efter inom en snar framtid. Denna förutsägelsesmodell skulle uppenbarligen vara mycket värdefull för marknadsförare (och någon annan som måste förutsäga ett komplext mänskligt beteende).

Bildigenkänning, optisk teckenigenkänning De 5 bästa OCR-verktygen för att extrahera text från bilder De 5 bästa OCR-verktygen för att extrahera text från bilder När du har pappersstrålar, hur får du allt det skrivna texten konverteras till något som ett digitalt program kommer att bli kunna känna igen och indexera? Håll en bra OCR-programvara i närheten. Läs mer, aktiemarknadsprediktning, ruttsökning, stor databehandling, medicinsk kostnadsanalys, försäljningsprognos, videospel AI ... möjligheterna är nästan oändliga. Möjligheten för neurala nätverk att lära sig mönster, göra generaliseringar och framgångsrikt förutsäga beteende gör dem värdefulla i otaliga situationer.

Framtiden för neurala nät

Neurala nätverk har avancerat från väldigt enkla modeller till mycket komplexa inlärningssimuleringar. De är i våra telefoner, våra tabletter och kör många av de webbtjänster vi använder. Det finns många andra maskinlärningssystem där ute.

Men neurala nätverk, på grund av deras likhet (på ett mycket förenklat sätt) till människans hjärna, är några av de mest fascinerande. Eftersom vi fortsätter att utveckla och förfina modeller, är det ingen som säger vad de kan klara av.

Känner du till några intressanta användningar av neurala nätverk? Har du själv erfarenhet av dem? Vad tycker du mest intressant om denna teknik? Dela dina tankar i kommentarerna nedan!

In this article