In breve, la rete neurale è una funzione: dati di input, risultato di output.
Prendiamo come esempio il riconoscimento dell'immagine di cifre scritte a mano MNIST per definire il modulo della funzione corrispondente:
Questa è un'applicazione entry-level di Neural Network. L'input è un'immagine in scala di grigi a bassa risoluzione (28 x 28), corrispondente a una funzione con 784 variabili di input. Se si tratta di un'immagine a colori megapixel, le variabili di input corrispondenti raggiungeranno i 3 milioni.
Si può vedere che la rete neurale viene utilizzata per risolvere alcuni problemi complessi e anche le funzioni corrispondenti sono complesse. La realizzazione dell'algoritmo consiste nel costruire la funzione corrispondente.
Come costruire una funzione così complicata? Possiamo iniziare con semplici funzioni. L'esempio più semplice e di maggior successo sono i circuiti digitali.
I circuiti digitali sono le pietre miliari dei computer e hanno costruito il nostro enorme mondo digitale. Ma il suo nucleo è composto da porte logiche AND, OR e NOT.
Cos'è una porta logica? In realtà è una funzione. E sono le funzioni più semplici.
Porta logica | espressione | forma funzione |
---|---|---|
AND cancello | ||
OR cancello | ||
NOT cancello |
NOT immagine gate (usa 0 per e 1 per )
AND immagine porta
OR immagine porta
Combina semplici porte logiche per ottenere funzioni più potenti.
Costruisci una nuova funzione binaria:
Costruisci una funzione multivariata:
Combinando semplici funzioni di porta logica, è possibile costruire nuove funzioni logiche. Comprese operazioni come addizione, sottrazione, moltiplicazione e divisione di numeri interi a 32 bit e operazioni di tipi a virgola mobile a precisione singola a 32 bit, ecc.
Diamo un'occhiata di nuovo ai linguaggi di programmazione. Prendi Python come esempio, guarda gli elementi in Python.
Nome | Simbolo | Funzione |
---|---|---|
Operatori logici | and or not | Funzioni logiche binarie e unarie |
Operatori aritmetici | +, -, *, /, %, **, // | Funzioni binarie |
Operatori di confronto | ==, !=, >, <, >=, <= | Funzioni binarie |
... |
Prendendo come esempio l'operatore di addizione di numeri in virgola mobile (+), l'immagine della funzione è la seguente:
Puoi definire le tue funzioni in Python:
def f(x, y): return max(0, 2*x + 3*y - 3)
Qui viene definita una nuova funzione. Usa "+, -, *, max" e altre funzioni per costruire la nuova funzione. Il metodo di costruzione passa anche attraverso la composizione delle funzioni.
Le funzioni sono ovunque nei linguaggi di programmazione. Combinando le funzioni di base, si possono costruire nuove funzioni e si possono ottenere nuovi algoritmi.
La rete neurale è anche funzione. Come i circuiti digitali e i linguaggi di programmazione, è composto anche da semplici funzioni. Le unità di base dei circuiti digitali sono funzioni logiche come AND, OR e NOT. Le unità di base nei linguaggi di programmazione sono funzioni come vari operatori, mentre l'unità di base delle reti neurali sono i neuroni.
Allora cos'è un neurone? Un neurone biologico è una cellula con dendriti di input e assoni di output. E il neurone sulla rete neurale è un neurone artificiale, è anche una funzione, più precisamente, è una specie di funzione.
Il numero di input dei neuroni può essere modificato, il che significa che rappresenta una funzione dell'elemento e può essere diverso per diversi neuroni.
I neuroni si combinano tra loro per formare una rete neurale. Come mostrato di seguito:
La rete neurale contiene tre neuroni (non contare i neuroni di input):
La funzione rappresentata dalla rete neurale è:
Il solo sapere che si tratta di una funzione di elemento non è sufficiente. Le unità di base AND, OR e NOT nei circuiti digitali elencano tutte la tabella della verità e disegnano la figura, ma per quanto riguarda il neurone?