Introducción
A principios de la década de 1990, los neurocientíficos cognitivos propusieron una clase de teorías sobre el desarrollo del cerebro denominadas "aprendizaje profundo". Estas teorías postulaban que el cerebro se desarrolla a través de un proceso de abstracción jerárquica, en el que los conceptos de nivel superior se construyen sobre los cimientos establecidos por los de nivel inferior. Por ejemplo, un niño puede aprender primero a identificar objetos individuales, luego grupos de objetos y luego relaciones entre objetos. Se cree que este proceso de abstracción es crucial para la adquisición de conocimientos complejos.
En los últimos años, el concepto de 'aprendizaje profundo' se ha convertido en una poderosa herramienta para la Inteligencia Artificial (IA). Como tal, Deep Learning es un tipo de Machine Learning (ML) inspirado en la estructura y función del cerebro humano. De hecho, las redes de aprendizaje profundo se componen de una gran cantidad de nodos de procesamiento interconectados, o neuronas, que aprenden a identificar patrones en los datos. Por analogía con el cerebro humano, estas redes se denominan Redes Neuronales Artificiales.
Echemos un vistazo a la principal diferencia entre ML y Deep Learning a través de un ejemplo concreto. Considere la tarea de reconocer dígitos escritos a mano. En un algoritmo de ML tradicional, primero entrenaríamos el algoritmo en un gran conjunto de datos etiquetados. Este conjunto de datos contendría imágenes de dígitos escritos a mano (y, en consecuencia, sus características), junto con la respuesta correcta (p. ej., '5'). Entonces, el algoritmo podría reconocer dígitos escritos a mano en datos nuevos, comparándolos con los datos de entrenamiento. Por el contrario, un algoritmo de aprendizaje profundo no requeriría ningún dato etiquetado. Se entrenaría exponiéndolo a una gran cantidad de imágenes sin etiquetar, que contienen dígitos escritos a mano. Luego aprendería a identificar las características y patrones en estas imágenes y asignaría probabilidades a diferentes etiquetas de dígitos. Finalmente, el algoritmo generaría la etiqueta de dígito más probable para una imagen dada. Por supuesto, Deep Learning requiere menos intervención humana en comparación con ML.
Redes neuronales
La mayoría de los algoritmos de Aprendizaje Profundo se basan en Redes Neuronales Artificiales (o Neural Networks en resumen), que se inspiran en las propias 'redes neuronales' del cerebro. Están formados por una gran cantidad de neuronas, donde se produce todo el procesamiento de la información. Estos están conectados entre sí a través de canales. La fuerza de estas conexiones está determinada por un peso, por lo tanto, un canal ponderado. A todas las neuronas se les asigna un número único llamado sesgo, que se agrega a la suma ponderada de las entradas y determina el estado de activación inicial de una neurona (por lo tanto, si la información se transmite a la siguiente capa o no). Los pesos y el sesgo se actualizan continuamente, a través de lo que se denomina propagación hacia adelante y hacia atrás, para producir una red neuronal bien entrenada.
Aunque tienen el mismo objetivo final, las Redes Neuronales se utilizan para resolver distintos tipos de problemas. Una red neuronal de aprendizaje profundo puede contener cualquier cantidad de capas con cualquier cantidad de neuronas en cada capa. La siguiente imagen muestra una red neuronal simple creada para determinar si una fruta dada es una manzana o un plátano, según el peso y la forma de la fruta. La primera capa (la capa de entrada) toma como entrada el peso y la forma de una fruta. La segunda capa (la capa oculta) contiene 2 neuronas, que están conectadas a la capa de entrada. Estas neuronas aprenden a identificar las características y patrones en los datos de entrada y asignan una probabilidad a cada uno. Finalmente, la capa de salida contiene una sola neurona, que genera la fruta más probable, entre una manzana y un plátano.
Fuente: https://victorzhou.com/965173626f97e1e6b497a136d0c14ec1/network2.svg
Tipos de algoritmos de aprendizaje profundo
Hay dos tipos principales de algoritmos de aprendizaje profundo: redes neuronales convolucionales y redes neuronales recurrentes.
Las redes neuronales convolucionales (CNN) están diseñadas para procesar e identificar patrones en datos de imágenes. La CNN se entrena exponiéndola a una gran cantidad de imágenes que contienen diferentes objetos (por ejemplo, animales, automóviles, etc.). Luego aprende a identificar las características y patrones en estas imágenes y asigna una probabilidad a cada etiqueta. Finalmente, la CNN emite el objeto más probable para cualquier imagen dada. Esta ciencia del análisis y la comprensión de imágenes/vídeos informáticos se denomina visión artificial.
Las redes neuronales recurrentes (RNN) están diseñadas para procesar secuencias de datos, como texto, audio o video. En una RNN, las conexiones entre nodos forman un gráfico dirigido a lo largo de una secuencia temporal. Esto le permite exhibir un comportamiento temporal dinámico para una serie de tiempo o datos secuenciales. Como resultado, una RNN puede utilizar su estado interno (memoria) recordando puntos de datos y decisiones pasadas mientras revisa información nueva. Esto lo hace ideal para el trabajo de Procesamiento del Lenguaje Natural, que se ocupa de comprender y generar lenguaje humano que tiene estructura a lo largo del tiempo; como oraciones, párrafos y tonos. Dichos algoritmos se utilizan para analizar texto y extraer significado de él para permitir que las computadoras se comuniquen con los humanos. En particular, esto se aplica en el análisis de sentimientos, que es un método de procesamiento del lenguaje natural que se utiliza para analizar las emociones en el texto. El objetivo de Sentiment Analysis es detectar automáticamente la opinión de un texto, ya sea positiva, negativa o neutral.