Hvad er neurale netværk og hvordan virker de?

Neurale netværk er det næste store, når det kommer til tunge beregninger og smarte algoritmer. Sådan fungerer de, og hvorfor de er så fantastiske.

Neurale netværk er det næste store, når det kommer til tunge beregninger og smarte algoritmer.  Sådan fungerer de, og hvorfor de er så fantastiske.
Reklame

Hvis du holder op med tekniske nyheder, har du sandsynligvis stødt på begrebet neurale netværk (også kendt som neurale netværk).

I 2016 slog Googles AlphaGo-neurale netværk en af ​​de bedste professionelle Go-spillere i verden i en 4-1-serie. YouTube meddelte også, at de ville bruge neurale netværk til bedre at forstå sine videoer. YouTube vil bruge neurale netværk til rent faktisk at forstå videoer. YouTube vil bruge neurale netværk til rent faktisk at forstå videoer. Søgning YouTube kan være frustrerende, fordi YouTube ikke ser videoerne som en person gør. For nylig dokumenterer Google et patent, der kan ændre det. Læs mere . Tusindvis af andre historier kan komme til at tænke på.

Men hvad er et neuralt netværk? Hvordan virker det? Og hvorfor er det så populært i maskinindlæring?

En computer som en hjerne

Moderne neuroscientists diskuterer ofte hjernen som en type computer. Neurale netværk sigter mod at gøre det modsatte: opbygge en computer, der fungerer som en hjerne.

Selvfølgelig har vi kun en kortfattet forståelse af hjernens ekstremt komplekse funktioner, men ved at skabe en forenklet simulering af hvordan hjernen behandler data, kan vi opbygge en type computer, der fungerer meget anderledes end en standard.

Computerprocessorer behandler data serielt ("i rækkefølge"). De udfører mange operationer på et sæt data, en ad gangen. Parallel behandling ("behandling af flere strømme på én gang") øger computeren betydeligt ved at bruge flere processorer i serie.

I billedet nedenfor kræver parallelbehandlingseksemplet fem forskellige processorer:

seriel vs parallel behandling
Billedkredit: Forklar det

Et kunstigt neuralt netværk (såkaldt for at skelne det fra de faktiske neurale netværk i hjernen) har en fundamentalt anden struktur. Det er meget sammenkoblet. Dette gør det muligt at behandle data meget hurtigt, lære af disse data og opdatere sin egen interne struktur for at forbedre ydeevnen.

Den høje grad af sammenkobling har imidlertid nogle forbløffende virkninger. For eksempel er neurale netværk meget gode til at genkende dunkle mønstre i data.

Evnen til at lære

Det neurale netværks evne til at lære er dets største styrke. Med standard computerarkitektur skal en programmør udvikle en algoritme, der fortæller computeren, hvad man skal gøre med indgående data for at sikre, at computeren udsender det korrekte svar.

Et input-output-svar kan være så enkelt som "når A-tasten trykkes, vises 'A' på skærmen 'eller så kompliceret som at udføre komplekse statistikker. Neurale netværk har på den anden side ikke brug for samme slags algoritmer. Gennem læringsmekanismer kan de i det væsentlige designe deres egne algoritmer 4 Maskinindlæringsalgoritmer, der former dit liv 4 Maskinindlæringsalgoritmer, der skaber dit liv Du kan ikke indse det, men maskinindlæring er allerede omkring dig, og det kan udøve en overraskende grad af indflydelse over dit liv. Tro mig ikke? Du kan blive overrasket. Læs mere for at sikre, at de fungerer korrekt.

Det er vigtigt at bemærke, at fordi neurale netværk er softwareprogrammer, der er skrevet på maskiner, der bruger standard seriel-behandlingshardware, indstiller den nuværende teknologi stadig grænser. Faktisk at bygge en hardware version af et neuralt netværk er et andet problem helt.

Fra Neuroner til Noder

Nu hvor vi har lagt grunden til, hvordan neurale netværk fungerer, kan vi begynde at se på nogle af de specifikationer. Den grundlæggende struktur af et kunstigt neuralt netværk ser sådan ud:

neurale net arkitektur

Hver af cirklerne kaldes en "node" og det simulerer en enkelt neuron. Til venstre er indgangsnoder, i midten er skjulte noder, og til højre er outputnoder.

I meget grundlæggende termer accepterer inputnoderne indgangsværdier, hvilket kan være en binær 1 eller 0, en del af en RGB-farveværdi, status for et skakbrik eller noget andet. Disse noder repræsenterer de oplysninger, der flyder ind i netværket.

Hver indgangsknude er forbundet med et antal skjulte noder (nogle gange til hver skjult node, nogle gange til en delmængde). Inputnoder tager de oplysninger, de gives, og sender det videre til det skjulte lag.

