Hvad er neurale netværk, og hvordan fungerer de?

  • Peter Holmes
  • 0
  • 1552
  • 226
Reklame

Hvis du følger med på technyheder, er du sandsynligvis kommet på tværs af begrebet neurale netværk (også kendt som neurale net).

I 2016, for eksempel, slo Googles AlphaGo neuralnetværk en af ​​de bedste professionelle Go-spillere i verden i en 4-1-serie. YouTube annoncerede også, at de ville bruge neurale netværk for bedre at forstå dets videoer YouTube vil bruge neurale netværk til faktisk at forstå videoer YouTube vil bruge neurale netværk til faktisk at forstå videoer Søgning på YouTube kan være frustrerende, fordi YouTube ikke ser videoerne på den måde, som en person gør. For nylig arkiverer Google et patent, der kan ændre det. . Dusinvis af andre historier kan komme til at tænke på.

Men hvad er egentlig et neuralt netværk? Hvordan virker det? Og hvorfor er det så populært inden for maskinlæring?

En computer som en hjerne

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

Selvfølgelig har vi kun en flydende 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 forskelligt fra en standard.

Computerprocessorer behandler data serielt (“i orden”). De udfører mange operationer på et datasæt, ad gangen. Parallel behandling (“behandling af flere strømme på én gang”) fremskynder computeren markant ved hjælp af flere processorer i serie.

På billedet herunder kræver det parallelle behandlingseksempel fem forskellige processorer:

Billedkredit: ExplainThatStuff

Et kunstigt neuralt netværk (såkaldt for at skelne det fra de faktiske neurale netværk i hjernen) har en grundlæggende forskellig struktur. Det er meget sammenkoblet. Dette giver det mulighed for at behandle data meget hurtigt, lære af disse data og opdatere sin egen interne struktur for at forbedre ydelsen.

Den høje grad af sammenkobling har dog nogle forbløffende effekter. F.eks. Er neurale netværk meget gode til at genkende obskure mønstre i data.

Evnen til at lære

Et neuralt netværks evne til at lære er dets største styrke. Med standard databehandlingsarkitektur skal en programmør udvikle en algoritme, der fortæller computeren, hvad de skal gøre med indgående data for at sikre sig, at computeren udsender det rigtige svar.

En input-output-respons kan være så enkel som “Når der trykkes på A-tasten, 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 den samme type algoritmer. Gennem indlæringsmekanismer kan de i det væsentlige designe deres egne algoritmer 4 Maskinlæringsalgoritmer, der former dit liv 4 Maskinlæringsalgoritmer, der former dit liv Du er måske ikke klar over det, men maskinlæring er allerede rundt omkring dig, og det kan udøve en overraskende grad af indflydelse over dit liv. Tro mig ikke? Du bliver måske overrasket. der sikrer, at de fungerer korrekt.

Det er vigtigt at bemærke, at fordi neurale netværk er softwareprogrammer, der er skrevet på maskiner, der bruger almindelig seriebehandlingshardware, indfører den nuværende teknologi stadig grænser. At bygge en hardwareversion af et neuralt netværk er faktisk et andet problem.

Fra neuroner til knudepunkter

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

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

I meget basale termer accepterer indgangsknuderne inputværdier, der kan være en binær 1 eller 0, del af en RGB-farveværdi, status for et skakstykke eller noget andet. Disse noder repræsenterer informationen, der flyder ind i netværket.

Hver inputnode er forbundet til et antal skjulte noder (undertiden til hver skjult node, undertiden til et undermængde). Inputknudepunkter tager de oplysninger, de får, og videregiver dem til det skjulte lag.

For eksempel sender en input-knude muligvis et signal (“ild,” i forhold til neurovidenskaben), hvis den modtager en 1, og forbliver sovende, hvis den får en nul. Hver skjult node har en tærskel: hvis alle dens summerede input når en bestemt værdi, skyder den.

Fra synapser til forbindelser

Hver forbindelse, svarende til en anatomisk synapse, tildeles også en specifik vægt, som tillader netværket at lægge en stærkere vægt på handlingen af ​​en bestemt knude. Her er et eksempel:

Som du kan se, er forbindelsen B's vægt højere end forbindelsen A og C. Lad os sige, at skjult node 4 kun affyres, hvis den modtager et samlet input på 2 eller større. Det betyder, at hvis 1 eller 3 fyrer på egen hånd, vil 4 ikke blive udløst, men 1 og 3 sammen ville udløse noden. Node 2 kunne også udløse noden på egen hånd gennem forbindelse B.

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

Ved hjælp af ovennævnte forbindelser og vægte kan knudepunkt 4 kun fyres, hvis temperaturen er under 0 F, og vindene er over 30 MPH, eller det ville skyde, hvis der er mere end 70 procents chance for sne. Temperaturen vil blive ført ind i knudepunkt 1, vinder til knudepunkt 3 og sandsynligheden for sne til knudepunkt 2. Nu kan knudepunkt 4 tage alle disse i betragtning, når de bestemmer, hvilket signal der skal sendes til outputlaget.

Bedre end simpel logik

Naturligvis kunne 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.

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

Udgangslagsknuder fungerer på samme måde som skjulte lag: outputknudepunkter summerer input fra det skjulte lag, og hvis de når en bestemt værdi, tændes udgangsknuderne og sender specifikke signaler. Ved afslutningen af ​​processen sender outputlaget et sæt signaler, der angiver resultatet af inputen.

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

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

Fejlkorrektion

