Análisis en profundidad

Deep Learning, qué es y qué aplicaciones tiene hoy en día

La traducción literal es aprendizaje profundo: una subcategoría del aprendizaje automático y del mundo más amplio de la inteligencia artificial que implica algo mucho más amplio que el “simple” aprendizaje automático multinivel. Vamos a intentar entender qué es el Deep Learning, cómo funciona y qué tipo de aplicaciones puede tener

Publicado el 19 Sep 2022

Redacción InnovaciónDigital360

deep learning

La traducción literal es aprendizaje profundo, pero el aprendizaje profundo, una subcategoría del aprendizaje automático y del mundo más amplio de la inteligencia artificial, implica algo mucho más amplio que el “simple” aprendizaje automático multinivel. Así que vamos a intentar entender qué es el Deep Learning, cómo funciona y qué tipo de aplicaciones puede tener.

Qué es el aprendizaje profundo

El Deep Learning, cuya traducción literal significa aprendizaje profundo, es una subcategoría del Machine Learning (que se traduce literalmente como aprendizaje de las máquinas) e indica esa rama de la Inteligencia Artificial que se refiere a los algoritmos inspirados en la estructura y función del cerebro llamados redes neuronales convoluncionales artificiales.

Desde un punto de vista científico, podríamos decir que el Deep Learning es el aprendizaje por “máquinas” a través de un análisis de datos aprendidos gracias al uso de algoritmos (prevalentemente de cálculo estadístico).

El aprendizaje profundo (también conocido como aprendizaje estructurado profundo o aprendizaje jerárquico), de hecho, forma parte de una familia más amplia de métodos de aprendizaje automático basados en la asimilación de representaciones de datos, a diferencia de los algoritmos para la ejecución de tareas específicas.

Las arquitecturas de Deep Learning, con las que, hoy en día, el concepto de red neuronal artificial se da a conocer también al público en general, se han aplicado, por ejemplo, en la computer vision, en el reconocimiento automático del lenguaje hablado, en la elaboración del lenguaje natural, en el reconocimiento de audio y en la bioinformática (el uso de instrumentos informáticos para describir, desde un punto de vista numérico y estadístico, determinados fenómenos biológicos como las secuencias de genes, la composición y estructura de las proteínas, los procesos bioquímicos en las células, etc.).

New call-to-action

Recogiendo las diferentes interpretaciones de algunos de los investigadores y científicos más conocidos en el campo del aprendizaje profundo (como: Andrew Yan-Tak Ng, fundador de Google Brain, científico jefe de Baidu y profesor y director del laboratorio de IA de la Universidad de Stanford; Ian J. Goodfellow, investigador reconocido como uno de los mejores innovadores del mundo -menos de 35 años- por el MIT de Boston; Yoshua Bengio, uno de los científicos más reconocidos en el campo del Deep Learning; Ilya Sutskever, Research Director de OpenAI; Geoffrey Everest Hinton, una de las figuras clave del Deep Learning y la Inteligencia Artificial, primer investigador que ha demostrado el uso de un algoritmo de retropropagación generalizado para el entrenamiento de redes neuronales multicapa…), podríamos definir el Deep Learning como un sistema que explota una clase de algoritmos de aprendizaje automático que:

1) Utilizan varios niveles de unidades no lineales en cascada para realizar tareas de extracción y transformación de características. Cada nivel sucesivo utiliza la salida del nivel anterior como entrada. Los algoritmos pueden ser supervisados o no supervisados, y sus aplicaciones incluyen el análisis de patrones (aprendizaje no supervisado) y la clasificación (aprendizaje supervisado);

2) se basan en el aprendizaje no supervisado de múltiples niveles jerárquicos de características (y representaciones) de los datos. Las características de nivel superior se derivan de las de nivel inferior para crear una representación jerárquica;

3) forman parte de la clase más amplia de algoritmos de aprendizaje de la representación de los datos dentro del aprendizaje automático (Machine Learning);

4) aprenden múltiples niveles de representación que corresponden a diferentes niveles de abstracción; estos niveles forman una jerarquía de conceptos.