For eksempel kan en indtastningsknude sende et signal ("ild" i neurologien) hvis den modtager en 1 og forbliver dvalende, hvis den modtager et nul. Hver skjult knude har en tærskel: hvis alle dens summerede indgange når en bestemt værdi, brænder den.

Fra Synapses til Forbindelser

Hver forbindelse, der svarer til et anatomisk synaps, gives også en specifik vægt, som gør det muligt for netværket at lægge større vægt på virkningen af ​​en bestemt knude. Her er et eksempel:

neurale nettovægt

Som du kan se, er vægten af ​​forbindelse B højere end den for forbindelse A og C. Lad os sige, at skjult node 4 kun brænder, hvis den modtager en samlet indgang på 2 eller derover. Det betyder, at hvis 1 eller 3 ilder på egen hånd, bliver 4 ikke udløst, men 1 og 3 sammen vil udløse knuden. Knude 2 kunne også udløse node på egen hånd gennem forbindelse B.

Lad os tage vejret som et praktisk eksempel. Sig, at du designer et simpelt neuralt netværk for at afgøre, om der skal være en vinterstormadvarsel.

Ved hjælp af ovenstående forbindelser og vægte kan knudepunkt 4 kun brande, hvis temperaturen er under 0 F, og vindene er over 30 MPH, eller det vil brænde, hvis der er mere end en 70 procent chance for sne. Temperaturen vil blive fodret til knudepunkt 1, vind til knudepunkt 3 og sandsynlighed for sne i knude 2. Nu kan knudepunkt 4 tage hensyn til alle disse, når man bestemmer hvilket signal der skal sendes til outputlaget.

Bedre end simpel logik

Selvfølgelig kan denne funktion simpelthen vedtages med enkle OG / ELLER logiske porte. Men mere komplekse neurale netværk, som det nedenfor, er i stand til betydeligt mere komplekse operationer.

neurale net eksempel
Billedkredit: Neurale netværk og dyb læring af Michael A. Nielsen

Output layer noder fungerer på samme måde som skjulte lag: output knudepunkter summen indgangen fra det skjulte lag, og hvis de når en bestemt værdi, afbryder outputnoderne og sender bestemte signaler. Ved afslutningen af ​​processen sender outputlaget et sæt signaler, der angiver resultatet af input.

Mens netværket vist ovenfor er simpelt, kan dybe neurale netværk have mange skjulte lag og hundredvis af noder.

dybe neurale netværk
Billedkredit: Neurale netværk og dyb læring af Michael A. Nielsen

Fejlkorrektion

Processen hidtil er forholdsvis enkel. Men hvor neurale netværk virkelig skinner er i læring. De fleste neurale netværk bruger en proces kaldet backpropagation, som sender signaler baglæns gennem netværket.

Før programmereren udbreder et neuralt netværk, kører de det gennem en træningsfase, hvor det modtager et sæt input med kendte resultater. For eksempel kan en programmør lære et neuralt netværk at genkende billeder Brug din smartphone til at identificere noget med CamFind Brug din smartphone til at identificere noget med CamFind Denne app kan virkelig identificere næsten ethvert objekt, du smider på det. Det er ikke kun køligt, men det har også en masse praktiske anvendelser! Læs mere . Indgangen kan være et billede af en bil, og den korrekte udgang ville være ordet "bil".

Programmeringen giver billedet som input og se, hvad der kommer ud af outputknudepunkterne. Hvis netværket reagerer med "fly", fortæller programmøren computeren, at den er forkert.

Netværket foretager derefter justeringer til sine egne forbindelser, der ændrer vægten af ​​forskellige forbindelser mellem knudepunkter. Denne handling styres af en specifik læring algoritme tilføjet til netværket. Netværket fortsætter med at justere forbindelsesvægten, indtil det giver den korrekte udgang.

Dette er en forenkling, men neurale netværk kan lære meget komplekse operationer ved hjælp af lignende principper.

Løbende forbedring

Selv efter træning fortsætter backpropagation - og det er her neurale netværk bliver rigtig cool. De fortsætter med at lære, som de bliver brugt, integrere ny information og gøre tweaks til vægten af ​​forskellige forbindelser, bliver mere og mere effektive og effektive til den opgave, de var designet til.

Dette kunne være lige så enkelt som billedgenkendelse eller lige så komplekst som at spille Go.

På denne måde ændrer neurale netværk altid og forbedrer sig. Og det kan have overraskende effekter, hvilket resulterer i netværk, der prioriterer ting, som en programmør ikke ville have tænkt at prioritere.

Udover den ovenfor beskrevne proces, som kaldes overvåget læring, er der også en anden metode: uovervåget læring .

I denne situation tager neurale netværk et input og forsøger at genskabe det nøjagtigt i deres produktion ved hjælp af tilbagekaldelse for at opdatere deres forbindelser. Det kan lyde som en frugtløs øvelse, men på den måde lærer netværk at udvinde nyttige funktioner og generalisere disse funktioner for at forbedre deres modeller.

