En resumen, la red neuronal es una función: datos de entrada, resultado de salida.
Tomemos reconocimiento de imágenes de dígitos manuscritos de MNIST como ejemplo para definir la forma de función correspondiente:
Esta es una aplicación de nivel de entrada de Neural Network. La entrada es una imagen en escala de grises de baja resolución (28 x 28), correspondiente a una función con 784 variables de entrada. Si se trata de una imagen en color de megapíxeles, las variables de entrada correspondientes alcanzarán los 3 millones.
Se puede ver que la red neuronal se usa para resolver algunos problemas complejos, y las funciones correspondientes también son complejas. La realización del algoritmo consiste en construir la función correspondiente.
¿Cómo construir una función tan complicada? Podemos comenzar con funciones simples. El ejemplo más simple y exitoso son los circuitos digitales.
Los circuitos digitales son la piedra angular de las computadoras y han construido nuestro enorme mundo digital. Pero su núcleo se compone de puertas lógicas AND, OR y NOT.
¿Qué es una puerta lógica? De hecho, es una función. Y son las funciones más simples.
Puerta lógica | expresión | forma de función |
---|---|---|
AND puerta | ||
Puerta OR | ||
NOT puerta |
NOT imagen de puerta (use 0 paray 1 para)
AND imagen de puerta
OR imagen de puerta
Combine puertas lógicas simples para obtener funciones más potentes.
Construya una nueva función binaria:
Construya una función multivariante:
Combinando funciones de compuerta lógica simples, se pueden construir nuevas funciones lógicas. Incluyendo operaciones como suma, resta, multiplicación y división de enteros de 32 bits y operaciones de tipos de coma flotante de precisión simple de 32 bits, etc.
Veamos nuevamente los lenguajes de programación. Tome Python como ejemplo, observe los elementos en Python.
Nombre | Símbolo | Función |
---|---|---|
Operadores lógicos | and or not | Funciones lógicas binarias y unarias |
Operadores aritméticos | +, -, *, /,%, **, // | Funciones binarias |
Operadores de comparación | ==,! =,>, <,>=, <= | Funciones binarias |
... |
Tomando el operador de suma de números de punto flotante (+) como ejemplo, la imagen de la función es la siguiente:
Puede definir sus propias funciones en Python:
def f(x, y): return max(0, 2*x + 3*y - 3)
Aquí se define una nueva función. Utiliza "+, -, *, max" y otras funciones para construir la nueva función. El método de construcción también es a través de la composición de funciones.
Las funciones están en todas partes en los lenguajes de programación. Combinando funciones básicas, se pueden construir nuevas funciones y se pueden obtener nuevos algoritmos.
La red neuronal también funciona. Al igual que los circuitos digitales y los lenguajes de programación, también se compone de funciones simples. Las unidades básicas de los circuitos digitales son funciones lógicas como Y, O y NO. Las unidades básicas en los lenguajes de programación son funciones como varios operadores, mientras que la unidad básica de las redes neuronales son las neuronas.
Entonces, ¿qué es una neurona? Una neurona biológica es una célula con dendritas de entrada y axones de salida. Y la neurona de la red neuronal es una neurona artificial, también es una función, más precisamente, es una especie de función.
El número de entradas de neuronas se puede cambiar, lo que significa que representa una función de elemento , y puede ser diferente para diferentes neuronas.
Las neuronas se combinan entre sí para formar una red neuronal. Como se muestra abajo:
La red neuronal contiene tres neuronas (no cuente las neuronas de entrada):
La función representada por la red neuronal es:
El simple hecho de saber que es una función de elemento no es suficiente. Las unidades básicas Y, O y NO puertas en circuitos digitales enumeran la tabla de verdad y dibujan la figura, pero ¿qué pasa con la neurona?