Redes neuronales

menu icon

Redes neuronales

Las redes neuronales reflejan el comportamiento del cerebro humano, permitiendo que los programas informáticos reconozcan patrones y resuelvan problemas comunes en los campos de la IA, el machine learning y el deep learning.

¿Qué son las redes neuronales?

Las redes neuronales, también conocidas como redes neuronales artificiales (ANN) o redes neuronales simuladas (SNN), son un subconjunto de machine learning y están en el corazón de los algoritmos del deep learning. Su nombre y estructura están inspirados por el cerebro humano, imitando la forma en que las neuronas biológicas se señalan entre sí.

Las redes neuronales artificiales (ANN) están compuestas por capas de nodos, que contienen una capa de entrada, una o más capas ocultas, y una capa de salida. Cada nodo, o neurona artificial, se conecta a otro y tiene un peso y un umbral asociados. Si la salida de cualquier nodo individual está por encima del valor de umbral especificado, dicho nodo se activa, enviando datos a la siguiente capa de la red. De lo contrario, no se pasan datos a la siguiente capa de la red.

Diagrama visual de una capa de entrada, capas ocultas y una capa de salida de una red neuronal de propagación hacia delante

Las redes neuronales dependen de los datos de entrenamiento para aprender y mejorar su precisión con el tiempo. Sin embargo, una vez que estos algoritmos de aprendizaje se ajustan a la precisión, son potentes herramientas en la ciencia de computación e inteligencia artificial, lo que nos permite clasificar y agrupar los datos a una alta velocidad. Las tareas en reconocimiento de voz o reconocimiento de imagen pueden tardar minutos frente a horas en comparación con la identificación manual de expertos humanos. Una de las redes neuronales más conocidas es el algoritmo de búsqueda de Google.

¿Cómo funcionan las redes neuronales?

Piense en cada nodo individual como su propio modelo de regresión lineal, compuesto de datos de entrada, ponderaciones, un sesgo (o umbral) y una salida. La fórmula se vería algo como esto:

Fórmula matemática utilizada para determinar la suma

∑wixi + sesgo = w1x1 + w2x2 + w3x3 + sesgo

Fórmula matemática utilizada para determinar la salida

salida = f(x) = 1 if ∑w1x1 + b> = 0; 0 if ∑w1x1 + b < 0

Una vez que se determina una capa de entrada, se asignan ponderaciones. Estas ponderaciones ayudan a determinar la importancia de cualquier variable dada, con las más grandes que contribuyen más significativamente a la salida en comparación con otras entradas. A continuación, todas las entradas se multiplican por sus respectivas ponderaciones y se suman. Después, la salida se pasa a través de una función de activación, que determina la salida. Si la salida supera un determinado umbral, activa el nodo y pasa los datos a la siguiente capa de la red. Esto da como resultado que la salida de un nodo se convierta en la entrada del nodo siguiente. Este proceso de pasar datos de una capa a la siguiente define esta red neuronal como una red de propagación hacia delante.

Vamos a desglosar lo que un solo nodo puede parecer utilizando valores binarios. Podemos aplicar este concepto a un caso más tangible, por ejemplo, si debe ir a hacer surf (Sí: 1, No: 0). La decisión de ir o no ir es nuestro resultado predicho, o y-hat. Supongamos que hay tres factores que influyen en su toma de decisiones:

  1. ¿Las olas son buenas? (Sí: 1, No: 0)
  2. ¿Está vacío el pico? (Sí: 1, No: 0)
  3. ¿Ha habido un reciente ataque de tiburón? (Sí: 0, No: 1)

Entonces, supongamos lo siguiente, dándonos las siguientes entradas:

  • X1 = 1, ya que las olas están buenas
  • X2 = 0, ya que hay mucha gente
  • X3 = 1, ya que no ha habido un reciente ataque de tiburón

Ahora, tenemos que asignar algunos pesos para determinar la importancia. Los pesos más grandes significan que las variables particulares son de mayor importancia para la decisión o el resultado.

  • W1 = 5, ya que las grandes olas no llegan a menudo
  • W2 = 2, ya que está acostumbrado a las multitudes
  • W3 = 4, ya que tiene miedo de los tiburones

Por último, también asumiremos un valor de umbral de 3, que se traduciría a un valor de sesgo de -3. Con todas las diferentes entradas, podemos empezar a conectar los valores en la fórmula para obtener la salida deseada.

