lab
Neural Network
Español

¿Cómo simula una red neuronal una función arbitraria?

Visión general

La razón por la que la red neuronal es poderosa radica en su poderosa capacidad de simulación. En teoría, puede simular funciones arbitrarias con errores infinitamente pequeños.


En otras palabras, podemos usar redes neuronales para construir funciones arbitrarias y obtener algoritmos arbitrarios.


Usamos algunos ejemplos visuales aquí para ayudarlo a obtener una comprensión intuitiva.

Simulación de función unaria

Línea recta

Este es el caso más simple, podemos simularlo usando una neurona sin función de activación.

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

Ajustando los parámetros w,bw, b, se puede simular cualquier línea recta.

Función de paso

Usamos una neurona con función de activación sigmoid para simularla.

ww30
bb0

A medida que el parámetro wwcontinúa aumentando, la red neuronal se acercará gradualmente a la función.

Función de pulso rectangular

Lo dividimos en varios pasos:

  1. Utilice una sola neurona para simular la mitad izquierda de la función.
f1(x)=sigmoid(w1x+b1)f_1(x) = \text{sigmoid}(w_1x+b_1)
w1w_120
b1b_120
  1. Utilice una sola neurona para simular la mitad derecha de la función (al revés).
f2(x)=sigmoid(w2x+b2)f_2(x) = \text{sigmoid}(w_2x+b_2)
w2w_220
b2b_2-20
  1. Usa otra neurona para sintetizar las imágenes de los 2 primeros pasos
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

El resultado obtenido es una buena aproximación de la función objetivo.

Otras funciones unarias

Usando la función de impulso rectangular, podemos aproximar fácilmente otras funciones arbitrarias, al igual que el principio de integración.

nn10

Experimento

Completa la misión Broken Line y observa la función correspondiente a cada neurona.

Simulación de función binaria

Plano

Este es el caso más simple, podemos simularlo usando una neurona sin función de activación.

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

Ajustando los parámetros de w1,w2,bw_1, w_2, b, se puede simular cualquier avión.

Función de paso binario

Usamos una neurona con función de activación sigmoid para simularla.

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

Función de impulso rectangular binaria

Al igual que en el caso de las funciones unarias, lo implementamos paso a paso:

  1. Use una sola neurona para simular un borde de la función
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. Entonces podemos obtener la siguiente función:
wiw_i10
wjw_j-10
bib_i-5
  1. Finalmente, se pueden sintetizar las siguientes funciones
w51w_{51}10
w52w_{52}-10
w53w_{53}10
w54w_{54}-10
b5b_5-15

La estructura final de la red neuronal se muestra en la siguiente figura:

Otras funciones binarias

Usando la función de impulso rectangular binaria, podemos aproximarnos fácilmente a cualquier otra función binaria, al igual que el principio de integración.

Experimento

Completa la misión Circle y observa la función correspondiente a cada neurona.

Simulación de la función de n elementos

El principio es el mismo, ¡imagínese usted mismo! 😥

Pregunta

Ya tenemos circuitos digitales y algoritmos de programas de software, ¿por qué necesitamos redes neuronales?

Los programas de software construidos en circuitos digitales también pueden simular funciones arbitrarias, entonces, ¿por qué inventar redes neuronales artificiales?