¿Qué significa realmente ‘Deep’ en Deep Learning?

Esa es una pregunta muy común pero interesante.

¡Muchas personas tienen la noción de que agregar más capas te hace pasar del aprendizaje automático al aprendizaje profundo! También he visto personas trazando un límite de decisión entre el aprendizaje automático y el aprendizaje profundo: las redes neuronales son aprendizaje profundo y SVM, ¡las regresiones son aprendizaje automático! Si bien la primera noción es parcialmente cierta, la segunda afirmación es ridícula.

Las redes neuronales han estado allí durante mucho tiempo, antes de que Deep Learning se volviera genial. Entonces, ¿el hecho de poder agregar más capas (gracias a los recursos de hardware mejorados que tenemos ahora) lo hace profundo?

Ahora veamos un caso específico que muestra cómo hemos pasado realmente del aprendizaje automático al aprendizaje profundo (si es que lo hemos hecho). Hay una tarea crucial en el procesamiento del lenguaje natural: etiquetado POS. Anteriormente, para predecir la etiqueta, solíamos usar características como etiquetas circundantes, si la palabra está en mayúscula, si es de varias palabras, cuál es su primer carácter, etc. Entonces, solíamos crear manualmente características como estas y luego, tal vez , use alguna selección de características como chi-cuadrado, basada en correlación para seleccionar las características más adecuadas y finalmente use algún algoritmo de aprendizaje automático para predecir la etiqueta de la palabra.

La limitación más importante de este proceso es que necesita saber con qué característica debe comenzar y luego elegir qué características se seleccionarán de ellas. Sobre todo, este proceso también necesita un poco de experiencia en el dominio, mientras que la función más importante de los algoritmos de aprendizaje debe ser eliminar el DA del usuario tanto como sea posible.

Deep Learning aprende características de los datos y las características que aprende son más ricas y significativas. En otras palabras, el aprendizaje profundo lo ayuda a aprender representaciones útiles de sus datos para resolver mejor la tarea en cuestión.

Ahora se trata de vectores con valores reales que contienen toda la información importante sobre cualquier palabra, frase y oración, y también aprende qué información usar directamente de los datos. Todo esto sucede debido a los diseños eficientes de la arquitectura neuronal, el objetivo de entrenamiento y también los datos con un patrón rico y suficiente para el algoritmo.

En cierto modo, también puedes decir que

Aprendizaje profundo = Aprendizaje automático + Aprendizaje de representación.

Entonces, básicamente, ves que solo aumentar las capas por el bien no hace que tu algoritmo sea “profundo”. Un modelo de aprendizaje profundo tiene dos componentes importantes: características eficientes y predictor eficiente. Ambos se aprenden!

Tenemos 50,000 imágenes de gatos y perros. Tenemos que entrenar una red neuronal para distinguir una imagen y detectar si la imagen representa a un gato o un perro. qué hacemos?

Comencemos con una neurona:

Aquí hay una red neuronal modelada en una sola neurona:

Claramente, esta red neuronal es inútil. No tendrá ninguna funcionalidad útil. ¿Qué debemos hacer?

¡Deberíamos agregar más nodos de entrada y más capas!

Aquí hay otra red neuronal:

Esto funcionaría correctamente para la mayoría de los casos, ¿verdad?

Realmente no.

Una red neuronal simple, como la que se muestra arriba, generalmente no puede realizar tareas simples con precisión porque simplemente no tiene la capacidad de “captar” características sutiles en cada ejemplo de entrenamiento.

¿Qué debemos hacer?

¡Deberíamos agregarle más capas!

Aquí hay otra red neuronal:

Así que ahora le hemos agregado más capas. Este definitivamente debería funcionar, ¿verdad?

De nuevo, no realmente.

Una red neuronal profunda es cualquier red neuronal que tiene dos o más capas ocultas. Pero la noción de que agregar más capas aumenta la ‘profundidad’ o la precisión es completamente ridícula. Agregar capas después de la segunda no aumentará significativamente nada, excepto el tiempo de cálculo. Estamos bien con una red neuronal con dos capas ocultas.

Bien, tenemos una red neuronal con dos capas ocultas. Sin embargo, no tenemos la precisión adecuada. ¿Qué debemos hacer?

Preprocesar datos!

El preprocesamiento de datos es una tarea extremadamente importante. No solo lo ayudará a identificar las características importantes, sino que también lo ayudará a limpiar sus datos. Los conjuntos de datos que se han preprocesado a fondo crean modelos mucho más eficientes. El tipo de preprocesamiento que realice depende del tipo de datos que utilice. Para las imágenes, es mejor convertir los datos a escala de grises, mejorarlos y redimensionarlos para lograr uniformidad, mientras que para los datos textuales es mejor tokenizar, detener y lematizar.

El aprendizaje profundo se activa cuando necesita derivar características útiles de sus datos, es decir, aprender ‘en profundidad’ para entrenar mejor sus modelos. El aprendizaje profundo no significa simplemente agregar más capas a una red neuronal. El aprendizaje profundo se puede usar con cualquier modelo: SVM, Naive Bayes o K-Means, ¡siempre que te ayude a cumplir tus tareas!

Oh! Por el problema anterior? ¡Resulta convertir la imagen a escala de grises y usar una red neuronal con dos capas ocultas funciona con una precisión del 96%! 😉

Lo contrario de “profundo” es “superficial”.