Aplicando el Deep Learning, tendremos una “máquina” que es capaz de clasificar autónomamente los datos y estructurarlos jerárquicamente, encontrando los más relevantes y útiles para la resolución de un problema (exactamente como hace la mente humana), mejorando sus propias prestaciones con el aprendizaje continuo.

Las redes neuronales artificiales, la base del Deep Learning

Como se ha mencionado en el párrafo anterior, el aprendizaje profundo, basa su funcionamiento en la clasificación y “selección” de los datos más relevantes para llegar a una conclusión, exactamente como lo hace nuestro cerebro biológico para formular una respuesta a una pregunta, para deducir una hipótesis lógica, llegar a la resolución de un problema, pone en marcha sus neuronas biológicas y sus conexiones neuronales (Las neuronas biológicas interconectadas forman nuestras redes neuronales cerebrales, las que permiten a cada individuo razonar, hacer cálculos en paralelo, reconocer sonidos, imágenes, caras, aprender y actuar).

El Deep Learning se comporta de la misma manera y explota las redes neuronales artificiales, modelos matemático-computacionales basados en el funcionamiento de las redes neuronales biológicas, es decir, modelos formados por interconexiones de información.

Una red neuronal se presenta como un sistema “adaptativo” capaz de modificar su estructura (los nodos y las interconexiones) basándose tanto en los datos externos como en la información interna que conecta y atraviesa la red neuronal durante la fase de aprendizaje y razonamiento.

Cómo funciona el aprendizaje profundo

Con el Deep Learning se simulan los procesos de aprendizaje del cerebro biológico a través de sistemas artificiales (las redes neuronales artificiales, de hecho) para enseñar a las máquinas no sólo a aprender de forma autónoma, sino a hacerlo de una forma “más profunda” como sabe hacerlo el cerebro humano, donde profundo significa “a más niveles”, es decir, al número de capas ocultas en la red neuronal -llamadas capas hidrenas: las “tradicionales” contienen 2-3 capas, mientras que las redes neuronales profundas pueden contener más de 150.

La siguiente imagen (extraída del libro electrónico de acceso gratuito “Neural Networks and Deep Learning“) puede ayudar a comprender mejor la “estructura” de las redes neuronales profundas.

neural network

Las redes neuronales profundas explotan un mayor número de capas intermedias (capa hidraúlica) para construir más niveles de abstracción, al igual que se hace en los circuitos booleanos, modelo matemático de computación utilizado en el estudio de la teoría de la complejidad computacional que, en informática, se refiere a la teoría de la computabilidad, es decir, estudia los recursos mínimos necesarios – principalmente tiempo de cálculo y memoria – para la resolución de un problema.

Intentemos hacer un ejemplo concreto del funcionamiento de una red neuronal profunda con reconocimiento de patrones visuales: las neuronas de la primera capa podrían aprender a reconocer bordes, las neuronas de la segunda capa podrían aprender a reconocer formas más complejas, por ejemplo, triángulos o rectángulos, creados por bordes. La tercera capa reconocería formas aún más complejas, la cuarta reconoce más detalles y así sucesivamente… los múltiples niveles de abstracción pueden dar a las redes neuronales profundas una enorme ventaja en el aprendizaje para resolver problemas complejos de reconocimiento de patrones, precisamente porque en cada nivel intermedio añaden información y análisis útiles para proporcionar una salida fiable.

Es bastante fácil ver que cuantas más capas intermedias haya en una red neuronal profunda (y, por tanto, cuanto más grande sea la propia red neuronal) más eficaz será el resultado (la tarea que está “llamada” a realizar) pero, por otro lado, la escalabilidad de la red neuronal está estrictamente relacionada con los conjuntos de datos, los modelos matemáticos y los recursos computacionales.

Diferencia entre Deep Learning y Machine Learning

Aunque la petición de enormes capacidades computacionales puede representar un límite, la escalabilidad del Deep Learning gracias al aumento de los datos y algoritmos disponibles es lo que lo diferencia del Machine Learning: los sistemas de Deep Learning, de hecho, mejoran sus prestaciones a medida que aumentan los datos mientras que las aplicaciones de Machine Learning (o mejor, los llamados sistemas de aprendizaje superficial) una vez alcanzado un determinado nivel de rendimiento ya no son escalables ni siquiera añadiendo ejemplos y datos de entrenamiento a la red neuronal.

