lab
Neural Network
Italiano

In che modo una rete neurale simula una funzione arbitraria?

Panoramica

Il motivo per cui la rete neurale è potente risiede nella sua potente capacità di simulazione. In teoria, può simulare funzioni arbitrarie con errori infinitamente piccoli.


In altre parole, possiamo usare le reti neurali per costruire funzioni arbitrarie e ottenere algoritmi arbitrari.


Usiamo alcuni esempi visivi qui per aiutarti a ottenere una comprensione intuitiva.

Simulazione di funzione unaria

Retta

Questo è il caso più semplice, possiamo simularlo utilizzando un neurone senza funzione di attivazione.

f(x)=wx+bf(x) = wx + b
ww1
bb0

Regolando i parametri w,bw, b, è possibile simulare qualsiasi linea retta.

Funzione passo

Usiamo un neurone con la funzione di attivazione sigmoid per simularlo.

ww30
bb0

Man mano che il parametro ww continua ad aumentare, la rete neurale si avvicinerà gradualmente alla funzione.

Funzione impulsi rettangolare

Lo dividiamo in più passaggi:

  1. Utilizzare un singolo neurone per simulare la metà sinistra della funzione.
f1(x)=sigmoid(w1x+b1)f_1(x) = \text{sigmoid}(w_1x+b_1)
w1w_120
b1b_120
  1. Utilizzare un singolo neurone per simulare la metà destra della funzione (capovolta).
f2(x)=sigmoid(w2x+b2)f_2(x) = \text{sigmoid}(w_2x+b_2)
w2w_220
b2b_2-20
  1. Usa un altro neurone per sintetizzare le immagini dei primi 2 passaggi
f3(x,y)=sigmoid(w31x+w32y+b3)f_3(x, y) = \text{sigmoid}(w_{31}x + w_{32}y + b_3)
w31w_{31}10
w32w_{32}-10
b3b_3-5

Il risultato ottenuto è una buona approssimazione della funzione obiettivo.

Altre funzioni unarie

Usando la funzione di impulso rettangolare, possiamo facilmente approssimare altre funzioni arbitrarie, proprio come il principio di integrazione.

nn10

Esperimento

Completa la missione Broken Line e osserva la funzione corrispondente a ciascun neurone.

Simulazione della funzione binaria

Aereo

Questo è il caso più semplice, possiamo simularlo utilizzando un neurone senza funzione di attivazione.

f(x,y)=w1x+w2y+bf(x, y) = w_1x + w_2y + b
w1w_10
w2w_21
bb0

Regolando i parametri di w1,w2,bw_1, w_2, b, è possibile simulare qualsiasi piano.

Funzione passo binario

Usiamo un neurone con la funzione di attivazione sigmoid per simularlo.

f(x)=sigmoid(w1x+w2y+b)f(x) = \text{sigmoid}(w_1x + w_2y + b)
w1w_10
w2w_230
bb0

Funzione impulsiva rettangolare binaria

Simile al caso delle funzioni unarie, lo implementiamo passo dopo passo:

  1. Usa un singolo neurone per simulare un bordo della funzione
f1(x,y)=sigmoid(w11x+w12y+b1)f_1(x, y) = \text{sigmoid}(w_{11}x + w_{12}y + b_1)
w11w_{11}0
w12w_{12}20
b1b_120
  1. Quindi possiamo ottenere la seguente funzione:
wiw_i10
wjw_j-10
bib_i-5
  1. Infine, possono essere sintetizzate le seguenti funzioni
w51w_{51}10
w52w_{52}-10
w53w_{53}10
w54w_{54}-10
b5b_5-15

La struttura finale della rete neurale è mostrata nella figura seguente:

Altre funzioni binarie

Utilizzando la funzione di impulso rettangolare binaria, possiamo facilmente approssimare qualsiasi altra funzione binaria, proprio come il principio di integrazione.

Esperimento

Completa la missione Circle e osserva la funzione corrispondente a ciascun neurone.

Simulazione della funzione di n elementi

Il principio è lo stesso, immagina tu stesso! ?

Domanda

Abbiamo già circuiti digitali e algoritmi di programmi software, perché abbiamo bisogno di reti neurali?

I programmi software costruiti su circuiti digitali possono anche simulare funzioni arbitrarie, quindi perché inventare reti neurali artificiali?