Hidtil er processen relativt enkel. Men hvor neurale netværk virkelig skinner er i læring. De fleste neurale net bruger en proces, der kaldes backpropagation, der sender signaler tilbage gennem netværket.

Før programmerere implementerer et neuralt netværk, kører de det gennem en træningsfase, hvor det modtager et sæt input med kendte resultater. F.eks. Kan en programmerer lære et neuralt netværk at genkende billeder 8 Nifty Apps til at identificere alt ved hjælp af din telefons kamera 8 Nifty Apps til at identificere alt ved hjælp af din telefons kamera Disse billedgenkendelsesapps giver dig mulighed for at identificere mønter, planter, produkter og meget mere med din telefons kamera. . Indgangen kan være et billede af en bil, og det korrekte output ville være ordet “bil.”

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

Netværket foretager derefter justeringer af sine egne forbindelser og ændrer vægten af ​​forskellige forbindelser mellem noder. Denne handling styres af en specifik læringsalgoritme, der er tilføjet til netværket. Netværket fortsætter med at justere forbindelsesvægtene, indtil det giver den rigtige output.

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

Kontinuerlig forbedring

Selv efter træning fortsætter bagpropagering - og det er her, neurale netværk bliver virkelig cool. De fortsætter med at lære, når de bruges, integrerer ny information og foretager justeringer til vægten af ​​forskellige forbindelser, bliver mere og mere effektive og effektive ved den opgave, de var designet til.

Dette kan være så simpelt som billedgenkendelse eller så kompliceret som at spille Go.

På denne måde ændres og forbedres neurale netværk altid. Og dette kan have overraskende effekter, hvilket resulterer i netværk, der prioriterer ting, en programmerer ikke ville have troet at prioritere.

Ud over den ovenfor beskrevne proces, der kaldes overvåget læring, der er 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 output ved hjælp af bagpropagering til at opdatere deres forbindelser. Dette kan lyde som en frugtløs øvelse, men på denne måde lærer netværk at udtrække nyttige funktioner og generalisere disse funktioner for at forbedre deres modeller.

Spørgsmål om dybde

Bagpropagering er en meget effektiv måde at lære neurale netværk på ... når de kun er et par lag dybe. Når antallet af skjulte lag øges, falder effektiviteten af ​​bagpropagering. Dette er et problem for dybe netværk. Ved hjælp af bagpropagering er de ofte ikke mere effektive end enkle netværk.

Forskere har fundet en række løsninger på dette problem, hvis detaljer er ret komplicerede og uden for dette indlednings stykke. Hvad mange af disse løsninger simpelt set prøver at gøre er at mindske netværkets kompleksitet ved at træne det til “komprimere” dataene.

Billedkredit: Song Han

For at gøre dette lærer netværket at udtrække et mindre antal identificerende funktioner ved inputen og til sidst blive mere effektiv i dens beregninger. I virkeligheden foretager netværket generaliseringer og abstraktioner, meget på samme måde som mennesker lærer.

Efter denne indlæring kan netværket beskære noder og forbindelser, som det synes mindre vigtigt. Dette gør netværket mere effektivt og læring bliver lettere.

Neurale netværksapplikationer

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ågede situationer. Komplekse net er i stand til at gøre abstraktioner og generalisere, hvilket gør dem mere effektive og bedre i stand til at lære.

Hvad kan vi bruge disse fascinerende systemer til?

I teorien kan vi bruge neurale netværk til næsten alt. Og du har sandsynligvis brugt dem uden at indse det. De er meget almindelige inden for tale og visuel genkendelse, for eksempel fordi de kan lære at vælge specifikke træk, som lyde eller billeder har til fælles.

Så når du spørger Siri 8 ting, som du sandsynligvis ikke indså, at Siri kunne gøre 8 ting, som du sandsynligvis ikke vidste, at Siri kunne gøre. Siri er blevet en af ​​iPhone's definerende funktioner, men for mange mennesker er det ikke altid det mest nyttige. Selvom noget af dette skyldes begrænsningerne i stemmegenkendelse, mærkeligheden ved at bruge ... hvor den nærmeste tankstation er, lægger din iPhone 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, hvilke slags ting du sandsynligvis vil bede om.

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

Internetsøgning kan drage stor fordel af neurale netværk, da den højeffektive parallelle behandlingsmodel hurtigt kan snyde en masse 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 vil naturligvis være meget værdifuld for marketingfolk (og enhver anden, der har brug for at forudsige kompleks menneskelig adfærd).

Billedgenkendelse, optisk tegngenkendelse De 5 bedste OCR-værktøjer til udtrækning 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 all den trykte tekst konverteret til noget, som et digitalt program vil være i stand til at genkende og indeksere? Opbevar en god OCR-software i nærheden. , forudsigelse af aktiemarkeder, rutefinding, big data-behandling, medicinsk omkostningsanalyse, salgsprognoser, videospil AI ... mulighederne er næsten uendelige. Neuralnetværkets evne til at lære mønstre, foretage generaliseringer og med succes forudsige adfærd gør dem værdifulde i utallige situationer.

Neuralnets fremtid

Neurale netværk er avanceret fra meget enkle modeller til meget komplekse læringssimuleringer. De findes i vores telefoner, vores tablets og kører mange af de webtjenester, vi bruger. Der er mange andre maskinlæringssystemer derude.

Men neurale netværk er på grund af deres lighed (på en meget forenklet måde) med den menneskelige hjerne nogle af de mest fascinerende. Når vi fortsætter med at udvikle og forfine modeller, er der ingen, der fortæller, 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 ved denne teknologi? Del dine tanker i kommentarerne herunder!




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.