WOT

Tuesday, January 17, 2017

¿Qué es aprendizaje profundo?

Nota: Este artículo es una traducción del original que aparece en el sitio de FOSSBYTES: Whatis Deep Learning?
Muchas gracias por permitir su publicación en español. 







¿Qué es aprendizaje profundo?
Resumen: Recibe el nombre de aprendizaje profundo el campo de aplicación de las redes neuronales profundas a la tarea de aprender una determinada función. Y las redes neuronales profundas son básicamente redes neuronales con más de una capa oculta. En este post trataré de hacer una introducción al aprendizaje profundo que resulte atractiva y sin entrar en detalles matemáticos.
Una pequeña historia sobre inteligencia artificial
Cuando se inició el estudio de la inteligencia artificial, todos los investigadores se centraron en 'resolver' problemas, ya que se habían formado precisamente para ese fin. Por ejemplo, encontrar automáticamente una solución a un laberinto.
Tuvo que producirse un cambio de paradigma en el pensamiento antes de que la gente comenzara a abordar los problemas de una manera diferente.
El nuevo enfoque no era resolver una tarea, sino «imitar» su solución. No todos los problemas se pueden resolver. Esto ya era sabido por los matemáticos desde hace tiempo. Bueno, uno tiene que buscar lo que puede ser una solución. Por ejemplo, la ecuación

carecía de soluciones hasta que se introdujo el concepto de números complejos. Pero, hay otros problemas que son verdaderamente irresolubles (en cierto sentido). Los problemas del mundo real son demasiado complejos para encontrarles una solución. Por lo tanto, era necesario introducir el concepto de 'imitar' una solución para abordar cuestiones muy complejas del mundo real. El mejor ejemplo para comparar estos dos paradigmas sería el computador Deep Blue que venció a Kasparov en 1996 y el computador AlphaGo que venció a Lee Sedol en 2016. El primero 'busca' el mejor movimiento en el ajedrez, mientras que el segundo 'imita' los movimientos de un jugador experto en Go.
Demostración de que algo se puede 'aprender'
Sin un sólido respaldo matemático no es posible avanzar en determinados campos de investigación. Por lo tanto, las tareas se tradujeron en problemas de matemáticas, e 'imitar' una solución se tradujo a 'ajustar' una función.
Entonces, ¿se pueden 'ajustar' todas las funciones? '¡La respuestas es 'sí'!' O al menos la mayoría de las funciones que necesitamos para tratar los problemas del mundo real. A esto se le conoce como teorema de aproximación universal (TAU). Y requiere una determinada arquitectura, a la que llamaremos red neuronal. Así que se desarrolló una arquitectura que garantizaba que cualquier función se puede ajustar con la precisión que se necesite. Algunas observaciones interesantes sobre esta arquitectura fueron:
·         Un conjunto de entradas discretas era capaz de aproximarse  incluso a funciones continuas (es decir, funciones sin saltos bruscos).
·         Al menos era necesario utilizar una capa más (llamada capa oculta) de nodos discretos.
·         La información de un nodo podía volver hacia atrás y utilizarse como entrada, parecido a un mecanismo de retroalimentación.
·         Debía incorporarse a la red algún tipo de 'no linealidad' (llamada función de activación).
Imitación y suposición
El problema con el método descrito anteriormente es que debemos saber cuál es la solución al problema. Esto plantea la pregunta de que si conocemos la solución ¿por qué molestarse en aproximarse a ella? La respuesta es doble: 1) El cálculo de la solución exacta puede requerir una gran cantidad de recursos de computación. 2) Muchos de los problemas de IA en el mundo real hoy en día consisten en imitar el comportamiento y las tareas de las personas.
Pero, el primer problema sigue sin respuesta. Debemos conocer la solución de antemano. Para resolver una tarea sin conocer la solución, un computador tiene que 'hacer suposiciones', 'suposiciones' con fundamento. Por lo tanto, hay una bifurcación en el tipo de 'problemas de aprendizaje': ..imitación y suposición. El primero se denomina 'aprendizaje supervisado' y el segundo 'aprendizaje no supervisado'. Un ejemplo de aprendizaje no supervisado sería agrupar un conjunto de datos basados en algún atributo. El conjunto de estos métodos se denomina aprendizaje automático.
Fig 1 : Aprendizaje supervisado


Fig 2: Aprendizaje no supervisado

En el aprendizaje supervisado, se facilitaron los puntos de datos (rojo) y la red aprendió a ajustar la función (azul), en este caso, una función sinc. En el aprendizaje sin supervisión, sólo se le dio la imagen y se le dijo a la red que clasificara la imagen basada en el color de cada píxel en 8 grupos. Como se pudo comprobar, la red hizo un buen trabajo agrupando los píxeles.
Profundizando en las redes neuronales
Entonces, ¿qué es eso tan profundo en las redes neuronales profundas? Las redes neuronales profundas son básicamente redes neuronales con más de una capa oculta. Por lo tanto, se ven 'más extensas', en lugar de verse 'más profundas'. Hay pocas preguntas que responder sobre esto.
Si una red con solo una capa oculta puede aproximarse a cualquier función (TAU), ¿por qué agregar varias capas? Esta es una de las preguntas fundamentales. Cada capa oculta actúa como un 'extractor de características'. Si tenemos una sola capa oculta, existen dos problemas:
·         La capacidad de la red en lo que se refiere a extracción de características es mucho menor, lo que significa que tenemos que proporcionar las características adecuadas a la red. Esto añade una operación de extracción de características que es específica para esa aplicación. Por lo tanto, la red, en cierta medida, pierde su capacidad para aprender una variedad de funciones, y ya no se puede decir que sea 'automática'.
·         Incluso para aprender las características que se le indican, el número de nodos en las capas ocultas crece exponencialmente, lo que causa problemas aritméticos durante el aprendizaje.
Para resolver esto, necesitamos que la red aprenda las características por sí misma. Por lo tanto, agregamos varias capas ocultas cada una con un menor número de nodos. Y, ¿cómo de bien funciona esto? Estas redes neuronales profundas aprendieron a jugar con los juegos Atari simplemente mirando las imágenes de la pantalla.
El(los) avance(s)
Así que, ¿por qué y cómo tuvo tanto éxito el aprendizaje profundo en los últimos años? En lo que se refiere a la parte del porqué, las ideas revolucionarias sobre algoritmos de aprendizaje profundo las aportó el Dr. Goeffry Hinton en los años 90. En cuanto a la parte del quién, fueron responsables un montón de factores. Había disponibles cantidades ingentes de datos. Habían mejorado las arquitecturas de hardware. Se crearon bibliotecas de software. Se consiguieron grandes avances en el campo de la optimización convexa.
Actuar con precaución
Un descubrimiento relativamente reciente sugiere que estos modelos profundamente entrenados son altamente vulnerables a los ataques. Las RNP tienen éxito si no hay efectos adversos en los datos. Lo ilustra la siguiente imagen:

Esta vulnerabilidad se debe a que el modelo es muy sensible a las características. Cambios imperceptibles por el ser humano de las características pueden inhabilitar completamente la red para el aprendizaje. Se han propuesto nuevos modelos, llamados  redes adversarias, pero esa es una historia que dejamos para otro día. Otro efecto frecuente es el ajuste excesivo de los datos, que puede conducir a una alta precisión en el entrenamiento, pero se produce un rendimiento muy bajo durante las pruebas.
Entonces, ¿Qué piensa usted sobre el futuro del aprendizaje profundo? ¿Cuáles son los problemas que se plantean en el aprendizaje profundo? Coméntelo y compártalo con nosotros.

No comments:

Post a Comment