Esto es así porque en los sistemas de Machine Learning las características de un determinado objeto (en el caso de los sistemas de reconocimiento visual) se extraen y seleccionan manualmente y se utilizan para crear un modelo capaz de categorizar los objetos (en base a la clasificación y el reconocimiento de esas características); en los sistemas de Deep Learning, en cambio, la extracción de las características se produce de forma automática: la red neuronal aprende de forma autónoma cómo analizar los datos en bruto y cómo realizar una tarea (por ejemplo, clasificar un objeto reconociendo, de forma autónoma, las características).

Si desde el punto de vista de la potencialidad el Deep Learning puede parecer más “fascinante” y útil que el Machine Learning, hay que señalar que el cálculo computacional requerido para su funcionamiento es realmente impactante, también desde el punto de vista económico: las CPUs más avanzadas y las GPUs de alta gama útiles para “aguantar” las cargas de trabajo de un sistema de Deep Learning siguen costando miles de dólares; recurrir a capacidades computacionales vía Cloud sólo mitiga parcialmente el problema porque la formación de una red neuronal profunda suele requerir el procesamiento de grandes cantidades de datos utilizando clusters de GPUs de alta gama durante muchísimas horas (por lo que no se dice que comprar “como servicio” la capacidad computacional necesaria sea barato).

Cómo entrenar un sistema de Deep Learning

Un ejemplo sencillo pero eficaz para entender el funcionamiento real de un sistema de Machine Learning (y la diferencia con un sistema de Deep Learning) lo proporciona TechTarget: “Mientras que los algoritmos tradicionales de aprendizaje automático son lineales, los algoritmos de aprendizaje profundo se apilan en una jerarquía de complejidad y abstracción crecientes. Para entender el aprendizaje profundo, imaginemos a un niño cuya primera palabra es “perro”. El niño aprende lo que es un perro (y lo que no es) señalando objetos y diciendo la palabra perro. El padre dice “Sí, eso es un perro” o “No, eso no es un perro”. A medida que el niño sigue señalando los objetos, se hace más consciente de las características que poseen todos los perros. Lo que el niño hace, sin saberlo, es aclarar una abstracción compleja (el concepto de perro) construyendo una jerarquía en la que cada nivel de abstracción se crea con el conocimiento que se ha obtenido de la capa anterior de la jerarquía.”

A diferencia del niño, que tardará semanas o incluso meses en entender el concepto de “perro” y lo hará con la ayuda de los padres (lo que se denomina aprendizaje supervisado), una aplicación que utiliza algoritmos de Deep Learning puede mostrar y ordenar millones de imágenes, identificando con precisión qué imágenes contienen qué conjuntos de datos, en cuestión de minutos a pesar de no haber tenido ningún tipo de orientación sobre si la identificación de ciertas imágenes fue correcta o no durante el entrenamiento.

Normalmente, en los sistemas de Deep Learning, la única astucia de los científicos es “etiquetar” los datos (con las metaetiquetas), por ejemplo, insertando la metaetiqueta “perro” dentro de las imágenes que contienen un perro, pero sin explicar al sistema cómo reconocerlo: es el propio sistema, a través de múltiples niveles jerárquicos, el que adivina qué caracteriza a un perro (las patas, la cosa, el pelo, etc.) y, por tanto, cómo reconocerlo.

Estos sistemas se basan, en esencia, en un proceso de aprendizaje por “ensayo y error”, pero para que el resultado final sea fiable se necesitan enormes cantidades de datos. Sin embargo, pensar inmediatamente que el Big Data y la facilidad con la que hoy en día se producen y distribuyen datos de cualquier forma y de cualquier fuente son fáciles de resolver sería un error: la precisión del resultado requiere, al menos en la primera fase de entrenamiento, el uso de datos “etiquetados” (que contengan metaetiquetas), lo que significa que el uso de datos no estructurados podría representar un problema. Los datos no estructurados pueden ser analizados por un modelo de aprendizaje profundo una vez entrenado y alcanzado un nivel de precisión aceptable, pero no para la fase de entrenamiento del sistema.