Dybsproblemer

Backpropagation er en meget effektiv måde at undervise neurale netværk på, når de kun er et par lag dybt. Efterhånden som antallet af skjulte lag stiger, falder effektiviteten af ​​backpropagation. Dette er et problem for dybe netværk. Ved hjælp af backpropagation er de ofte ikke mere effektive end enkle netværk.

Forskere har fået en række løsninger på dette problem, hvis særlige forhold er ret komplicerede og ud over omfanget af dette indledende stykke. Hvad mange af disse løsninger forsøger at gøre, er simpelt at reducere netværkets kompleksitet ved at træne det til at "komprimere" dataene.

neurale netbeskæring
Billedkredit: Song Han

For at gøre dette lærer netværket at udtrække et mindre antal identificerende egenskaber af inputen og bliver i sidste ende mere effektive i sine beregninger. I virkeligheden gør netværket generaliseringer og abstraktioner, meget på samme måde som mennesker lærer.

Efter denne læring kan netværket beskære knuder og forbindelser, som det anser mindre vigtige. Dette gør netværket mere effektivt, og læring bliver lettere.

Neural Network Applications

Så neurale netværk simulerer hvordan hjernen lærer ved at bruge flere lag af noder - input, skjult og output - og de er i stand til at lære både i overvågede og uovervågne situationer. Komplekse net kan lave abstraktioner og generalisere, gøre dem mere effektive og bedre i stand til at lære.

Hvad kan vi bruge disse fascinerende systemer til?

I teorien kan vi bruge neural netværk til næsten alt. Og du har sikkert brugt dem uden at indse det. De er meget almindelige i tale og visuel anerkendelse, for eksempel fordi de kan lære at udvælge specifikke træk, der lyder eller billeder har til fælles.

Så når du spørger Siri 8 ting, du sandsynligvis ikke har forstået, kan Siri gøre 8 ting, du sandsynligvis ikke har realiseret, Siri kunne gøre. Siri er blevet en af ​​iPhone's definerende funktioner, men for mange er det ikke altid det mest nyttige. Mens nogle af dette skyldes begrænsningerne af stemmegenkendelse, er det underligt at bruge ... Læs mere hvor den nærmeste benzinstation er, din iPhone sætter din tale gennem et neuralt netværk for at finde ud af, hvad du siger. Der kan være et andet neuralt netværk, der lærer at forudsige de slags ting, du sandsynligvis vil bede om.

siri ikon

Selvkørende biler kan bruge neurale netværk til at behandle visuelle data, og dermed følge vejregler og undgå kollisioner. Roboter af alle typer kan drage fordel af neurale netværk, som hjælper dem med at lære at udføre opgaver effektivt. Computere kan lære at spille spil som skak, Go og Atari klassikere. Hvis du nogensinde har snakket med en chatbot, er der en chance for, at det bruger et neuralt netværk til at tilbyde passende svar.

internet søgning kan drage stor fordel af neurale netværk, da den yderst effektive parallelbehandling model hurtigt kan kaste mange data. Et neuralt netværk kan også lære dine vaner at tilpasse dine søgeresultater eller forudsige, hvad du vil søge efter i den nærmeste fremtid. Denne forudsigelsesmodel ville naturligvis være meget værdifuld for markedsførere (og alle andre, der skal forudsige kompleks menneskelig adfærd).

Billedgenkendelse, optisk tegngennemgang De 5 bedste OCR-værktøjer til ekstraktion af tekst fra billeder De 5 bedste OCR-værktøjer til udtrækning af tekst fra billeder Når du har papirrammer, hvordan får du alt, hvad den udskrevne tekst konverteres til noget, som et digitalt program vil blive Kan genkende og indeksere? Hold en god OCR-software tæt ved. Læs mere, aktiemarkedet forudsigelse, rutefinding, stor databehandling, medicinsk omkostningsanalyse, salg prognoser, videospil AI ... mulighederne er næsten uendelige. Evnen til neurale netværk til at lære mønstre, gøre generaliseringer og med succes forudsige adfærd gør dem værdifulde i utallige situationer.

Fremtiden for neurale netværk

Neurale netværk har avanceret fra meget enkle modeller til meget komplekse læringsimuleringer. De er i vores telefoner, vores tabletter og kører mange af de webtjenester, vi bruger. Der er mange andre maskin-læringssystemer derude.

Men neurale netværk, på grund af deres lighed (på en meget forenklet måde) til den menneskelige hjerne, er nogle af de mest fascinerende. Da vi fortsætter med at udvikle og forfine modeller, er der ingen at fortælle, hvad de vil være i stand til.

Kender du til interessante anvendelser af neurale netværk? Har du selv erfaring med dem? Hvad finder du mest interessant om denne teknologi? Del dine tanker i kommentarerne nedenfor!

In this article