Neural Networks for Dummies: en hurtig introduktion til dette fascinerende felt

Har du nogensinde spekuleret på, hvad er alle disse neurale netværk, som alle taler om, og var for bange for at spørge? Nå, frygt ikke mere! Ved afslutningen af ​​dette indlæg kan du gå ind på en hvilken som helst konference og blænde frokostbordet med dine nytilkomne buzzwords!

Hvis du har åbnet din browser i de sidste par år, skal du have set udtrykket “Neurale netværk” et par (hundrede) gange.

I denne korte læsning vil jeg give dig en vis kontekst på domænet og selve tingen. Du bliver ikke verdens ekspert på området i de næste 5 minutter, men du vil komme igennem den ikke-trivielle ombordstigning. Du lærer også nogle buzzwords til at imponere familien ved middagsbordet, især hvis du følger læselisten i slutningen.

Hvad er maskinlæring?

For at forstå neurale netværk skal vi først forstå maskinindlæring. Og for at forstå maskinindlæring, lad os først tale om menneskelig læring eller "klassisk programmering".

I klassisk programmering er jeg, udvikleren, nødt til at forstå aspekterne af det problem, jeg prøver at løse, og at vide nøjagtigt, hvad alle regler er for at gøre det til løsningen.

Lad os for eksempel sige, at jeg ønsker, at mit program skal kende forskellen mellem en firkant og en cirkel. Derefter er en måde at håndtere det på at skrive et program, der kan registrere hjørner, og derefter anvende det til at tælle hjørnerne. Hvis mit program ser 4 hjørner, så er denne form er et kvadrat, og hvis det ser ingen hjørner, så er denne form er en cirkel.

Og maskinindlæring? Meget generelt er maskinindlæring = læring fra eksempler.

I maskinindlæring, når vi står over for nøjagtigt det samme problem med at skelne cirkler og firkanter fra hinanden, ville vi designe et læringssystem, der ville tage som input mange eksempler på former og deres klasse (firkant eller cirkel). Vi håber, at maskinen i sig selv lærer de egenskaber, der adskiller dem.

Og så, mine venner, når maskinen først har lært alle disse egenskaber, kan jeg give den et nyt billede af en cirkel eller en firkant, en den ikke har set før , og den vil forhåbentlig klassificere den korrekt.

Hvad er en neuron?

En neuron er i sammenhæng med neurale netværk et smarte navn, som smart-alecky mennesker bruger, når de er for lyst til at sige funktion . En funktion , i sammenhæng med matematik og datalogi, er et smukt navn på noget, der tager noget input, anvender noget logik og output resultatet.

Mere til det punkt kan en neuron betragtes som en læringsenhed .

Derfor er vi nødt til at forstå, hvad der er en læringsenhed i sammenhæng med maskinlæring. Så vil vi også forstå den mest basale byggesten i et neuralt netværk, som er neuronen.

For at illustrere, lad os sige, at jeg prøver at forstå forholdet mellem antallet af ord i et blogindlæg og antallet af ord, som folk faktisk læser fra det blogindlæg. Husk - vi er i Machine Learning-domænet, hvor vi lærer af eksempler.

Så jeg samler mange eksempler på antal ord i blogindlæg, betegnet med x , og hvor mange ord folk rent faktisk læser i disse indlæg, y , og jeg forestiller mig, at der er noget forhold mellem dem, betegnet med f .

Men det trick er, at jeg bare har brug for at fortælle maskinen (programmet) slags hvad er forholdet jeg forvente at se (for eksempel en lige linje), og maskinen vil forstå den faktiske linje er det nødvendigt at tegne.

Hvad fik jeg her?

Næste gang jeg vil skrive et blogindlæg, der har x ord i det, kan maskinen anvende forholdet f det konstateret, og fortæl mig, hvor mange ord, jeg kan forvente, at folk rent faktisk at læse, y .

Så et neuralt netværk er ...

Hvis en neuron er en funktion, så er et neuralt netværk et netværk af funktioner! Det betyder, at vi har mange (mange mange) sådanne funktioner, sådanne læringsenheder , og alle deres input og output er sammenflettet, og de fodrer hinanden.

Som designer af dette netværk er det mit job at besvare nogle spørgsmål:

  • Hvordan modellerer jeg input og output ? (for eksempel, hvis input er tekst, kan jeg modellere det med bogstaver? tal? vektorer?….)
  • Hvad er funktionerne i hver neuron? (er de lineære? eksponentielle?…)
  • Hvad er arkitektur af netværket? (det vil sige hvilken funktions output er hvilken funktions input?)
  • Hvad er buzzwordsKan jeg bruge til at beskrive mit netværk?

Når jeg har besvaret disse spørgsmål, kan jeg "vise" netværket mange (mange mange) eksempler på korrekte input og output, i håb om at når jeg "viser" det et nyt eksempel input, det aldrig har set før, vil det vide for at give den korrekte output.

Hvordan denne læringsproces fungerer ligger uden for dette indlæg, men for at lære mere kan du se dette. Du kan også gå til denne sindssygt seje Neural Network Playground for at få en bedre forståelse af, hvad dette betyder.

Neurale netværk - Den uendelige historie

Da dette felt bogstaveligt talt eksploderer, er mængden af ​​nyt indhold (og af høj kvalitet!), Der kommer ud hvert minut, umuligt for ethvert menneske at følge. (OMG tror du, der kommer et tidspunkt, hvor mennesker kan opbygge en AI, der vil være i stand til at holde styr på menneskelige fremskridt inden for AI-domænet ??)

Når man kommer ind i dette felt, er det første, man skal vide, at INGEN ved alt. Så føl dig godt tilpas, hvor du er, og bliv bare nysgerrig :)

Derfor vil jeg have, at mine sidste ord i dette indlæg skal være en henvisning til nogle af mine personlige yndlingsressourcer at lære af:

  • Gal Yona - en af ​​mine foretrukne bloggere i marken. Hendes indlæg spænder fra tekniske tekniske forklaringer til semi-filosofiske anmeldelser.
  • Siraj Raval - en youtuber med en enorm samling af videoer, der spænder fra teoretiske forklaringer til praktiske tutorials, alt sammen super sjovt også!
  • Christopher Olah - en lidenskabelig og indsigtsfuld forsker opretholder en visuelt indbydende blog med indlæg fra grundlæggende koncepter til dybdyk.
  • Mod Data Science er den største medium-publikation, der er specifik for området, og hvad jeg elsker ved det er, at redaktørerne er fremragende kuratorer. Når du har et par minutter / timer til overs, skal du bare gå til deres hjemmeside og begynde at udforske alt , fra praktiske værktøjer til dybt algoritmisk indhold.