Las redes neuronales suenan bastante sofisticadas. Neural te hace pensar en el cerebro. Que son complicados. Pero si está familiarizado con la regresión lineal, tiene los elementos básicos necesarios para comprender qué hace una red neuronal.
Las redes neuronales (NN) generalmente se clasifican en Aprendizaje automático supervisado (aunque también hay tipos de NN que pueden hacer cosas increíbles sin datos etiquetados #AutoEncoders). Toman un conjunto de entradas (un conjunto de variables que desea utilizar para predecir algo) y predicen un resultado.
Lo cual... suena mucho a regresión lineal.
En la regresión lineal, tomamos una o más entradas y predecimos una salida continua usando la fórmula
Donde Y es lo que se quiere predecir y el
son sus entradas. Por ejemplo, es posible que queramos predecir la cantidad de dinero que gasta anualmente en videojuegos en función de su edad, sexo, salario y alquiler.

Luego dejamos la regresión. aprender los valores de los coeficientes (esto puede parecer una forma tonta de decirlo, pero quédate conmigo).
nosotros no decir la regresión cuáles son los coeficientes, en lugar de eso le decimos cómo aprender a ellos. En el caso simple, a menudo le pedimos a la regresión que utilice el método de mínimos cuadrados para aprender cuáles son los coeficientes óptimos.
En esencia, le damos a la regresión un estructura para el modelo y un método para aprender los valores en el modelo. Luego, lo ponemos en camino para aprender.
Cuando construimos una red neuronal, también elegiremos un estructura y un método para el aprendizaje, pero a menudo se verán un poco diferentes a la estructura y el método que usamos para la regresión.
Un ejemplo de regresión
ESTRUCTURA
Nodos. Uso de redes neuronales nodos como contenedores para guardar valores. Estos nodos tienen conexiones entre ellos. Cuando se dibujan gráficamente, parecen un montón de piruletas colocadas una al lado de la otra.
Las conexiones representan cálculos matemáticos que se aplican a los valores de un nodo a medida que utilizan la conexión para viajar al siguiente.
Si quisiéramos construir la regresión de nuestro videojuego como una red neuronal, ¡podríamos hacerlo! Su estructura quedaría así:
Capas. Nuestro videojuego NN tiene dos capas: una aporte capa donde le damos al NN nuestras variables predictoras edad, sexo, salario y alquiler, y una producción capa donde obtenemos nuestra predicción del NN.
Las conexiones entre las dos capas contienen pesos, podemos llamarlos metro , norte, pag y k , que aplicaremos a cada variable a medida que pasa de la capa de entrada a la capa de salida. Entonces la edad se multiplicará por metro , sexo por norte , etc., y todos estos productos se agregarán en el nodo de salida.
Las redes neuronales también añaden un inclinación (b) al valor en el nodo de salida. El sesgo es simplemente un escalar (un número normal como 1, -7 o 42).
Según la estructura de la red neuronal que construimos, el nodo de salida nos daría un resultado basado en esta fórmula:
Que es lo mismo que la fórmula de regresión que vimos anteriormente.
MÉTODO DE APRENDIZAJE
Cuando hacemos una regresión lineal, tenemos que encontrar/calcular los valores de nuestros coeficientes. (b,m,n,p, y k ) después de especificar la estructura del modelo. A menudo utilizamos el método de mínimos cuadrados para encontrar nuestros coeficientes.
En resumen, los mínimos cuadrados encuentran los coeficientes que minimizan la suma de los errores cuadrados entre la predicción del modelo y los datos reales.
En términos matemáticos, minimizamos esta función:
Dónde
es el valor real de un punto de datos, y
es la predicción del modelo para ese punto de datos.
Pérdida. Si quisiéramos, podríamos llamar a esta función nuestra función de pérdida . Y así es exactamente como se llama cuando se trabaja con redes neuronales. Las funciones de pérdida nos proporcionan una medida numérica de cómo Bueno nuestro modelo está haciendo. Si la pérdida es pequeña, las predicciones son bastante precisas. Si es grande no hace tanto calor. Nuestro objetivo al construir un buen modelo es siempre minimizar nuestra función de pérdida (y por lo tanto maximizar el rendimiento del modelo).
Y aunque el error cuadrático medio (el ex) de mínimos cuadrados) es una buena opción para muchos modelos, hay muchas otras opciones. Las redes neuronales pueden tener todo tipo de estructuras, y diferentes datos/estructuras podrían beneficiarse de otros tipos de funciones de pérdida.
"Aprendiendo." Sabemos que queremos minimizar nuestra función de pérdida y tenemos nuestros datos y la estructura que usamos para construir nuestra red neuronal, pero en realidad necesitamos *hacer* la minimización. Aquí es donde nuestra red neuronal comenzará a desviarse de nuestro modelo de regresión.
En regresiones más simples, existe una forma matemática bastante fácil y rápida de resolver nuestros coeficientes exactos, ya sea usando álgebra lineal, geometría y álgebra regular. Pero las redes neuronales adoptan un enfoque ligeramente diferente. Las redes neuronales suelen utilizar enfoques iterativos para encontrar valores que minimicen la función de pérdida (y optimicen nuestro modelo). Básicamente, intentamos acercarnos un paso más a la "mejor" respuesta en cada paso de nuestra iteración.
Muchas herramientas y tutoriales utilizan algún tipo de Descenso de gradiente . No dedicaré mucho tiempo a los detalles técnicos del descenso de gradiente tradicional porque no es lo que usa JMP, pero la idea general es que hay una degradado de la función de pérdida (piense en un mapa con montañas y valles) donde los puntos más altos representan un rendimiento del modelo más deficiente y los puntos más bajos representan un rendimiento del modelo bueno, incluso óptimo.
Puedes imaginar el descenso en pendiente como un excursionista que está en este mapa tratando de llegar al punto más bajo posible. Por cada paso que dan, miran a su alrededor y descubren qué dirección tiene el descenso más pronunciado y dan un paso en esa dirección. Al final, terminan en un punto bajo. Volviendo de nuestra analogía de la caminata, el punto bajo representa un conjunto de parámetros (como nuestros coeficientes y sesgo) donde la función de pérdida se minimiza y, por lo tanto, ¡nuestro modelo está funcionando bastante bien!
En JMP , se utiliza una técnica ligeramente diferente para optimizar un NN. En lugar de utilizar el típico descenso de gradiente métodos, JMP utiliza algo llamado BFGS algoritmo (que no significa B yo G F amablemente GRAMO gigante S , perdón a los fans de Roald Dahl). El algoritmo BFGS ayuda a tomar medidas de forma iterativa para optimizar el modelo, de manera similar a Gradient Descent, pero utiliza matemáticas diferentes para hacerlo.
En lugar de esperar hasta que el algoritmo encuentre un punto bajo final (uno de los valles en su gradiente), JMP decide que un modelo está optimizado observando un conjunto de validación (es por eso que JMP requerirá uno, o mantendrá una porción de sus datos para validación automática, al crear una NN). El conjunto de validación consta de datos que NO se utilizan para optimizar el modelo.
JMP probará el modelo actual en el conjunto de validación. Una vez que dar más "pasos" hacia el punto bajo no mejora significativamente el rendimiento del modelo en el conjunto de validación, JMP considera el modelo optimizado. Probar el modelo con datos nuevos que no se utilizaron para crear el modelo nos ayuda a comprender cómo podría funcionar el modelo que estamos creando en datos futuros. Este método se conoce como “parada anticipada” porque nos permite dejar de dar pasos hacia el punto más bajo antes. Esto a menudo nos permite optimizar nuestro modelo rápidamente.
No importa qué método se utilice, una vez que el modelo se considera suficientemente optimizado, ¡ahora tenemos todas las estimaciones de los parámetros en nuestra red neuronal! Finalmente tenemos un modelo funcional que podemos usar para predecir algo.
Una estructura más compleja
Ahora ya conoces los conceptos básicos de cómo son las redes neuronales. estructurado , y como ellos aprender . Pero no todas las redes neuronales tienen que parecerse a la de regresión que hicimos anteriormente. Las redes neuronales nos permiten ser mucho más flexibles a la hora de construir su estructura.
Múltiples capas . Una cosa que podemos hacer con las redes neuronales es agregar más capas. En nuestro ejemplo de regresión, teníamos una capa de entrada que estaba directamente conectada a nuestra capa de salida. Pero podemos insertar una capa extra entre ellas y conectar cada capa con la siguiente.
Esto significa que los datos de entrada pasarán por más conexiones (y por lo tanto, más cálculos) antes de llegar a la capa de salida. Cuantas más capas y conexiones tenga, más compleja será la función que podrá aproximar.
Cuando construimos modelos, esencialmente lo hacemos porque creemos que existe una relación entre nuestras entradas y nuestras salidas. Hay alguna función matemática, eso puede explicar cómo convierte todos sus valores de entrada en valores de salida. Como adivinar la cantidad de dinero gastada en videojuegos según la edad, el sexo, el salario y el alquiler.
Esperamos que los modelos que construimos (los llamaremos f*(x) )están muy cerca (o son aproximados) f(x) . Pero f(x) Podría ser un modelo bastante complicado. ¡Puede que ni siquiera sea lineal *jadeo*! Las capas adicionales (y algunos otros trucos de los que hablaremos en un segundo) permiten que el modelo que creamos sea más complejo. Si f*(x) también es complejo, entonces tenemos más posibilidades de crear un modelo que se acerque a f(x) .
La cantidad de nodos en las capas de entrada y salida está predeterminada. Su capa de entrada tiene un nodo para cada variable (o característica, como solemos llamarla en el aprendizaje automático) y la capa de salida tiene un nodo para cada número que desea predecir. Pero cuando comienzas a agregar más capas, llamadas capas ocultas, puedes elegir cualquier número de nodos. A estas alturas de la historia de las redes neuronales, es más un arte que una ciencia. Existen buenas reglas generales sobre cuántos nodos elegir para cada una de nuestras capas ocultas (como disminuir lentamente la cantidad de nodos en cada capa), pero no hay una respuesta exacta.
Funciones de activación. Bien, volvamos a mi comentario sobre cómo algunos modelos no son lineales (*jadea de nuevo*). Las redes neuronales también emplean funciones de activación en cada uno de sus nodos para permitir que los modelos que creamos sean no lineales.
JMPPro ofrece tres opciones para las funciones de activación: TanH, lineal y gaussiana. En nuestro modelo de regresión, estábamos usando "secretamente" funciones de activación lineal. Las funciones de activación llevan la entrada al nodo y realizan algún tipo de transformación en él antes de pasarla a la siguiente capa. A lineal La activación (en rojo) toma un valor y lo devuelve sin cambios, que es exactamente lo que estábamos haciendo en nuestra regresión simple NN anterior.
Pero no tenemos por qué dejarlo sin cambios. El tanh La activación (en azul) es un tipo de activación sigmoidea (lo que significa que su función parece una S estirada). Es útil porque toma cualquier entrada y la asigna a un valor entre -1 y 1. Los valores negativos grandes se transformarán en valores cercanos a -1 y los valores positivos grandes cercanos a 1. A menudo es bastante útil cuando su modelo predice categorías (como si alguien no pagará un préstamo o no) en lugar de un resultado continuo.
A gaussiano La función de activación (verde) toma valores extremos (ya sean altos o bajos) y devuelve valores cercanos a 0. Para valores menos extremos, devolverá valores cercanos a uno.
Si solo usamos activaciones lineales, el modelo que creemos solo puede ser lineal. Pero, si utilizamos funciones de activación no lineales, ¡ahora podemos crear modelos no lineales!
JMP Pro le permite crear redes neuronales con hasta 2 capas y le permite elegir diferentes funciones de activación para cada capa. Usando diferentes números de capas, nodos y diferentes funciones de activación, podemos crear una gran cantidad de estructuras para una red neuronal. Incluso puedes utilizar redes neuronales para predecir categorías en lugar de un valor continuo.
JMP
Para construir una red neuronal en JMP, vaya a Analizar>Modelado predictivo>Neural . Una vez que la plataforma Neural esté abierta, puede elegir sus entradas y salidas arrastrándolas a los cuadros X e Y respectivamente.
Esto abrirá la ventana de Lanzamiento del modelo donde puede especificar cuántos nodos desea en sus dos capas ocultas y qué tipos de funciones de activación le gustaría usar.
Una vez que hagas clic Ir , JMP construirá su red neuronal y creará una tabla de medidas de rendimiento del modelo (como R^2 o RMSE para resultados continuos). También puede trazar los valores reales por los valores predichos haciendo clic en el triángulo rojo y seleccionando Gráfico real por previsto . De manera similar, podemos trazar nuestros valores residuales haciendo clic en el triángulo rojo y seleccionando Trazar residual según lo previsto . También puedes ir al menú del triángulo rojo y seleccionar perfilador para obtener Prediction Profiler, que le mostrará más sobre lo que realmente está sucediendo en la red neuronal. ¡Ya no hay caja negra!

Conclusión
Las redes neuronales son muy divertidas y suena genial decirle a la gente que estás usando una. Pero cuando miras su verdadera naturaleza, no lo son. entonces diferente de la regresión lineal simple. En ambos casos debemos especificar un estructura y un metodo de aprendizaje para obtener un modelo funcional y optimizado. Redes neuronales hacer nos permiten modelar estructuras más complejas que la simple regresión lineal, por lo que a menudo son útiles cuando pensamos que la relación entre nuestras entradas y nuestras salidas es compleja.
Las capas adicionales y funciones de activación nos permiten jugar con la estructura de nuestra red, ¡y son solo el comienzo! Podemos predecir resultados categóricos, múltiples resultados continuos, ¡podríamos tener cinco capas o 10! Hay aún más funciones interesantes que podemos aplicar a las redes neuronales (por ejemplo, Dropout u otras funciones de activación que no cubrimos aquí), pero ahora que conoce los conceptos básicos, puede explorar todas estas cosas con un poco más de confianza.