Redes neuronales

menu icon

Redes neuronales

Las redes neuronales reflejan el comportamiento del cerebro humano, lo que permite a los programas informáticos reconocer patrones y resolver problemas comunes en los campos de IA, machine learning y 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 núcleo de los algoritmos de deep learning. Su nombre y estructura se inspiran en el cerebro humano, e imitan la forma en la que las neuronas biológicas se señalan entre sí.

Las redes neuronales artificiales (ANN) están formadas por capas de nodos, que contienen una capa de entrada, una o varias 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 un nodo individual está por encima del valor de umbral especificado, dicho nodo se activa y envía 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 se basan en entrenar datos para aprender y mejorar su precisión con el tiempo. No obstante, una vez que estos algoritmos de aprendizaje se ajustan de manera precisa, son potentes herramientas de informática y inteligencia artificial, lo que nos permite clasificar y agrupar los datos a una alta velocidad. Las tareas de reconocimiento de voz o reconocimiento de imagen pueden tardar minutos frente a las horas que requiere 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, formado por datos de entrada, ponderaciones, un sesgo (o umbral) y una salida. La fórmula sería similar a la siguiente:

Fórmula matemática utilizada para determinar la suma

∑wixi + bias = w1x1 + w2x2 + w3x3 + bias

Fórmula matemática utilizada para determinar la salida

output = 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 permiten determinar la importancia de cualquier variable, donde las más grandes 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. A continuación, 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. Como resultado, la salida de un nodo se convierte 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 puede parecer un solo nodo 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 la toma de decisiones:

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

A continuación, supongamos lo siguiente, lo que nos da las siguientes entradas:

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

Ahora tenemos que asignar varias ponderaciones para determinar la importancia. Las ponderaciones más grandes indican que algunas variables son más importantes para la decisión o el resultado.

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

Por último, también supondremos un valor de umbral de 3, que se traduciría en un valor de sesgo de -3. Con las diferentes entradas, podemos empezar a incluir 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 del principio de esta sección, podemos determinar que la salida de este nodo sería 1, ya que 6 es mayor que 0. En este ejemplo, iría a hacer 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 puede 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 operaciones matemáticas, aunque las redes neuronales utilizan neuronas sigmoides, que se distinguen por tener valores entre 0 y 1. Como las redes neuronales se comportan de forma similar a los árboles de decisiones, los datos en cascada de un nodo a otro con x valores entre 0 y 1 reducirán el impacto de cualquier cambio de una única variable en la salida de cualquier nodo y, posteriormente, la salida de la red neuronal.

A medida que empezamos a pensar en casos de uso más prácticos de redes neuronales, como el reconocimiento de imágenes o la clasificación, podremos aprovechar el aprendizaje supervisado o los conjuntos de datos etiquetados para entrenar el algoritmo. Cuando entrenamos un modelo, nos interesa evaluar su precisión usando una función de coste (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 coste

𝐶𝑜𝑠𝑡 𝐹𝑢𝑛𝑐𝑡𝑖𝑜𝑛 = 𝑀𝑆𝐸 =1/2𝑚 ∑129_(𝑖 =1)^𝑚▒(𝑦 ̂^((𝑖) )−𝑦^((𝑖) ) )^2

En última instancia, el objetivo es minimizar nuestra función de coste para garantizar que el ajuste es correcto para cualquier observación. A medida que el modelo ajusta sus ponderaciones y sesgos, utiliza la función de coste y el aprendizaje de refuerzo para alcanzar el punto de convergencia, o el mínimo local. El proceso con el que el algoritmo ajusta sus ponderaciones es con un descenso de gradiente, lo que permite al modelo determinar la dirección a seguir para reducir los errores (o minimizar la función de coste). 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 ver una explicación más detallada de los conceptos cuantitativos implicados en las redes neuronales.

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

Tipos de redes neuronales

Las redes neuronales se pueden clasificar en diferentes tipos, que se utilizan para distintos fines. Aunque no sea una lista completa, la siguiente lista sería representativa de los tipos más comunes de redes neuronales que encontrará en sus casos de uso:

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. Están formadas por una capa de entrada, una capa o varias capas ocultas y una capa de salida. Aunque estas redes neuronales también se conocen como MLP, es importante tener en cuenta que en realidad están formadas por neuronas sigmoides, no perceptrones, ya que la mayoría de los problemas del mundo real son no lineales. Normalmente, se proporcionan datos a estos modelos para entrenarlos. Son la base para la visión artificial, el procesamiento del 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 y/o la visión artificial. Estas redes aprovechan los principios del álgebra lineal, particularmente la multiplicación de matriz, para identificar patrones dentro de una imagen.

Las redes neuronales recurrentes (RNN) se identifican por sus bucles de retroalimentación. Estos algoritmos de aprendizaje se utilizan principalmente con datos de series temporales para hacer predicciones sobre resultados futuros, por ejemplo, predicciones del mercado de acciones o previsiones de ventas.

Redes neuronales frente a deep learning

El deep learning y las redes neuronales tienden a utilizarse indistintamente en la conversación, lo que puede ser confuso. Vale la pena señalar que "deep" en deep learning solo hace referencia a la profundidad de las capas en una red neuronal. Una red neuronal que consta de más de tres capas (incluidas las entradas y la salida) puede considerarse un algoritmo de deep learning. Una red neuronal que solo tiene dos o tres capas es 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 deep learning, lea la entrada del blog "Diferencias entre machine learning, deep learning y redes neuronales"

Historia de las redes neuronales

La historia de las redes neuronales es más larga de lo que la mayoría cree. Aunque la idea de una "máquina que piensa" se remonta hasta los antiguos griegos, nos centraremos en los acontecimientos clave que llevaron a la evolución de pensar en redes neuronales, cuya popularidad ha fluctuado en el tiempo:

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 surgieron de este trabajo fue la comparación de las neuronas con un umbral binario a la lógica booleana (es decir, 0/1 o sentencias verdaderas/falsas).

1958: a Frank Rosenblatt se le atribuye el desarrollo del perceptrón, documentado en su estudio "El perceptrón: un modelo probabilístico para el almacenamiento de información y la 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 un ordenador aprendiera a distinguir cartas marcadas en la izquierda de cartas marcadas en la derecha.

1974: aunque muchos investigadores contribuyeron a la idea de la retropropagación, Paul Werbos fue la primera persona en Estados Unidos en descubrir su aplicación a las redes neuronales en su tesis doctoral (PDF, 8,1 MB) (enlace externo a IBM).

1989: Yann LeCun publicó un estudio (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 redes neuronales se puede utilizar para entrenar algoritmos. Esta investigación utilizó con éxito una red neuronal para reconocer los dígitos de código postal escritos a mano proporcionados por el Servicio postal de 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, y ha destacado por el desarrollo y la evolución de IBM Watson. Watson es ahora una solución de confianza para las empresas que desean aplicar el procesamiento de lenguaje natural avanzado 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 producción proyectos de IA de código abierto sin interrupciones, así como desplegar y ejecutar modelos en cualquier cloud.

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

Regístrese para obtener un IBMid y crear su cuenta de IBM Cloud.