Además, los sistemas basados en el aprendizaje profundo son difíciles de entrenar debido al gran número de capas de la red neuronal. El número de capas y conexiones entre las neuronas de la red es tal que puede llegar a ser difícil calcular los “ajustes” que hay que hacer en cada fase del proceso de entrenamiento (problema que se denomina de desaparición del gradiente); esto se debe a que para el entrenamiento comúnmente se utilizan los llamados algoritmos de retropropagación del error a través de los cuales se revisan los pesos de la red neuronal (las conexiones entre las neuronas) en caso de errores (la red propaga hacia atrás el error para que los pesos de las conexiones se actualicen de forma más adecuada). Un proceso que continúa de forma iterativa hasta que el gradiente (el elemento que da la dirección en la que debe moverse el algoritmo) es nulo.

Frameworks de Deep Learning: por qué el de Facebook está llamando la atención

Uno de los frameworks específicos para Deep Learning más utilizados por los investigadores, desarrolladores y científicos de datos es TensorFlow, una conocida librería de software de código abierto (proyecto apoyado por Google) que proporciona módulos probados y optimizados para la realización de algoritmos para ser utilizados en diferentes tipos de software y con diferentes tipos de lenguajes de programación, desde Python, C/C++, Java, Go, RUST, R, … (en particular para “tareas perceptivas” y comprensión del lenguaje natural).

En 2019, sin embargo, ha comenzado a imponerse otro marco que, según algunos analistas (tal y comor ecoge el analista Janakiram MSV en uno de sus artículos publicados en Forbes), se está convirtiendo rápidamente en el favorito de los desarrolladores y científicos de datos. Se trata de PyTorch, un proyecto de código abierto de Facebook que ya se utiliza ampliamente en la empresa.

Inicialmente (y durante varios años) los desarrolladores de Facebook utilizaron un marco conocido como Caffe2, que también fue adoptado por muchas universidades e investigadores. Sin embargo, ya en 2018, Facebook anunció que estaba trabajando en otro tipo de framework capitalizando los esfuerzos del desarrollo de Caffe2 con el objetivo de crear un nuevo framework accesible a la comunidad de código abierto.

En realidad, lo que Facebook está haciendo es combinar lo mejor de Caffe2 y ONNX en un nuevo marco (PyTorch); ONNX significa Open Neural Network Exchange y es un framework interoperable al que Microsoft y AWS también contribuyen activamente proporcionando soporte para Microsoft CNTK y Apache MXNet.

PyTorch 1.0, de hecho, combina lo mejor de Caffe2 y ONNX (es uno de los primeros frameworks con soporte nativo para modelos ONNX).

En lo que se están centrando los desarrolladores de Facebbok (pero no sólo) es en crear un framework mucho más sencillo y accesible que TensorFlow. PyTorch, por ejemplo, utiliza una técnica conocida como cálculo dinámico que simplifica el entrenamiento de las redes neuronales. No sólo eso, “el modelo de ejecución de PyTorch imita el modelo de programación convencional que conoce un desarrollador medio de Python. También ofrece formación distribuida, una profunda integración en Python y un vibrante ecosistema de herramientas y bibliotecas, lo que lo hace popular entre investigadores e ingenieros”, escribe el analista Janakiram MSV en su artículo.

Dónde se usa Deep Learning y tipos de aprendizaje automático

A pesar de los problemas que hemos ilustrado, los sistemas de Deep Learning han dado enormes pasos evolutivos y han mejorado mucho en los últimos cinco años, sobre todo gracias a la enorme cantidad de datos disponibles pero, sobre todo, a la disponibilidad de infraestructuras ultra performantes (CPU y GPU en particular).

En el campo de la investigación de la Inteligencia Artificial, el aprendizaje automático ha tenido un éxito considerable en los últimos años, permitiendo a las computadoras superar o acercarse al rendimiento humano correspondiente en áreas que van desde el reconocimiento facial hasta el reconocimiento del habla y el lenguaje. El aprendizaje profundo, en cambio, permite a los ordenadores ir un paso más allá, sobre todo en la resolución de una serie de problemas complejos.

