Press "Enter" to skip to content

Let’s code a neural network in plain JavaScript


buon lunedì mattina oggi andiamo a
codifica una rete neurale da zero in
JavaScript
nessuna libreria nessuna ipotesi su
conoscendo la matematica perché non ne conosco nessuno
la matematica non conosco le statistiche che non conosco
conosco IA, ho solo una vaga molto vaga
idea di ciò che è la nostra rete neurale
da alcuni video di YouTube ho guardato I
sono stati procrastinando sull’apprendimento
apprendimento automatico per così tanto tempo, basta
farlo Sono MC J e si sta guardando divertimento
funzione divertente
[Musica]
lo spettacolo di oggi è sponsorizzato da chi spinge
sha rende facile aggiungere in tempo reale
funzionalità di comunicazione e collaborazione
alla tua app chat pub / sub mobile push
e Pheeb li controllano a push r punto
divertimento divertente fuckin dot-com che il collegamento è anche
nella descrizione dell’episodio è la Svezia
molto caldo, quindi i miei livelli di energia potrebbero essere
in costante diminuzione fino alla morte in questo
episodio va bene così la scorsa settimana ho guardato a
video di Daniel Schiffman sulle basi
di implementare una rete neurale che mi piace
Schiffman volevo iniziare
con l’apprendimento automatico e ho appena capito
che hey reti neurali che suona
è bello iniziare con quello che ho trasmesso in streaming
su Twitch
A volte fluisco su Twitch quindi se tu
non seguirmi su Twitch a cui dovresti
twitch.tv slash fun fun function twitch
è ancora un po ‘un hobby, ma io
mi piace molto farlo è stato un grande affare
di divertimento non è risultato troppo bene però
è in termini di risultati che non ho davvero
completa la rete neurale ma non lo sono
dormirci un po ‘
di più e penso di avere qualcosa da fare
mostrarti da quello che ho imparato così
sto andando a questa serie di apprendimento automatico
provare a cavalcare molto sul fatto
che non conosco niente che non conosca
sono molto Python di cui non so molto
la matematica non so molto delle statistiche
Non so molto di probabilità I
non so molto sull’apprendimento automatico
e AI, quindi userò quello
la mente del principiante 7 e prova ad usare il
spazio da dove ho appena imparato
qualcosa che cercherò di calmare
ricordare ciò che è stato come prima
l’ho imparato e lo userò
per realizzare questi video per te, quindi sono gentile
di fare questi video per me stesso
ma come due giorni fa
si spera che andrà a finire in
contenuto interessante o potrebbe essere solo
molto molto confuso questo è un nuovo e
modo sperimentale di fare video per me
quindi lasceremo i tuoi commenti in basso
dopo che l’hai visto dove sei
ci ho pensato e cosa posso fare
meglio o se dovessi semplicemente buttarlo
via comunque andiamo a dare un’occhiata
a questo
Sto usando notebook osservabili perché
sono incredibili non sponsorizzati
o qualsiasi cosa siano solo questi in realtà
pratici taccuini interattivi è una specie di
come jsfiddle ma puoi effettivamente archiviare
dati e oh sono così bravi che non andrò
in una spiegazione di alto livello di ciò che a
la rete neurale è onestamente perché
c’è già un po ‘ il
video perfetto su quello esiste già da
tre blu uno marrone ma ciò che è a
rete neurale l’ ho collegata qui solo
guarda che prima prima di vedere questo
video se non sei sicuro di cosa sia neurale
la rete ti darà un buon risultato
una sorta di panoramica di alto livello su cosa
anche lui entra in un paio di Matthew
dettagli che stanno per essere
spaventoso ma non ti preoccupare non lo siamo
entrerò in quello solo per cercare di sapere
come se ci fosse la matematica, quindi il nostro obiettivo è farlo
fare come un ultra ultra semplice
rete neurale come il piccolo più sciocco
rete neurale come se non fosse nemmeno a
rete è solo una cellula cerebrale
il neurone perceptron qualsiasi cosa come le parole
usano non li useremo
parole in cui stiamo cercando di Avremo
cerca di concentrarti qui per ottenere il
principio giusto, quindi non ho intenzione di spendere un
molto tempo in parole che non ho intenzione di
passare un sacco di tempo nel cervello
analogie non sarebbero incidenti a New York
come il sangue che non è veramente importante
non intendevo cagare su tutto il
ricerca interessante che è stata fatta
su quello ma trovo quello ottenere
confuso e in matematica e il
la scienza del cervello delle cose è di tipo
il tipo di distrazione ha distolto l’attenzione
per me quando apprendo queste cose sono solo io
voglio arrivare alla sua essenza e
capire come risolve i problemi dopo
che bene allora possiamo andare a tuffarci nel
aspetti interessanti di ciò che sta oltre
e come si come si connette in
tutto ma per ora siamo interessati
a guardare a ciò che una rete neurale è
e come funziona, quindi stiamo andando a costruire
una piccola rete neurale sciocca e il
scopo di questa piccola sciocca neurale
rete è da classificare
da quale parte di un sistema di coordinate che
un punto è così da immaginare
sistema di coordinate e questo è come la linea
tra questo e poi è un mucchio di
punti e poi la rete neurale noi
insegnerà alla rete neurale a capire
fuori se un punto è su questo lato del
il sistema di coordinate o sulla linea
passando attraverso il sistema di coordinate o
da questo lato non è un’IA molto intelligente
che stiamo costruendo ma tu sai tesoro
i passi che costruiscono Skynet sono un dopo
parte in questa serie va bene cominciamo
genereremo un po ‘di random
punti che conosci come punti con XY
coordinate in un sistema di coordinate in
machine learning c’è un sacco di
sistemi di coordinate un po ‘
di matematica ed è un po ‘di
geometria lì che potrebbe darti
flashback da scuola superiore o
qualunque cosa, ma come cercare di respirare il
la prima cosa che faremo è
tira dentro speronato questo è uno dei
le cose belle osservabili è che tu
è sufficiente inserire i nostri moduli NPM
davvero bello quindi creiamo qualcosa a caso
punti punti casuali che userò
la funzione è la gamma e l’arancione
la funzione ci dà come numeri da 0 a
5 Z come se semplicemente ci dà che conosci il
numeri uno due sì, io davvero no
interessato ai numeri reali qui io
voglio solo una matrice che sia lunga 100 così
che posso fare matematica su di esso e poi posso
mi interessa davvero cosa c’è nella matrice che ho appena
voglio che tu lo sappia , io vengo assegnato a
numero casuale lì e questo è stato come
durante il flusso in uno dei torrenti
gli spettatori hanno effettivamente scritto questa funzione per
così è stato bello e interattivo
modo e c’è e vogliamo i numeri
va da meno 1 a 1 quindi vedi
qui piace
diventiamo come vedete da trincee
meno uno o due 180 numeri giusti di
il modo in cui ti potresti offendere per questo
sintassi qui questo è osservabile a
cosa osservabile questo non è strettamente a
variabile globale come giocare
JavaScript lo interpreta in realtà
creando un osservabile così quando lo faccio
come casuale posso fare punti punto casuale
lunghezza qui e chiedere punti casuali lì
quindi ogni volta che passo a questo intervallo qui
vuoi vedere questo numero, facciamolo
cambia questo a 200 che lo farà
aggiorna automaticamente in modo che questo è come
questo è un oggetto o cosa di base in
osservabile e come li si dichiara così
è che è in un primo momento sembra un
sintassi disgustosa ma in realtà
davvero bello da gestire comunque
questo non è in realtà punti ma è così
come vedi è solo numeri
ma noi versiamo al punto è una coordinata x
e y-coordinate in modo che sia quello che noi
non lo faremo e x e y-coordineremo così
venire Venerdì X e siamo gonna run via io
sto cercando di essere davvero molto felice anche
anche se è così caldo che ora abbiamo
alcune coordinate X e Y sono belle
va bene, voglio renderlo visivo
e il più interattivo possibile in modo che
non hai bisogno di lavorare esegui molto
codice nella tua testa e mantenere le astrazioni
nella tua testa quindi entreremo nel
Serie stiamo andando a cercare di quanto
possibile visualizzare costantemente ciò che il
sta succedendo l’inferno, quindi ho intenzione di disegnare
il sistema di coordinate e stiamo andando
disegnalo con SVG cosa mpj sopporta con me
sarà bello
va bene
ha disegnato qualcosa ma disegna
tutto nell’angolo in alto a sinistra e
questo perché conosci il casuale
indica che lo tengo solo tra una cosa e l’altra
meno 1 e 1 e non so perché l’ho fatto
quella
è stato semplicemente stupido , non facciamolo
invece voglio tenerli tra like
quanto è grande il sistema di coordinate
quindi mi piacerà farcela
variabili così ho intenzione di uccidere questa x
max e ho intenzione di chiamare questo che Y
Max e stiamo andando a perché perché max 400
e ho intenzione di fare anche x max 400 di
il modo in cui questo quando ho finito questo
episodio ho intenzione di mettere questo un quaderno
pubblico così puoi trovarlo nell’app così
la descrizione non avrà questo
Earl sta andando avere un altro presto
il dopo è lucido ma tu lo farai
va bene e puoi giocare con
te stesso mentre stai facendo questo o
puoi semplicemente crearlo da zero e
per un po ‘comunque
vediamo sguardo X max qui X Max qui
e i punti casuali devono essere
generato da questo così X sta per essere
Da 0 a X Max e sarà da C 0 a Y
max e cosa c’è e poi no
lavorare affatto
non ha niente di merda così sembra
ciò che effettivamente sembra questa volontà effettiva
sembra okay controlla un SVG lo SVG
disegna solo un cerchio e poi c’è
cerchio all’interno del cerchio e poi a
Cerchia all’interno di questo puoi guardare
inizio non volevo inizio
oh è perché non sto chiudendo il tag
ci andiamo okay raggio 5 è troppo grande
raggio 3 sembra più sano di quello che ti mostra
un sacco di potere con let’s osservabile
fammi solo quando io tre generi punti
qui vedi che si sta aggiornando
tutto sta osservando mmm
reattivo e simpatico super cool che amo
osservabile ricorda che ho detto che noi
volevo iniziare a classificare siamo sul
che parte del sistema di coordinate
i cerchi sono o L non i cerchi il
sottolinea che stiamo andando in circoli per noi
avere i dati e poi abbiamo il
visualizzazione dei dati comunque io sono
andando a disegnare una linea si accende
no oh sì ok notiamo io voglio che sia
viola quindi chiameremo questa squadra
una squadra e non ci è stato detto questo team
meno 1 quindi 1 meno 1 e ho intenzione di
scrivi una piccola funzione che chiamiamo
squadra e sarà prendere un punto
e se il punto un punto X è sopra a
punto punto perché si sta andando ad essere
team team 1 altrimenti sarà t
meno y e quindi in realtà lo farò
usa questa funzione qui per dargli un
colore diverso in modo che ci assicuriamo
che la nostra funzione è corretta
va bene così si scopre che questa squadra
è squadra -1 e questa è la squadra 1 ora la
cosa complicata con l’insegnamento della macchina
l’apprendimento è che gli esempi che tu
bisogno di usare per capire cosa
l’inferno sta accadendo sono così semplici che
potresti anche aver usato il codice e
questo è sicuramente il caso
in questo caso, quindi se guardiamo
questo questo abbiamo già risolto il
problema qui usando questa piccola squadra
funzione che è quella con questa squadra
la funzione prende un punto e poi esso
effettivamente agire in realtà correttamente
classifica un punto in questo problema
questo è un problema molto, molto molto semplice
quindi è perché ne ha solo due
input quindi ha una X e una coordinata y
questo è tutto ciò che determina come
dove in quale squadra nomina e Suppan
e la logica è anche molto semplice
solo se X è più grande di allora allora
finisce in una squadra o in un’altra
e nella vita reale abbiamo molto di più
problemi di classificazione complicati per
esempio diciamo che hai un mucchio
di dati sui prezzi delle case hospice è a
problema classico per questo quindi ogni riga
potrebbe essere come una vendita o una casa così
invece di queste cose queste casuali
punti x e y potrebbero essere le coordinate
solo entra in una lunga lista e loro
loro ogni fila di tavolo di queste case
hanno un aspetto simile a un quadrato
quanto può essere grande l’ appartamento
metri quadrati o piedi imprecisi o altro
usi in terra straniera mytab il dove
si trova che zona si trova esso
potrebbe avere come un anno che il
edificio fu costruito il numero di
stanze e potrebbe avere come 20 di questi
potrebbe servire in problemi più complicati
potrebbero esserci centinaia di queste cose
in questo problema che stiamo guardando
qui sono le coordinate X e Y ma dentro
un altro è un altro problema che potrebbe
essere aspetti di una casa che influenza il
prezzo come dimensioni e e posizione
e in un altro problema potrebbero essere i fiori
potrebbe essere petali e petali di dimensioni simili
quando si classificano le immagini degli animali
potrebbe essere come avere orecchie a punta che hanno
come se avessero baffi e quello che noi
voglio fare è che vogliamo prendere tutto
di questi input o tratti o qualunque cosa noi
voglio chiamarli e vogliamo trangugiare
loro insieme in qualche modo con una certa logica
e alcuni non sono davvero un avvocato come se noi
lo ha fatto con la programmazione che useremmo
la logica abbiamo usato molte dichiarazioni if ​​e
o forse se i prezzi della casa questo e
come se fosse il luogo è questo allora
questo significava effetto e mi piace, ma è così
funziona in questo caso semplice ma nel
caso di pricing della casa sarà
estremamente complicato ed è solo un codice
non è molto adatto se abbiamo creato un
predittore del prezzo delle case ci vorrebbe
tutti questi prezzi delle case e metterli in ordine
insieme e in qualche modo produrre un risultato
prezzo basato su tutti i loro input così con
i prezzi delle case non saremmo in grado
per visualizzare questo tempo con un 2d
sistema di coordinate perché ci sarebbe
più dimensioni al problema di
ci sono coordinate nella vita reale come
non vorrebbe che non lo fosse
tridimensionale sarebbe come 13
le dimensioni e gli umani possono visualizzarlo
questo è quando l’apprendimento automatico diventa
molto astratto e molto utile ma quello è
non quello che faremo oggi o il
ragione per cui ho spiegato che è quello di dare
hai un’idea del motivo per cui usiamo la macchina
imparando e ti piace devi
usa un po ‘la tua immaginazione per
capire il perché di questo perché ma
in questo caso dove c’è un problema
ins di pedagogia semplice usato questi due
punti Creiamo una IA che abbiamo
creare una chiamata di funzione supposizione che lo fa
esattamente la stessa cosa della squadra ma
invece di usare la logica per determinare
dove punto è invece di usare
la matematica utilizzerà l’apprendimento automatico
quindi iniziamo si, è solo orso
con me qui sì è una supposizione di funzione
è una funzione che richiede Waits e questo
prende input e sai che gli input sono
come oh questo è un termine generale per le cose
oh mio dio lo chiamerà punto
perché il punto sono i nostri input in questo
caso ricorda quindi gli input in questo
caso è solo due punti su a su a
sistema di coordinate e x e yy ma in a
la rete neurale potrebbe essere come un alloggio
prezzi o come orecchie di gatto o baffi esso
potrebbe essere come un elenco di cose e questo è
chiamato l’ input ma in questo caso il
il punto è che, diversamente, potremmo
confondersi se provo a pensare troppo
circa l’astrazione yeah yeah facciamo
Ok, allora iniziamo
andando a bisogno di alcuni pesi perché
altrimenti abbiamo il computer che sto per fare
quali sono i pesi i pesi sono
tipo di stato del cervello del nostro AI
i pesi sono ciò che stiamo per essere
moltiplicando ogni cosa con e
i pesi cominceranno
casualmente l’AIS dovrebbe avere solo alcuni
pesi e poi sarà così
andando ad allenare l’IA che stiamo per
avere l’ipotesi IA basata sul suo casuale
pesi quanto una determinata coordinata è quello
che squadra è una data coordinata ed è
andando a sbagliare perché il the
i pesi sono tutti casuali sta andando solo
moltiplicalo per i suoi pesi ed è
sarà carino ma siamo allora
andando a dargli il corretto
posizione perché conosciamo quella posizione
in questo caso abbiamo una funzione
ci dà la risposta corretta che il
squadra ma nella vita reale avremmo
come i prezzi di vendita effettivi per le case
che potremmo dare e quando lo diamo
che puoi vedere quanto stavo male
Mi sbagliavo, quindi aggiusto il mio peso
un po ‘verso quell’ingiustizia se
questo è il succo di ciò non preoccuparti se
sei confuso che è normale questo è
non intuitivo in alcun modo ma facciamolo
porta con me sto solo cercando di darti
la sensazione di dove stiamo andando prima di me
inizia a programmare quindi prova a seguire
bit casuali
whoo sì okay, abbiamo un po ‘di casualità
pesa è una X ed è una Y okay questo
sono i pesi questo è lo stato iniziale
della nostra piccola IA e questo è come è suo
il cervello sembra che dentro sia carino
senza senso e continuerà
essere senza senso ma è anche di più
sensato ora perché sono solo due
numeri casuali
quindi se i pesi sono il cervello della nostra intelligenza artificiale
quindi poi indovinare c’è un oblò che
metteremo quel cervello dentro e
è per questo che prende i pesi come un
argomento quindi come fa a indovinare il
pesi per pensare che sto per mostrarti
ma prima ho intenzione di cambiare camicia
e probabilmente cambi illuminazione e capelli
e forse anche la carnagione perché lo sono
uscire e incontrare alcuni amici e
continuando questo dopo uno due
ciao sono mpj dal non troppo lontano
futuro lo sto indicando con questo cappello
Sono seduto in giro con un editing vivido
editando questo video e mi rendo conto che lo è
molto lungo quindi l’ho diviso in più
parti così cliffhanger per favore ricorda
che questo episodio è stato gentilmente sponsorizzato
dallo spacciatore quindi per favore guardateli a
pusher in cima alla colonna azione tu
puoi iscriverti qui in modo da non farlo
manchi il prossimo episodio il lunedì o se
stai guardando questo dal futuro
allora puoi guardare il prossimo episodio
proprio qui e altrimenti andrà tutto bene
essere solo un video consigliato, penso
Please follow and like us: