Redes neuronales artificiales.
Primero, ¿qué es una red neuronal? Voy a mantener esto lo menos técnico posible. Esencialmente, tienes un montón de “neuronas” o nodos. Estos nodos están organizados en capas, donde un nodo en una capa está conectado con nodos en la siguiente capa, como se muestra en la imagen a continuación. [1]
- ¿Qué trabajos actuales estarán a salvo de la automatización y la inteligencia artificial?
- ¿Estamos muriendo constantemente debido a los grandes cambios que sufre nuestro cerebro todos los días?
- Inteligencia artificial: ¿Qué tan útil es la computación distribuida para construir IA?
- ¿Por qué los motores de búsqueda semánticos no han despegado hasta ahora?
- ¿Por qué los diseñadores, desarrolladores y gerentes de Quora otorgaron acceso y poder a los robots de IA?
En cada nodo, sumas todas las entradas y aplicas lo que se llama una función de activación . Una forma de pensar en esto es que cada nodo mira la suma de las señales que entran y decide si enviar o no esa señal. Matemáticamente, esta función de activación suele ser sigmoidea, ReLU o tanh, como se muestra a continuación. [2]
Además, la conexión entre nodos tiene un peso asociado con ellos. Una señal que pasa se multiplicará por el peso antes de llegar al siguiente nodo.
Con el conocimiento de lo que sucede en cada nodo y en cada conexión, ahora puede ingresar valores en la red neuronal y obtener un conjunto de salidas. Sin embargo, para que los resultados sean significativos, necesita datos de capacitación , una recopilación de datos de entrada para los que conoce los resultados esperados. Cuando envía una entrada, obtiene una salida. Puede comparar esta salida con la salida esperada. Calcula un error , a menudo con
[matemáticas] E = \ Sigma (y_i – \ hat {y} _i) ^ 2 [/ matemáticas],
donde [math] y_i [/ math] es la salida real y [math] \ hat {y} _i [/ math] es la salida esperada.
Esa ecuación de error representa una superficie tridimensional, con un mínimo. El objetivo del entrenamiento es encontrar ese mínimo, lo que le proporcionaría el mejor modelo para predecir el resultado correcto de una entrada.
Aquí es donde entra el cálculo.
En cualquier punto de la superficie tridimensional representado por la función de error, tiene una pendiente en todas las direcciones. Sin embargo, es probable que desee “viajar” en la dirección del mayor descenso. Para determinar la dirección del descenso más pronunciado, calcula el gradiente. Luego, ajusta los pesos de su red neuronal para avanzar su error en esa dirección.
Calcular cuánto ajustar los pesos en su red neuronal, conocida como propagación inversa , también requiere cálculo. Esencialmente, necesita la derivada parcial con respecto a cada peso. Este resultado se determina usando la regla de la cadena. Derivada parcial del error con respecto a los nodos de salida, La PD de los nodos de salida con respecto a todos los demás nodos, y la PD de todos los demás nodos con respecto a los pesos de sus conexiones de entrada, encadenados producen la PD del error con los pesos. Con estos números, puede ajustar los pesos en consecuencia en muchos pasos pequeños para minimizar el error de su modelo.
La técnica descrita en esta respuesta es el descenso de gradiente, donde reduce su error al avanzar lentamente en la dirección correcta hasta alcanzar el mínimo.
Entonces, ahí lo tienes. Las redes neuronales de entrenamiento se basan en una pila de derivadas parciales. Alégrate de que módulos como NumPy existan para ayudarte.
Adiós gracias.
Notas al pie
[1] Red neuronal artificial – Wikipedia
[2] Una introducción práctica al aprendizaje profundo con Caffe y Python