Ya hoy existen casos de uso y áreas de aplicación que podemos ver incluso como “ciudadanos de a pie” que no son expertos en tecnología. Desde la visión por ordenador para los coches sin conductor, hasta los drones robot utilizados para la entrega de paquetes o incluso para la asistencia en casos de emergencia (por ejemplo, para la entrega de alimentos o sangre para transfusiones en zonas afectadas por terremotos, inundaciones o en zonas que se enfrentan a crisis epidemiológicas, etc.); el reconocimiento de voz y la síntesis de la voz y el lenguaje para los chatbots y los robots de servicio; el reconocimiento facial para la vigilancia en los países en los que hay riesgo de catástrofe, y para el uso de un robot en caso de emergencia.); el reconocimiento y la síntesis del habla y el lenguaje para chatbots y robots de servicio; el reconocimiento facial para la vigilancia en países como China; el reconocimiento de imágenes para ayudar a los radiólogos a detectar tumores en las radiografías, o para ayudar a los investigadores a identificar secuencias genéticas relacionadas con las enfermedades e identificar moléculas que podrían dar lugar a medicamentos más eficaces o incluso personalizados; los sistemas de análisis para el mantenimiento predictivo en una infraestructura o instalación mediante el análisis de los datos de los sensores de IoT; y de nuevo, la visión por ordenador que hace posible el supermercado Amazon Go sin caja.

Atendiendo más bien a los tipos de aplicaciones (entendidas como tareas que una máquina puede realizar gracias al Deep Learning), las siguientes son las más maduras hasta la fecha:

1) Coloreado automático de imágenes en blanco y negro (para la red neuronal significa reconocer bordes, fondos, detalles y conocer los colores típicos de una mariposa, por ejemplo, saber exactamente dónde colocar el color correcto);

2) Adición automática de sonidos a las películas mudas (para el sistema de Deep Learning significa sintetizar sonidos y colocarlos correctamente dentro de una situación particular mediante el reconocimiento de imágenes y acciones, por ejemplo, insertar el sonido de un martillo neumático, de romper el asfalto y el fondo de una calle de la ciudad muy concurrida en un video donde se ven trabajadores rompiendo el asfalto con un martillo neumático);

3) Traducción simultánea (para el sistema de Deep Learning significa escuchar y reconocer el lenguaje natural, reconocer el lenguaje hablado y traducir el significado a otro idioma);

4) Clasificación de los objetos dentro de una fotografía (en este caso el sistema es capaz de reconocer y clasificar todo lo que ve en una imagen, incluso las muy complejas en las que hay un paisaje de fondo, por ejemplo, montañas, personas caminando por un sendero, animales pastando, etc.);

5) Generación automática de la letra (ya hay sistemas de Deep Learning capaces de utilizar la letra humana para escribir, incluso aprendiendo los estilos de la letra humana e imitándola);

6) Generación automática de textos (se trata de sistemas que han aprendido a escribir correctamente en una lengua determinada respetando la ortografía, la puntuación, la gramática e incluso aprendiendo a utilizar diferentes estilos de escritura en función del resultado que se quiera obtener, por ejemplo un artículo periodístico o un relato corto);

7) Generación automática de pies de foto (en este caso, el reconocimiento de la imagen, el análisis del contexto y las habilidades de escritura permiten a un sistema escribir automáticamente los pies de foto de una imagen, describiendo perfectamente la escena);

8) El juego automático (hemos aprendido a entender el potencial de un sistema capaz de aprender de forma autónoma cómo jugar a un determinado juego gracias a DeepMind -ahora parte de Google- que ha desarrollado un sistema de Deep Learning -AlphaGo- que no sólo aprendió a jugar al complejísimo juego Go sino que consiguió vencer al campeón del mundo, un humano).

@RESERVADOS TODOS LOS DERECHOS

Si lo desea, evalúe la calidad de este artículo

¡Su opinión es importante para nosotros!

Temas principales

Especificaciones

R
robot