NN comenzó con dos capas, entrada y salida. Puede resolver muchos problemas, pero su defecto es mortal: una red con dos capas ni siquiera puede simular una función XOR muy simple. Para superar este problema, agregamos una capa oculta entre las capas de entrada y salida. La mejora simple es sorprendente porque cambia fundamentalmente NN que, en teoría, NN puede resolver cualquier problema (teorema de aproximación universal).

Sin embargo, en la práctica, un modelo con una capa oculta es muy difícil de entrenar cuando el problema es complejo. Llamamos a los modelos con 0 o 1 capa oculta “modelo superficial” debido a la limitación de dominios problemáticos que pueden aplicar.

Con el aumento de la potencia de la computadora, los investigadores podrían intentar agregar más capas ocultas para observar sus impactos. Para su sorpresa, los modelos con más capas ocultas funcionan mucho mejor para algunos problemas de clasificación de imagen y reconocimiento de voz muy complejos. ¿Cómo podría la “red profunda” resolver más problemas y problemas más profundos? Una explicación simple es que con múltiples capas ocultas, el modelo puede “reutilizar código” características de capa inferior. Tome la clasificación de imágenes como un ejemplo. Para reconocer un gato en una imagen, primero necesitamos reconocer diferentes patrones de color / segmento de línea de bajo nivel. Si el modelo tiene solo una capa oculta, el mismo patrón puede tener que representarse repetidamente en la capa oculta. Con más de una capa oculta, la capa oculta de nivel más bajo solo puede tener una representación de cada patrón de segmento de color / línea. La capa oculta de nivel superior puede reutilizar estos patrones de bajo nivel para formar patrones de nivel superior. El nivel superior de la capa oculta podría ser simplemente una máquina de votación para decidir qué objeto está en la imagen.

Como puede ver, cuando el conjunto de entrenamiento es lo suficientemente grande y la cantidad de características es lo suficientemente grande, una red más profunda (con más capas ocultas) puede “reutilizar el código” mejor, o en otras palabras, aprender de manera más eficiente. Un mejor aprendizaje produce mejores resultados y mejores resultados fomentan la aplicación de redes profundas a más áreas. Y por eso llamamos a la red profunda “aprendizaje profundo”.

Lo ‘profundo’ en el aprendizaje profundo simplemente se refiere a tener múltiples capas ‘ocultas’; es decir, capas que no son la entrada o la salida final, sino en algún punto intermedio.

Como Ian Goodfellow dijo que es un tweet, el uso de ‘profundo’ se ha vuelto algo redundante, ya que no verá muchas redes reales, si es que hay alguna, que no sean profundas en estos días.

El término “aprendizaje profundo” me recuerda a “carro sin caballo”. Tenía sentido cuando se introdujo, pero ahora que es el paradigma dominante, se siente extraño especificar que no hay caballo. El caballo aquí es, por supuesto, el modelo superficial / restricción de costo convexo.

– Ian Goodfellow (@goodfellow_ian) 15 de febrero de 2018

El aprendizaje profundo no tiene nada de mágico, y si está familiarizado con las redes neuronales, también está familiarizado con el aprendizaje profundo.

Definitivamente se refiere explícitamente al hecho de que la arquitectura tiene muchas capas.

Simplemente sucede que cuando diseñas una red como esta, termina extrayendo características significativas por sí solo.

Recientemente escribí una publicación sobre este tema: ¿Qué es el aprendizaje profundo y sus ventajas? Tal vez lo encuentres interesante.

More Interesting

Como principiante en el procesamiento del lenguaje natural, ¿desde dónde debo comenzar?

¿Qué saben los profesionales del aprendizaje automático y los científicos de datos de la industria sobre el análisis, la probabilidad basada en la teoría de la medida y el álgebra lineal numérica?

Dado que los modelos pueden ser entrenados en datos sintéticos, ¿podemos usar el Entrenamiento Adversario para hacer que las imágenes de prueba sean más sintéticas?

¿Cuáles son algunas aplicaciones del aprendizaje automático para la ciencia ambiental y la ingeniería ambiental?

¿Qué son los estados espurios en las redes Hopfield?

¿Por qué las redes neuronales profundas no pueden extraer la estacionalidad de las series de tiempo?

¿La red neuronal convolucional es básicamente un procesamiento previo de datos a través del núcleo más las redes neuronales? ¿Acaso Deep Learning no es solo redes neuronales con preprocesamiento para las selecciones de funciones automatizadas?

Cómo medir el rendimiento de aprendizaje en Q-Learning

¿Cuáles son las máquinas CNC más vendidas en todo el mundo?

Aprendizaje automático: ¿cuándo debo aplicar la normalización / estandarización de datos?

¿Hasta dónde nos pueden llevar las redes neuronales / de aprendizaje profundo / IA para encontrar una solución al problema de las noticias falsas?

Cómo probar la idoneidad de diferentes funciones del núcleo en un proceso gaussiano (GP) en el modelado de una función

¿Los principales profesionales de aprendizaje profundo a menudo tienen grandes lagunas de conocimiento debido a lo rápido que se mueve el campo?

Aprendizaje profundo: ¿Por qué la función energética de la máquina de Boltzmann restringida se define de la manera en que se define?

¿Son las redes de tipo neuronal el único juego real en la ciudad o podemos desarrollar máquinas sofisticadas de IA que no piensen como los humanos?