Y-hat = (1 * 5) + (0 * 2) + (1 * 4) - 3 = 6

Si utilizamos la función de activación desde el principio de esta sección, podemos determinar que la salida de este nodo sería 1, ya que 6 es mayor que 0. En esta instancia, usted haría surf; pero si ajustamos las ponderaciones o el umbral, podemos lograr diferentes resultados del modelo. Cuando observamos una decisión, como en el ejemplo anterior, podemos ver cómo una red neuronal podría tomar decisiones cada vez más complejas dependiendo de la salida de decisiones o capas anteriores.

En el ejemplo anterior, utilizamos perceptrones para ilustrar algunas de las matemáticas que se usan aquí, pero las redes neuronales aprovechan las neuronas sigmoides, que se distinguen por tener valores entre 0 y 1. Puesto que las redes neuronales se comportan de forma similar a los árboles de decisión, los datos en cascada de un nodo a otro, teniendo x valores entre 0 y 1 reducirán el impacto de cualquier cambio dado de una única variable en la salida de cualquier nodo dado, y posteriormente, la salida de la red neuronal.

A medida que empezamos a pensar en casos de uso más prácticos para redes neuronales, como el reconocimiento de imágenes o la clasificación, aprovecharemos el aprendizaje supervisado, o los conjuntos de datos etiquetados, para entrenar el algoritmo. Mientras entrenamos el modelo, vamos a querer evaluar su precisión usando una función de costo (o pérdida). Esto también se conoce comúnmente como el error cuadrático medio (MSE). En la ecuación siguiente,

  • i representa el índice de la muestra,
  • y-hat es el resultado previsto,
  • y es el valor real, y
  • m es el número de muestras.
Fórmula matemática utilizada para determinar la función de costo

Función de costo = 𝑀𝑆𝐸 =1/2𝑚 ∑129_(𝑖 =1)^𝑚▒(𝑦 ̂^((𝑖) )−𝑦^((𝑖) ) )^2

En última instancia, el objetivo es minimizar nuestra función de costo para asegurar la corrección de ajuste para cualquier observación dada. A medida que el modelo ajusta sus ponderaciones y sesgos, utiliza la función de costo y el aprendizaje de refuerzo para alcanzar el punto de convergencia, o el mínimo local. El proceso en el que el algoritmo ajusta sus ponderaciones es a través de descenso de gradiente, lo que permite que el modelo determine la dirección a tomar para reducir los errores (o minimizar la función de costo). Con cada ejemplo de entrenamiento, los parámetros del modelo se ajustan para converger gradualmente al mínimo.

Gráfico de líneas que ilustra el punto de convergencia

Consulte este Artículo de IBM Developer para obtener una explicación más detallada de los conceptos cuantitativos implicados en redes neuronales.

La mayoría de las redes neuronales más profundas son de propagación hacia delante, lo que significa que fluyen en una sola dirección, desde la entrada a la salida. Sin embargo, también puede entrenar su modelo a través de la retropropagación. Es decir, moverse en la dirección opuesta de la salida a la entrada. La retropropagación nos permite calcular y atribuir el error asociado a cada neurona, lo que nos permite ajustar y adecuar los parámetros de los modelos de forma adecuada.

Tipos de redes neuronales

Las redes neuronales se pueden clasificar en diferentes tipos, que se utilizan para diferentes fines. Si bien esta no es una lista completa de tipos, la siguiente sería representativa de los tipos más comunes de redes neuronales que encontrará para sus casos de uso común:

El perceptrón es la red neuronal más antigua, creada por Frank Rosenblatt en 1958. Tiene una sola neurona y es la forma más simple de una red neuronal:

Diagrama simple de un perceptrón utilizando líneas y un círculo azul

Las redes neuronales de propagación hacia delante o perceptrones multicapa (MLP) son las redes en las que nos hemos centrado principalmente en este artículo. Se componen de una capa de entrada, una capa o capas ocultas y una capa de salida. Si bien estas redes neuronales también son comúnmente conocidas como MLP, es importante tener en cuenta que en realidad están compuestas de neuronas sigmoides, no perceptrones, ya que la mayoría de los problemas del mundo real son no lineales. Los datos generalmente se alimentan en estos modelos para entrenarlos, y son la base para la visión de la computadora, procesamiento de lenguaje natural y otras redes neuronales.

