¿Qué son las Redes Neuronales Artificiales?
Inspiradas en la estructura del cerebro, las redes neuronales artificiales son la respuesta para hacer que los computadores se parezcan más a los humanos y ayudar a las máquinas a razonar más como ellos.
En esta publicación te explicare con profundidad de qué se trata las Redes Neuronales Artificiales, cómo funcionan y cómo podemos implementarlas.
¿Qué es una red neuronal artificial?
Las redes neuronales artificiales son un tipo especial de algoritmos de Machine Learning que se modelan a partir del cerebro humano. Es decir, al igual que las neuronas de nuestro sistema nervioso son capaces de aprender de los datos pasado, las redes neuronales artificiales son capaces de aprender de los datos y proporcionar respuestas en forma de predicciones o clasificaciones.
Las redes neuronales artificiales son modelos estadísticos no lineales que muestran una relación compleja entre las entradas y las salidas para descubrir un nuevo patrón.
Una gran variedad de tareas, como el reconocimiento de imágenes, el reconocimiento del habla, la traducción automática y el diagnóstico médico, hacen uso de estas redes.
Una ventaja importante que tienen es que aprenden a partir de conjuntos de datos de ejemplo. El uso más habitual es el de la aproximación de funciones aleatorias. Con este tipo de herramientas, se puede disponer de un método rentable para llegar a las soluciones que definen la distribución.
Las redes neuronales artificiales también son capaces de tomar datos de muestra en lugar de todo el conjunto de datos para proporcionar el resultado de salida. Con estas redes se pueden mejorar las técnicas de análisis de datos existentes gracias a su avanzada capacidad de predicción.
Historia de las Redes Neuronales Artificiales
La historia en sí de las redes neuronales es más larga de lo que la mayoría de las personas cree. Aunque la idea de una maquina que piensa se remonta a los antiguos griegos, nos centraremos en los acontecimientos clave que condujeron a la evaluación del pensamiento en torno a las redes neuronales, cuya popularidad ha ido disminuyendo a lo largo de los años:
- 1943: Dos investigadores publicaron un documento que pretendía comprender 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, afirmaciones 0-1 o verdadero-falso.
- 1958: Se atribuye a Frank Rosenblatt el desarrollo del perceptrón, documentado en su investigación. Lleva el trabajo anterior un paso más allá al introducir pesos en la ecuación. Aprovechando un IBM 704, Rosenblatt consiguió que un computador aprendiera a distinguir las cartas marcadas a la izquierda de las marcadas a la derecha.
- 1974: Aunque numerosos investigadores contribuyeron a la idea de la retropropagación, Paul Werbos fue la primera persona en Estados Unidos en anotar su aplicación en las redes neuronales dentro de su tesis doctoral.
- 1989: Yann LeCun publicó un artículo en el que ilustra cómo el uso de restricciones en la retropropagación y su integración en la arquitectura de la red neuronal puede utilizarse para entrenar algoritmos. Esta investigación aprovechó con éxito una red neuronal para reconocer los dígitos de los códigos postales escritos a mano por el Servicio Postal de Estados Unidos.
Componentes de las redes neuronales
Hay diferentes tipos de redes neuronales, pero siempre constan de los mismos componentes: neuronas, pesos y bias.
Neuronas
Todas las neuronas de una red se dividen en tres grupos:
- neuronas de entrada que reciben información del mundo exterior,
- neuronas ocultas que procesan esa información,
- neuronas de salida que producen una conclusión.
En una gran red neuronal con muchas neuronas y conexiones entre ellas, las neuronas se organizan en capas. Hay una capa de entrada que recibe la información, un número de capas ocultas y la capa de salida que proporciona resultados valiosos. Cada neurona realiza una transformación sobre la información de entrada.
Las neuronas solo operan con números en el rango (0,1) o (-1,1). Para convertir los datos en algo con lo que una neurona pueda trabajar, necesitamos la normalización.
Pesos
Una sinapsis es lo que conecta las neuronas como un cable de electricidad. Cada sinapsis tiene un peso. Los pesos también se suman a los cambios en la información de entrada. Los resultados de la neurona con mayor peso serán dominantes en la siguiente neurona, mientras que la información de las neuronas con menos peso no se transmitirá. Se puede decir que la matriz de pesos gobierna todo el sistema neuronal.
¿Cómo se sabe qué neurona tiene el mayor peso?
Durante la inicialización, primera puesta en marcha de la red neuronal, los pesos se asignan aleatoriamente, pero luego habrá que optimizarlos.
Bias
Una neurona de bias permite almacenar más variaciones de pesos. Las bias añaden una representación más rica del espacio de entrada a los pesos del modelo. En el caso de las redes neuronales, se añade una neurona de bias a cada capa.
Esta desempeña un papel fundamental al hacer posible el desplazamiento de la función de activación hacia la izquierda o a la derecha en el gráfico.
Es cierto que las redes neuronales artificiales pueden funcionar sin neuronas de polarización. Sin embargo, casi siempre se añaden y se consideran una parte indispensable del modelo global.
¿Cómo funcionan las redes neuronales artificiales?
El componente central de las redes neuronales artificiales son las mismas neuronas artificiales. Cada neurona recibe entradas de varias otras neuronas, las multiplica por pesos asignados, las suma y pasa la suma a una o más neuronas. Algunas neuronas artificiales pueden aplicar una función de activación a la salida antes de pasarla a la siguiente variable.
En el fondo, esto podría parecer una operación matemática muy trivial. Pero cuando se colocan cientos, miles y millones de neuronas en múltiples capas y se apilan unas sobre otras, se obtiene una red neuronal artificial que puede realizar tareas muy complicadas, como clasificar imágenes o reconocer el habla.
Las redes neuronales artificiales se componen de una capa de entrada, que recibe datos de fuentes externas, archivos de datos, imágenes, sensores de hardware, micrófono, entre otros. Una o varias capas ocultas que procesan los datos, y una capa de salida que proporciona uno o varios puntos de datos basados en la función de la red. Por ejemplo, una red neuronal que detecte personas, coches y animales tendrá una capa de salida con tres nodos. Una red que clasifique las transacciones bancarias entre seguras y fraudulentas tendrá una única salida.
Entrenamiento de Redes Neuronales Artificiales
Las redes neuronales artificiales comienzan asignando valores aleatorios a los pesos de las conexiones entre neuronas. La clave para que la red neuronal realice su tarea de forma correcta y precisa es ajusta estos pesos a los números adecuados. Pero encontrar los pesos adecuados no es muy fácil, sobretodo cuando se trata de múltiples capas y miles de neuronas.
Esta calibración se realiza entrenando la red con ejemplos anotados. Por ejemplo, si se quiere entrenar un clasificador de imágenes, se le proporcionan múltiples fotos, cada una etiquetada con su clase correspondiente (persona, auto o animal). A medida que le proporcionas más y más ejemplos de entrenamiento, la red neuronal ajusta gradualmente sus pesos para asignar cada entrada a las salidas correctas.
Básicamente, lo que ocurre durante el entrenamiento es que la red se ajusta para extraer patrones específicos de los datos.
De nuevo, en el caso de una red clasificadora de imágenes, cuando se entrena el modelo de Inteligencia Artificial con ejemplos de calidad, cada capa detecta una clase específica de características. Por ejemplo, la primera capa puede detectar bordes horizontales y verticales, las siguientes capas pueden detectar esquinas y formas redondas. Más adelante, las capas más profundas empezarán a detectar características más avanzadas, como caras y objetos.
Cuando se pasa una nueva imagen por una red neuronal bien entrenada, los pesos ajustados de las neuronas podrán extraer las características adecuadas y determinar con precisión a qué clase de salida pertenece la imagen.
Tipos de Redes Neuronales Artificiales
Las redes neuronales pueden clasificarse en diferentes tipos, que se utilizan para distintos fines. Aunque no se trata de una lista exhaustivas de tipos, la siguiente sería representativa de los tipos más comunes de redes neuronales que se encontrarán para los casos de uso habituales:
Redes Neuronales frente a Deep Learning
Deep Learning y las redes neuronales tienden a usarse indistintamente en la conversación, lo que puede resultar confuso. Por lo tanto, vale la pena señalar que el “profundo” en Deep Learning solo se refiere a la profundidad de las capas en una red neuronal. Una red neuronal que consta de más de tres capas, que incluirá las entradas y la salida, puede considerar un algoritmo de Deep Learning. Una red neuronal que solo tiene dos o tres capas es solo una red neuronal básica.
¿Cuáles son los límites de las Redes Neuronales Artificiales?
A pesar de su nombre, las redes neuronales artificiales son muy diferentes de su equivalente humano. Y aunque las redes neuronales y Deep Learning son el estado del arte de la Inteligencia Artificial hoy en día, todavía están muy lejos de la inteligencia humana.
Por lo tanto, las redes neuronales fallarán en muchas cosas que se esperan de una mente humana:
- Las redes neuronales necesitan muchos datos: a diferencia del cerebro humano, que puede aprender a hacer cosas con muy poco ejemplos, las redes neuronales necesitan miles y millones de ejemplos.
- Las redes neuronales son malas para generalizar: una red neuronal puede realizar con precisión una tarea para lo que ha sido entrenada, pero muy mal cualquier otra cosa, incluso si es similar al problema original. Por ejemplo, un clasificador de gatos entrenado con miles de fotos de gatos no podrá detectar perros. Para ello, necesitará miles de imágenes nuevas. A diferencia de los humanos, las redes neuronales no desarrollan conocimientos en términos de símbolos (orejas, ojos, bigotes), sino que procesan valores de píxeles. Por eso no podrán aprender sobre nuevos objetos en términos de características de alto nivel y tendrán que volver a ser entrenados desde cero.
- Las redes neuronales son opacas: como las redes neuronales expresan su comportamiento en términos de pesos y activaciones de las neuronas, es muy difícil determinar la lógica que hay detrás de sus decisiones. Por eso suelen describirse como cajas negras. Esto hace que sea difícil averiguar si están tomando decisiones basadas en factores erróneos.
¿Para qué se utilizan las Redes Neruonales Artificiales?
Las siguientes son las aplicaciones importantes de las redes neuronales artificiales:
Aunque todavía nos queda un largo camino por recorrer antes de alcanczar el objetivo de una Inteligencia Artificial de nivel humano, si es que alguna vez lo alcanzamos, las redes neuronales no han acercado mucho. Será interesante ver cuál será la próxima innovación en Inteligencia Artificial.
Pregunta: De las siguientes afirmaciones ¿cuál crees que es cierta?
Opción 1: La historia de las redes neuronales artificiales es muy reciente, desde hace unos pocos años que se vienen desarrollando.
Respuesta Incorrecta. La historia en sí de las redes neuronales es más larga de lo que la mayoría de las personas cree.
Opción 2: Las redes neuronales artificiales se componen de una capa de entrada, una o varias capas ocultas que procesan los datos, y una capa de salida que proporciona uno o varios puntos de datos basados en la función de la red.
Respuesta Correcta.
Opción 3: El “profundo” en Deep Learning solo se refiere a la profundidad de las capas en una red neuronal.
Respuesta Correcta.