Las redes neuronales convolucionales (CNN) son similares a las redes de propagación hacia delante, pero normalmente se utilizan para el reconocimiento de imágenes, el reconocimiento de patrones o la visión del sistema. Estas redes aprovechan los principios del álgebra lineal, particularmente la multiplicación de la matriz, para identificar patrones dentro de una imagen.

Redes neuronales recurrentes (RNN) se identifican por sus ciclos de retroalimentación. Estos algoritmos de aprendizaje se aprovechan principalmente cuando se utilizan datos de series temporales para hacer predicciones sobre resultados futuros, como predicciones de mercado de acciones o previsiones de ventas.

Redes neuronales vs. deep learning

El deep learning y las redes neuronales tienden a utilizarse indistintamente en la conversación, lo que puede ser confuso. Como resultado, vale la pena señalar que el "deep" en el deep learning se refiere sólo a la profundidad de las capas en una red neuronal. Una red neuronal que consta de más de tres capas, que sería inclusiva de las entradas y la salida, puede ser considerado un algoritmo de deep learning. Una red neuronal que sólo tiene dos o tres capas es sólo una red neuronal básica.

Para obtener más información sobre las diferencias entre las redes neuronales y otras formas de inteligencia artificial, como el machine learning, lea la publicación del blog "AI vs. machine learning vs. deep learning vs. redes neuronales: ¿Cuál es la diferencia?"

Historia de redes neuronales

La historia de las redes neuronales es más larga de lo que la mayoría piensa. Mientras que la idea de "una máquina que piensa" se puede remontar a los antiguos griegos, nos centraremos en los acontecimientos clave que llevaron a la evolución de pensar en torno a las redes neuronales, que se ha bajado y fluido en popularidad a lo largo de los años:

1943: Warren S. McCulloch y Walter Pitts publicaron "Un cálculo lógico de las ideas inmanentes en la actividad nerviosa(PDF, 1 MB) (enlace externo a IBM)". El objetivo de este estudio era entender cómo el cerebro humano podía producir patrones complejos a través de células cerebrales conectadas o neuronas. Una de las principales ideas que salieron de este trabajo fue la comparación de las neuronas con un umbral binario a la lógica booleana (es decir, 0/1 o declaraciones verdaderas/falsas).

1958: A Frank Rosenblatt se le atribuye el desarrollo del perceptrón, documentado en su investigación, "El perceptrón: Un modelo probabilístico para almacenamiento de información y organización en el cerebro" (PDF, 1.6 MB) (enlace externo a IBM). Llevó el trabajo de McCulloch y Pitt un paso más allá al introducir las ponderaciones en la ecuación. Utilizando un sistema IBM 704, Rosenblatt consiguió que una computadora aprendiera a distinguir cartas marcadas en la izquierda frente a las tarjetas marcadas en la derecha.

1974: Mientras que numerosos investigadores contribuyeron a la idea de la retropropagación, Paul Werbos fue la primera persona en Estados Unidos en observar su aplicación dentro de redes neuronales dentro de su Tesis doctoral(PDF, 8.1 MB) (enlace externo a IBM).

1989: Yann LeCun publicó un documento (PDF, 5.7 MB) (enlace externo a IBM) que ilustra cómo el uso de restricciones en la retropropagación y su integración en la arquitectura de red neuronal se puede utilizar para entrenar algoritmos. Esta investigación aprovechó con éxito una red neuronal para reconocer los dígitos de código postal escritos a mano proporcionados por el Servicio Postal de los EE. UU.

Redes neuronales e IBM Cloud

Desde hace décadas, IBM ha sido pionera en el desarrollo de tecnologías de IA y redes neuronales, destacado por el desarrollo y la evolución de IBM Watson. Watson es ahora una solución de confianza para las empresas que buscan aplicar el procesamiento avanzado de lenguaje natural y las técnicas de deep learning a sus sistemas utilizando un enfoque por capas probado en la adopción y la implementación de IA.

Watson utiliza la infraestructura Apache Unstructured Information Management Architecture (UIMA) y el software DeepQA de IBM para poner a disposición de las aplicaciones potentes capacidades de deep learning. Utilizando herramientas como IBM Watson Studio, su empresa puede llevar a la perfección proyectos de IA de código abierto en producción mientras implementa y ejecuta modelos en cualquier nube.

Para obtener más información sobre cómo empezar con la tecnología de deep learning, explore IBM Watson Studio y el servicio de Deep Learning.

Regístrese para obtener un ID de IBM (IBMid) y cree su cuenta de IBM Cloud.