¿Qué es el aprendizaje profundo? ¿Por qué es esta una tendencia creciente en el aprendizaje automático? ¿Por qué no usar SVM?

El aprendizaje profundo es una clase de métodos y técnicas que emplean redes neuronales artificiales con múltiples capas de funcionalidades cada vez más ricas.

Las principales clases de redes neuronales profundas incluyen redes de retroalimentación con capas de convolución y agrupación. No tienen noción de secuencia y las entradas y salidas se suponen independientes. Por el contrario, en las redes neuronales recurrentes y recursivas, las salidas dependen de los estados previos del cálculo.

Como Jack Rae mencionó en su respuesta, las redes neuronales profundas ganaron importancia repentinamente alrededor de 2012 cuando los modelos profundos lograron superar los enfoques más avanzados en problemas tradicionales de aprendizaje automático, como la clasificación de imágenes y el reconocimiento de voz.

Estos resultados generaron un gran revuelo, entusiasmo y actividad basados ​​en la comprensión de que tales métodos aprovecharon de manera muy efectiva cantidades masivas de datos en grandes compañías tecnológicas como Google, Facebook y otras.

Poco después, en 2013, Tomas Mikolov publicó el método word2vec para la inserción de palabras que rápidamente ganó un amplio reconocimiento, tanto académicamente como en los círculos populares. Aunque word2vec es técnicamente un enfoque superficial, su novedad y su sorprendente poder sirvieron como un gran ejemplo de lo que pueden hacer los nuevos modelos. También resultó muy útil como un paso de preprocesamiento para ser utilizado como capa de entrada en redes más complejas.

No mucho después de eso, comenzaron a aparecer ejemplos de redes neuronales recurrentes efectivas, por ejemplo , “Eficacia irrazonable de las redes neuronales recurrentes” de Andrej Karpathy.

Ambos ejemplos comparten una propiedad clave de ser simple y fácil de entrenar en datos fácilmente disponibles. Para word2vec, cualquier corpus de decenas o cientos de millones de palabras funcionará bien, produciendo modelos con propiedades sorprendentes.

Dichos conjuntos de datos no son solo provincias de grandes empresas tecnológicas o grupos de investigación académica, sino que también pueden crearse mediante métodos sencillos, como rastrear Internet o utilizar resultados abiertos disponibles públicamente, como Common Crawl. Un solo rastreo mensual de Common Crawl incluye texto de más de mil millones de páginas, que sería comparable o más grande que el modelo word2vec de referencia de Google capacitado en 100B palabras de Google News con nombres de Freebase.

Esto no es una crítica al modelo de Google, por el contrario, es genial que lo hayan publicado y compartido abiertamente, para estimular más investigación y actividades. Mi punto es que se pueden crear otros modelos potentes sin mucho esfuerzo.

Los ejemplos de RNN como el de Andrej Karpathy también se pueden ejecutar en entradas fácilmente disponibles, por ejemplo , su sorprendente demostración del código fuente de Linux.

Todos estos esfuerzos crearon una tremenda actividad y entusiasmo no solo entre un grupo selecto de desarrolladores e investigadores, sino también entre muchos desarrolladores independientes más diversos y personas intrigadas y curiosas por estos conceptos (como yo).

No se necesita más que una buena caja con, por ejemplo, CPU Core i7, 32 GB o más de RAM, y una buena tarjeta GPU Nvidia, como la recién lanzada serie GTX10x0, para estar rápidamente en funcionamiento. Se necesitan aproximadamente $ 30 por pop y unos días para realizar un procesamiento simple de una única ejecución mensual de Common Crawl en Amazon AWS (asegúrese de usar instancias puntuales, de lo contrario, ¡será hasta 10 veces más!).

En resumen, el aprendizaje profundo surgió rápidamente de la nada al superar los enfoques tradicionales de aprendizaje automático y al surgir la comprensión de que muchas redes neuronales profundas pueden ser entrenadas y experimentadas, y no solo unos pocos investigadores en grandes compañías tecnológicas. academia

En ese sentido, el campo está abierto y la diversión apenas comienza 🙂

El aprendizaje profundo es el subcampo del aprendizaje automático que es el subcampo de la inteligencia artificial. Deep Learning es un conjunto de algoritmos que intentan modelar abstracciones de alto nivel en los datos.

Rompamos este término en dos partes y comprendamos individualmente.

Aprendizaje profundo = Aprendizaje profundo +

Aprendizaje : en primer lugar, déjenme decirles qué significa aprender en el contexto de la Inteligencia Artificial. El problema del aprendizaje es tomar conocimiento y datos previos y crear una representación interna (base de conocimiento) que el agente pueda usar para actuar. La representación interna es típicamente una representación compacta que resume los datos. El campo de Aprendizaje automático proporciona un conjunto de algoritmos que se pueden usar para aprender (automáticamente) de los datos y que el conocimiento aprendido se puede usar en el futuro para la predicción. Uno de los algoritmos de aprendizaje automático ampliamente utilizados es la red neuronal artificial, ANN es una conexión (inspirada biológicamente) de unidades de procesamiento interconectadas llamadas neuronas.

Como puede ver en la imagen de arriba, ANN se compone de una capa de entrada, oculta y de salida. La capa de entrada toma una entrada, es decir, píxeles de imagen y la pasa a una capa oculta que procesa la entrada y luego la capa de salida da salida, es decir, probabilidad de que el objeto en una imagen sea gato o perro, dos nodos en la capa de salida: uno muestra la probabilidad de gato y otro muestra probabilidad de perro. Podemos tener múltiples capas ocultas para modelar funciones más complejas.

Profundo : la imagen de arriba muestra una imagen de ANN con múltiples capas ocultas, que generalmente llamamos Red neuronal profunda. Que es un tipo de aprendizaje profundo. Aquí, la palabra profundo realmente significa más capas ocultas. Tenga en cuenta que los modelos descritos anteriormente son una red neuronal de retroalimentación, en la que la información fluye en una dirección (de izquierda a derecha), pero también podemos tener una conexión de retroalimentación (busque RNN).

Para obtener más información sobre las redes neuronales y el aprendizaje profundo, recomiendo estos dos libros:

1 – Redes neuronales y aprendizaje profundo

2 – Aprendizaje profundo

No está tan bien definido, pero informalmente, el aprendizaje profundo está extrayendo algún tipo de estructura significativa de un conjunto de datos, en lugar de simplemente hacer una inferencia estadística bastante “plana” en representaciones relativamente sin estructura como vectores (o matrices) de números. De alguna manera, es un intento de traer de vuelta ideas simbólicas de los primeros días de IA que han sido ignoradas en las áreas de ML más influenciadas numéricamente.

Hay muchas motivaciones, dependiendo del enfoque particular (“aprendizaje profundo” como término tampoco es utilizado por todos ellos; hay términos como “aprendizaje automático estructurado” que se superponen un poco). Una es que la representación del vector de flotadores no se generaliza bien en muchos problemas, a menos que haga mucho trabajo manual de forma anticipada y cuente con una estructura importante de su problema en el mapeo hacia / desde la representación numérica. Por ejemplo, si desea aplicar ML al ajedrez, podría ser bueno para él poder aprender conceptos “profundos” como una noción independiente de la posición de “captura” o “bajo control”, y luego hacer un aprendizaje adicional en la parte superior de aquellos.

La solución tradicional es que un humano presente una lista de tales conceptos y los agregue a la representación en una fase de preprocesamiento: de modo que su algoritmo ML se alimente en un vector con entradas como “¿está usted en control?”, “Cómo muchas de sus piezas están amenazadas? “, etc. Pero eso es un poco hack y requiere que el humano haga mucho trabajo duro de forma manual. Idealmente, nos gustaría poder alimentar un tablero de ajedrez, y tal vez la historia de movimientos, a un algoritmo ML, y hacer que descubra ese tipo de estructura profunda. (En esta formulación, la idea también se superpone con cosas como descubrimiento de características / invención de características).

Más filosóficamente, refleja la estructura del descubrimiento científico: los científicos no recopilan simplemente grandes cantidades de datos y responden todas las preguntas directamente de los datos. Se les ocurren hipótesis, conceptos, etc., para tratar de comprender parte de la estructura profunda de un problema.

  • El concepto principal en los algoritmos de inclinación profunda es automatizar la extracción de representaciones (abstracciones) de los datos . Los algoritmos de aprendizaje profundo utilizan una gran cantidad de datos sin supervisión para extraer automáticamente representaciones complejas. Estos algoritmos están motivados en gran medida por el campo de la inteligencia artificial, que tiene el objetivo general de emular la capacidad del cerebro humano para observar, analizar, aprender y tomar decisiones, especialmente para problemas extremadamente complejos. El trabajo relacionado con estos desafíos complejos ha sido una motivación clave detrás de los algoritmos de aprendizaje profundo que se esfuerzan por emular el enfoque de aprendizaje jerárquico del cerebro humano. Los modelos basados ​​en arquitecturas de aprendizaje poco profundas, como los árboles de decisión, las máquinas de vectores de soporte y el razonamiento basado en casos, pueden fallar al intentar extraer información útil de estructuras y relaciones complejas en el corpus de entrada. Por el contrario, las arquitecturas de aprendizaje profundo tienen la capacidad de generalizar de manera no local y global, generando patrones de aprendizaje y relaciones más allá de los vecinos inmediatos en los datos. El aprendizaje profundo es, de hecho, un paso importante hacia la inteligencia artificial. No solo proporciona representaciones complejas de datos que son adecuados para tareas de IA, sino que también hace que las máquinas sean independientes del conocimiento humano, que es el objetivo final de la IA. Extrae representaciones directamente de datos no supervisados ​​sin interferencia humana.
  • Un concepto clave que subyace a los métodos de Deep Learning son las representaciones distribuidas de los datos , en las que es posible una gran cantidad de configuraciones posibles de las características abstractas de los datos de entrada, lo que permite una representación compacta de cada muestra y conduce a una generalización más rica. El número de configuraciones posibles está relacionado exponencialmente con el número de características abstractas extraídas. Observando que los datos observados se generaron a través de interacciones de varios factores conocidos / desconocidos y, por lo tanto, cuando se obtiene un patrón de datos a través de algunas configuraciones de factores aprendidos, es probable que se puedan describir patrones de datos adicionales (invisibles) a través de nuevas configuraciones de los factores y patrones aprendidos . En comparación con el aprendizaje basado en generalizaciones locales, la cantidad de patrones que se pueden obtener usando una representación distribuida se escala rápidamente con la cantidad de factores aprendidos.
  • Los algoritmos de aprendizaje profundo conducen a representaciones abstractas porque a menudo se construyen representaciones más abstractas basadas en otras menos abstractas . Una ventaja importante de las representaciones más abstractas es que pueden ser invariables a los cambios locales en los datos de entrada . El aprendizaje de tales características invariantes es un objetivo principal continuo en el reconocimiento de patrones (por ejemplo, características de aprendizaje que son invariables para la orientación de la cara en una tarea de reconocimiento facial). Más allá de ser invariable, tales representaciones también pueden desenredar los factores de variación en los datos. Los datos reales utilizados en tareas relacionadas con IA surgen principalmente de interacciones complicadas de muchas fuentes. Por ejemplo, una imagen está compuesta de diferentes fuentes de variaciones, tales como luz, formas de objetos y materiales de objetos. Las representaciones abstractas proporcionadas por los algoritmos de aprendizaje profundo pueden separar las diferentes fuentes de variaciones en los datos.
  • Los algoritmos de aprendizaje profundo son en realidad arquitecturas profundas de capas consecutivas. Cada capa aplica una transformación no lineal en su entrada y proporciona una representación en su salida. El objetivo es aprender una representación complicada y abstracta de los datos de manera jerárquica pasando los datos a través de múltiples capas de transformación. Los datos sensoriales (por ejemplo, píxeles en una imagen) se envían a la primera capa. En consecuencia, la salida de cada capa se proporciona como entrada a su siguiente capa.
  • Apilar las capas de transformación no lineal es la idea básica en los algoritmos de aprendizaje profundo . Mientras más capas atraviesan los datos en la arquitectura profunda, más complicadas son las transformaciones no lineales que se construyen. Estas transformaciones representan los datos, por lo que Deep Learning puede considerarse como un caso especial de algoritmos de aprendizaje de representación que aprenden representaciones de los datos en una Arquitectura profunda con múltiples niveles de representaciones. La representación final lograda es una función altamente no lineal de los datos de entrada.
  • Es importante tener en cuenta que las transformaciones en las capas de la arquitectura profunda son transformaciones no lineales que intentan extraer factores explicativos subyacentes en los datos. No se puede usar una transformación lineal como PCA como algoritmos de transformación en las capas de la estructura profunda porque las composiciones de transformaciones lineales producen otra transformación lineal. Por lo tanto, no tendría sentido tener una arquitectura profunda. Por ejemplo, al proporcionar algunas imágenes de caras al algoritmo de Deep Learning, en la primera capa puede aprender los bordes en diferentes orientaciones; en la segunda capa compone estos bordes para aprender características más complejas, como diferentes partes de una cara, como labios, narices y ojos. En la tercera capa, compone estas características para aprender características aún más complejas, como las formas de las caras de diferentes personas. Estas representaciones finales se pueden utilizar como característica en aplicaciones de reconocimiento facial. Este ejemplo se proporciona simplemente para explicar de manera comprensible cómo un algoritmo de aprendizaje profundo encuentra representaciones de datos más abstractas y complicadas al componer representaciones adquiridas en una arquitectura jerárquica. Sin embargo, debe considerarse que los algoritmos de aprendizaje profundo no necesariamente intentan construir una secuencia predefinida de representaciones en cada capa (como bordes, ojos, caras), sino que generalmente realizan transformaciones no lineales en diferentes capas. Estas transformaciones tienden a desenredar factores de variaciones en los datos. Traducir este concepto a los criterios de capacitación adecuados sigue siendo una de las principales preguntas abiertas en los algoritmos de aprendizaje profundo.
  • La representación final de los datos construidos por el algoritmo de aprendizaje profundo (salida de la capa final) proporciona información útil de los datos que pueden usarse como características en la construcción de clasificadores, o incluso pueden usarse para la indexación de datos y otras aplicaciones que son más eficientes cuando utilizando representaciones abstractas de datos en lugar de datos sensoriales de alta dimensión.
  • Aprender los parámetros en una arquitectura profunda es una tarea de optimización difícil, como aprender los parámetros en redes neuronales con muchas capas ocultas. En 2006, Hinton propuso el aprendizaje de arquitecturas profundas de una manera codiciosa y sin supervisión . Al principio, los datos sensoriales se introducen como datos de aprendizaje en la primera capa. La primera capa luego se entrena en base a estos datos, y la salida de la primera capa (el primer nivel de representaciones aprendidas) se proporciona como datos de aprendizaje a la segunda capa. Dicha iteración se realiza hasta que se obtiene el número deseado de capas. En este punto, la red profunda está entrenada. Las representaciones aprendidas en la última capa se pueden usar para diferentes tareas. Si la tarea es una tarea de clasificación, generalmente se coloca otra capa supervisada encima de la última capa y se aprenden sus parámetros (ya sea de forma aleatoria o mediante el uso de datos supervisados ​​y manteniendo fijo el resto de la red). Al final, toda la red se ajusta al proporcionarle datos supervisados.
  • Ahora explicamos dos bloques de construcción fundamentales, algoritmos de aprendizaje de una sola capa sin supervisión que se utilizan para construir modelos más profundos: codificadores automáticos y máquinas de Boltzmann restringidas (RBM) . A menudo se emplean conjuntamente para construir Autoencoders apilados y redes de creencias profundas, que se construyen apilando Autoencoders y Máquinas de Boltzmann restringidas, respectivamente. Los autoencoders, también llamados autoasociadores, son redes construidas de 3 capas: entrada, oculta y salida. Los codificadores automáticos intentan aprender algunas representaciones de la entrada en la capa oculta (como una compresión) de manera que sea posible reconstruir la entrada en la capa de salida en función de estas representaciones intermedias. Por lo tanto, la salida objetivo es la entrada misma. Un Autoencoder básico aprende sus parámetros al minimizar el error de reconstrucción. Esta minimización generalmente se realiza mediante un descenso de gradiente estocástico (muy parecido a lo que se hace en Perceptrón multicapa). Si la capa oculta es lineal y el error cuadrático medio se usa como criterio de reconstrucción, entonces el codificador automático aprenderá los primeros k componentes principales de los datos. Se proponen estrategias alternativas para hacer que los codificadores automáticos sean no lineales y sean apropiados para construir redes profundas, así como para extraer representaciones significativas de datos en lugar de funcionar solo como un método de reducción de dimensionalidad. Bengio y col. hemos llamado a estos métodos “Autoencoders regularizados”.
  • Otro algoritmo de aprendizaje de una sola capa sin supervisión que se utiliza como un bloque de construcción en la construcción de Deep Belief Networks es la máquina de Boltzmann restringida (RBM). Las RBM son probablemente la versión más popular de la máquina Boltzmann. Contienen una capa visible y una capa oculta. La restricción es que no hay interacción entre las unidades de la misma capa y las conexiones son únicamente entre unidades de diferentes capas. El algoritmo de divergencia contrastante se ha utilizado principalmente para entrenar la máquina Boltzmann.

Fuente: Journal of Big Data

El aprendizaje profundo es un aspecto de la inteligencia artificial (IA) que se preocupa por emular el enfoque de aprendizaje que los seres humanos usan para obtener ciertos tipos de conocimiento. En su forma más simple, el aprendizaje profundo puede considerarse como una forma de automatizar el análisis predictivo. Los casos de uso para el aprendizaje profundo incluyen todo tipo de aplicaciones de análisis de big data, especialmente aquellas enfocadas en el procesamiento del lenguaje natural (PNL), traducción del idioma, diagnóstico médico, señales de negociación del mercado de valores, seguridad de red e identificación de imágenes.

Si bien 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 cada vez mayores. Para comprender el aprendizaje profundo, imagine un niño cuya primera palabra es “perro”. El niño pequeño aprende qué es (y qué no es) un perro señalando objetos y diciendo la palabra “perro”. El padre podría decir “Sí, eso es un perro” o “No, eso no es un perro”. A medida que el niño continúa señalando objetos, se vuelve más consciente de las características que poseen todos los perros. Lo que hace el niño, sin saberlo, es aclarar una abstracción compleja (el concepto de perro) mediante la construcción de una jerarquía en la que cada nivel de abstracción se crea con el conocimiento obtenido de la capa anterior de la jerarquía.

Los programas de computadora que utilizan el aprendizaje profundo pasan por el mismo proceso. Cada algoritmo en la jerarquía aplica una transformación no lineal en su entrada y usa lo que aprende para crear un modelo estadístico como salida. Las iteraciones continúan hasta que la salida ha alcanzado un nivel aceptable de precisión. El número de capas de procesamiento a través de las cuales deben pasar los datos es lo que inspiró la palabra “profundo”.

En el aprendizaje automático tradicional, el programador tiene que ser muy, muy específico cuando le dice a la computadora qué tipo de cosas debe buscar al decidir si una imagen contiene un perro o no. Este es un proceso laborioso llamado extracción de características y la tasa de éxito de la computadora depende completamente de la capacidad del programador para definir con precisión un conjunto de características para el perro. La ventaja del aprendizaje profundo es que el programa crea el conjunto de características por sí mismo. Esto no solo es más rápido, generalmente es más preciso.

Inicialmente, el programa de computadora podría recibir datos de entrenamiento, un conjunto de imágenes para las cuales un humano ha etiquetado cada imagen como “perro” o “no perro” con metaetiquetas. El programa utiliza la información que recibe de los datos de entrenamiento para crear un conjunto de características para el perro y construir un modelo predictivo. En este caso, el modelo que crea primero la computadora puede predecir que cualquier cosa en una imagen que tenga cuatro patas debe etiquetarse como perro. Por supuesto, el programa no conoce la etiqueta “cuatro patas”, simplemente buscará patrones en los datos digitales. Con cada iteración, el modelo predictivo que crea la computadora se vuelve más complejo y más preciso.

Debido a que este proceso imita el pensamiento humano, el aprendizaje profundo a veces se conoce como aprendizaje neuronal profundo o redes neuronales profundas. A diferencia del niño, que tardará semanas o incluso meses en comprender el concepto de “perro”, un programa de computadora que utiliza algoritmos de aprendizaje profundo puede mostrar un conjunto de entrenamiento y clasificar millones de imágenes, identificando con precisión qué imágenes tienen perros dentro unos minutos.

Para lograr un nivel aceptable de precisión, los programas de aprendizaje profundo requieren acceso a inmensas cantidades de datos de entrenamiento y poder de procesamiento, ninguno de los cuales estuvo fácilmente disponible para los programadores hasta la era de los grandes datos y la computación en la nube. Debido a que la programación de aprendizaje profundo puede crear modelos estadísticos complejos directamente a partir de su propio resultado iterativo, puede crear modelos predictivos precisos a partir de grandes cantidades de datos no estructurados y no etiquetados. Esto es importante ya que el Internet de las cosas (IoT) continúa siendo cada vez más generalizado, porque la mayoría de los datos que los humanos y las máquinas crean no están estructurados y no están etiquetados.

Entonces todo comenzó con un perceptrón que se suponía que debía aprender todo. Entonces entendimos que el perceptrón no puede modelar todo (puertas NAND) y se formuló el concepto de redes neuronales . Ahora las redes neuronales pueden calcular cualquier función pero la principal dificultad era que las redes neuronales eran difíciles de entrenar. Esto detuvo la investigación de las redes neuronales durante bastante tiempo.

Luego vino el algoritmo Back-Propogation que hizo posible el aprendizaje en la red neuronal. Pero aún así el problema era con la cantidad de capas ocultas. Aparentemente, aumentar el número de capas ocultas fue un proceso computacionalmente costoso y las redes neuronales con un alto número de capas tardaron mucho tiempo en entrenarse.

Ahora estamos trabajando con la idea de Deep Learning, donde una red neuronal se compone de una gran cantidad de capas. Algunas de las soluciones de imagenet como VGG tienen 10-15 capas de profundidad. La reciente innovación en la informática de GPU y la llegada de bibliotecas abiertas como Theano, Tensorflow para programar GPU’s nos está ayudando a resolver el problema de la formación de redes profundas mediante la programación de núcleos paralelos.

Para responder sobre la tendencia creciente de Deep Learning, solo puedo decir que es porque funciona y funciona bien. Estamos viendo un aumento significativo en el rendimiento de Imagenet, MNIST, CIFAR, etc. y, por lo tanto, nos fascina. Pero el hecho es que hay muchas tuercas y tornillos que aún permanecen sin resolver aquí. Aún así, la gente no entiende por qué algo funciona y por qué algo no funciona cuando se trata de redes profundas. Todavía hay una variedad de preguntas sin respuesta que lo convierten en un excelente tema de investigación. Por ejemplo: ¿Por qué funciona Dropout y cuánto abandono debería tener en su red? ¿o qué función de activación debe usar? (ReLU funciona mejor en la mayoría de los casos ¿Por qué?) ¿Qué tasa de aprendizaje debe elegir? ¿Qué método de optimización?

En su pregunta de por qué no usamos SVM , diría que las redes neuronales son particularmente adecuadas para ciertas tareas como el reconocimiento de imágenes, Voz. El concepto de redes neuronales convolucionales (CNN) es una gran razón del éxito de las redes profundas. Una convolución puede considerarse como una forma de extracción automática de características de una imagen. Mientras que DeepNet intentará modelar características usando varios píxeles que están muy cerca unos de otros para encontrar las mejores características posibles, para SVM una imagen es solo un conjunto de píxeles y tratará cada píxel como una dimensión diferente.

¡Espero que ayude!

Ok, trataré de responder de manera muy simple y lo más breve posible.

Aprendizaje profundo : es el campo del aprendizaje automático, que abarca el funcionamiento sin conjuntos exactos de reglas, ya que el algoritmo ML debe extraer las tendencias y los patrones de los vastos conjuntos de datos no estructurados después de completar el proceso de aprendizaje supervisado o no supervisado.

Lo principal en una red de Deep Learning es una capa de nodos computacionales llamados “neuronas”. Cada neurona se conecta a todas las neuronas en la capa subyacente. Básicamente, hay capas como:

  1. Capa de entrada de nodos, que la recibe y la mueve a los nodos subyacentes;
  2. Capas de nodos ocultos donde tienen lugar los cálculos;
  3. Capa de nodo de salida donde aparecen los resultados

Entonces, el “aprendizaje profundo” significa que la red neuronal tiene al menos dos capas ocultas. Y, sí, al agregar capas ocultas adicionales obtendrá cálculos más detallados, pero esto también exige una potencia computacional adicional.

No describiré el trabajo de todo el modelo, pero en general, hay una función de activación para cada neurona que evalúa la forma en que debe tomar la señal, al igual que en el cerebro humano real. Y eso hace que todo sea emocionante.

Deep Learning es popular en este momento porque es fácil y funciona. – Con el aprendizaje automático tradicional, tendría que diseñar un algoritmo de extracción de características y luego también construir un modelo de clasificación completo para clasificar su entrada dadas las características extraídas. Pero con las redes neuronales, puede realizar la extracción y clasificación de características de una sola vez, por lo que solo habrá un modelo.

PD: si tiene alguna inquietud sobre la creación de su propio modelo de aprendizaje profundo, póngase en contacto con profesionales reales de IT Svit: https://itsvit.com/contacts/

El aprendizaje profundo se refiere a redes neuronales artificiales que se componen de muchas capas.

Es una tendencia creciente en ML debido a algunos resultados favorables en aplicaciones donde la función objetivo es muy compleja y los conjuntos de datos son grandes. Por ejemplo, en Hinton et al. (2012), Hinton y sus estudiantes lograron superar los sistemas de predicción del status quo en cinco conjuntos de datos conocidos: Reuters, TIMIT, MNIST, CIFAR e ImageNet. Esto cubre la clasificación de voz, texto e imagen, y estos son conjuntos de datos bastante maduros, por lo que ganar cualquiera de estos llama la atención. Una victoria en todos ellos llama mucho la atención.

El aprendizaje profundo es uno de los únicos métodos por los cuales podemos superar los desafíos de la extracción de características. Esto se debe a que los modelos de aprendizaje profundo son capaces de aprender a enfocarse en las características correctas por sí mismos, lo que requiere poca orientación del programador. Esto hace que el aprendizaje profundo sea una herramienta extremadamente poderosa para el aprendizaje automático moderno. Por lo tanto, podemos decir que Deep Learning es:

  • Una colección de técnicas estadísticas de aprendizaje automático.
  • Se usa para aprender jerarquías de características
  • A menudo basado en redes neuronales artificiales

Ahora, tomemos un ejemplo para entenderlo. Supongamos que queremos hacer un sistema que pueda reconocer rostros de diferentes personas en una imagen. Si resolvemos esto como un problema típico de aprendizaje automático, definiremos características faciales como ojos, nariz, oídos, etc. y luego, el sistema identificará qué características son más importantes para cada persona por sí solo.

Ahora, el aprendizaje profundo lleva esto un paso adelante. El aprendizaje profundo descubre automáticamente las características que son importantes para la clasificación debido a las redes neuronales profundas, mientras que en el caso del aprendizaje automático tuvimos que definir manualmente estas características.

fig: Reconocimiento facial con redes profundas

Como se muestra en la imagen de arriba, Deep Learning funciona de la siguiente manera:

  • En el nivel más bajo, la red se fija en patrones de contraste local tan importantes
  • La siguiente capa puede usar esos patrones de contraste local para fijarse en cosas que se parecen a los ojos, la nariz y la boca.
  • Finalmente, la capa superior puede aplicar esas características faciales a las plantillas faciales.
  • Una red neuronal profunda es capaz de componer características cada vez más complejas en cada una de sus capas sucesivas

¿Alguna vez se preguntó cómo Facebook etiqueta o etiqueta automáticamente a toda la persona presente en una imagen cargada por usted? Bueno, Facebook usa Deep Learning de una manera similar a la indicada en el ejemplo anterior. Ahora, se habría dado cuenta de la capacidad de Deep Learning y de cómo puede superar al Machine Learning en aquellos casos en los que tenemos muy poca idea sobre todas las características que pueden afectar el resultado. Por lo tanto, la red profunda puede superar el inconveniente del aprendizaje automático al extraer inferencias del conjunto de datos que consiste en datos de entrada sin un etiquetado adecuado.

Puede consultar el siguiente video que explica cómo evolucionó el aprendizaje profundo y qué es exactamente:

El aprendizaje profundo es un subcampo de ML. Deep Learning simula la estructura y el funcionamiento de un cerebro humano. Un cerebro humano contiene numerosas células cerebrales llamadas neuronas.

Cada neurona está realizando una tarea particular y cada neurona se interconectó entre sí en una red para intercambiar la información.

Del mismo modo en Deep Learning, se crean diferentes capas de la red para resolver el problema.

Los algoritmos de aprendizaje profundo se utilizan para resolver problemas complejos como el análisis de imagen, texto y sonido. El aprendizaje profundo se puede aplicar al automóvil autónomo, a la detección del idioma, el significado del texto y el sonido, la investigación médica, la automatización industrial, etc.

Los algoritmos de aprendizaje profundo logran un alto grado de precisión con una gran cantidad de datos.

Hay dos razones principales por las que el aprendizaje profundo es tendencia:

1) El aprendizaje profundo imita la forma en que el cerebro orgánico clasifica la información, lo que proporciona resultados favorables para los problemas complejos.

2) Con el poder de las CPU y GPU de alto procesamiento, reduce el tiempo de entrenamiento.

El “aprendizaje profundo” es la nueva gran tendencia en Machine Learning. Promete un aprendizaje automático general, potente y rápido, acercándonos un paso más a la IA.

Un algoritmo es profundo si la entrada se pasa a través de varias no linealidades antes de salir. La mayoría de los algoritmos de aprendizaje modernos (incluidos los árboles de decisión y SVM y los ingenuos bayes) son “poco profundos”.

Por intuición, imagínese si le dijera que su rutina principal puede llamar subrutinas, y sus subrutinas podrían llamar subrutinas, pero no podría tener más abstracción que eso. No puede tener subsubrutinas en su programa “superficial”. Podrías calcular lo que quisieras en un programa “superficial”, pero tu código implicaría una gran cantidad de código duplicado y no sería tan compacto como debería ser. Del mismo modo, una arquitectura superficial de aprendizaje automático implicaría una gran cantidad de duplicación de esfuerzos para expresar cosas que una arquitectura profunda podría hacer de manera más compacta. El punto es que una arquitectura profunda puede reutilizar con mayor elegancia los cálculos anteriores.

El aprendizaje profundo está motivado por la intuición, los argumentos teóricos de la teoría de circuitos, los resultados empíricos y el conocimiento actual de la neurociencia. Aquí hay un video donde doy una charla de alto nivel sobre aprendizaje profundo y describo esta intuición: http://bilconference.com/videos/

Aquí hay información más detallada sobre el aprendizaje profundo: http://deeplearning.net/tutorial/

Cabe señalar que los algoritmos de aprendizaje profundo generalmente requieren una potencia de cómputo exaltada y soporte de GPU ya que sus fases de preprocesamiento, aprendizaje de características y capacitación requieren un largo período de tiempo. Por lo tanto, los ganadores actuales de Deep Learning son básicamente universidades ricas o cooperativas de Google. No digo que Deep Learning sea inútil en ese sentido, pero debería mejorarse más a través de mejores algoritmos en términos de potencia computacional. Sin embargo, como su concepto, captura el sistema de aprendizaje humano teóricamente bien en comparación con otros métodos. Como observación, el poder computacional actual está tan cerca de la capacidad del cerebro humano (relativamente) en el tema de la velocidad de cálculo, pero aún estamos muy lejos de tener el éxito del cerebro en los cálculos de aprendizaje automático u otros problemas. En mi opinión, los algoritmos propuestos son parte vital del avance de la investigación, pero las consideraciones prácticas deberían tomar otra parte importante de esas investigaciones. Un avión no es nada a menos que esté lleno de combustible.

Hay muchas buenas respuestas aquí. Permítanme decirlo de una manera simple y convincente.

El aprendizaje profundo es una técnica o método por el cual podemos hacer que las computadoras piensen y analicen una situación. En un aprendizaje automático normal o visión por computadora, una computadora puede entender cómo se ve una pirámide. Pero en el aprendizaje profundo, una computadora puede proporcionar más información, como cuál es el color del objeto y dónde se coloca el objeto y si se trata de una pirámide real o de una pirámide de juguete.

Si tuviéramos que comparar el aprendizaje profundo con los animales vivos, es un paso para tomar los algoritmos de aprendizaje actuales que se pueden comparar con el cerebro de un gato a un nivel de inteligencia más alto como el de un perro o incluso más alto al nivel de inteligencia humano.


El aprendizaje profundo o las redes neuronales artificiales han existido durante mucho tiempo. Pero ahora las condiciones para entrenar una red neuronal y aprendizaje profundo son favorables con la participación de GPU y HPC en el campo de la inteligencia artificial. Dos condiciones principales que hicieron del aprendizaje profundo una tendencia creciente son,

  1. Conjunto de datos escalable
  2. Computación escalable

Entrenar una red neuronal profunda puede ser un proceso que consume mucho tiempo y, aunque esté entrenado, siempre existe el problema de la precisión. Al igual que con el conjunto de datos escalable, puede continuar entrenando una red y actualizar los pesos anteriores con un nuevo conjunto de entrenamiento.

Las personas anteriores (alrededor de 2007) solían entrenar una red neuronal en una sola CPU e incluso una red poco profunda con un conjunto de datos de tamaño bastante promedio puede llevar días para completar el aprendizaje. Con las innovaciones actuales de CUDA y computadoras de alto rendimiento con clústeres de GPU, la capacitación se hizo fácil.


Mediante el uso de SVM, usted crea artesanías y hace que funcione. Pero para los casos que involucran un razonamiento elaborado y predicciones elaboradas , no se pueden usar SVM .

Así que tome el caso de la siguiente imagen.

“hombre de camisa negra toca la guitarra”

El título de esta imagen es generado por una red neuronal que se parece mucho a la forma en que pensamos en esta imagen. Para los casos que involucran explicaciones tan complejas, se debe utilizar Deep Learning . La razón principal detrás de esto son los hiperparámetros. El número de hiperparámetros requeridos para subtitular una imagen será bastante alto y elegir estos hiperparámetros manualmente en caso de SVM es casi imposible. Pero una red neuronal puede hacerlo de forma autónoma observando el conjunto de entrenamiento y aprendiendo.

SVM vs Deep Learning es un debate de larga data y varía según los casos y las topologías. Dependen principalmente de su caso de uso y otros parámetros.

Históricamente, las máquinas y los humanos han tenido habilidades complementarias. Las máquinas han sido buenas en automatización mientras que los humanos han sido buenos en habilidades cognitivas.

En las últimas décadas se han realizado esfuerzos para entrenar máquinas para replicar el cerebro humano. Esto dio lugar al concepto de aprendizaje automático en el que uno puede entrenar máquinas para tomar decisiones similares a las humanas mediante el reconocimiento de ciertas características. Esto se llama ML basado en la extracción de características

SVM, Regresión logística, Bosque aleatorio son ejemplos de ML basados ​​en características que también se llama aprendizaje supervisado. Por ejemplo, si hay un conjunto de datos históricos de pacientes con cáncer con diferentes características como edad, sexo, antecedentes familiares, antecedentes de salud, etc., los modelos anteriores pueden ser entrenados en datos históricos para comprender las características que tienen una fuerte correlación con el cáncer. Cuando un nuevo conjunto de datos con información similar se alimenta a la máquina, puede predecir qué pacientes tienen probabilidades de tener cáncer en el futuro.

Si bien este es un problema útil para resolver, especialmente desde una perspectiva de salud, el aprendizaje profundo es un animal completamente diferente.

Veamos cómo un niño aprende alfabetos desde una edad temprana. Tomemos un ejemplo del alfabeto “a”. Se le enseña al niño a reconocer “a” como una forma ovalada con una línea curva hacia abajo a la derecha. Sin embargo, una ” a ” puede representarse de muchas maneras. Dependiendo de quién lo escribió, hay varias formas similares del alfabeto. Si una máquina tuviera que aprender a reconocer “a” en términos de características, sería casi imposible. Podría definir mil millones de reglas para que la máquina reconozca el alfabeto y todavía habría algunos escenarios en los que no puede reconocerlo. Sin embargo, un niño aprende por experiencia y aprende a identificar “a” procesando varios bits diferentes de información para inferir el alfabeto. Puede que el alfabeto ni siquiera parezca “a”, pero el niño puede reconocerlo a través del pensamiento abstracto.

Este concepto de comprensión y aprendizaje de representaciones abstractas sin la necesidad de reglas predefinidas se denomina aprendizaje profundo. La máquina se enseña a aprender el concepto de aprender de la manera en que los humanos aprenden mediante el aprendizaje experimental.

Tomemos otro ejemplo. Acabas de empezar a aprender alemán. Conoces a dos extranjeros, uno de los cuales habla alemán. Pero como eres nuevo en alemán, ¿cómo puedes reconocer quién habla alemán? Lo haces mirando al hombre, se ve europeo, se ha quedado en Alemania desde la infancia, trabaja en Alemania, parece hablar un idioma como el alemán. Procesando todos estos bits, se puede inferir que está hablando alemán. Puede que te equivoques algunas veces, pero el punto es que, según tu experiencia del mundo, estás infiriendo cosas sin la necesidad de memorizar reglas. Esto es algo muy desafiante para una máquina.

Por lo tanto, la capacidad de aprender representaciones abstractas como lo hacen los humanos basadas en el pensamiento, la percepción y la intuición es de lo que se trata el aprendizaje profundo. Sin embargo, uno de los mayores desafíos es aprender a través de la experiencia, lo que significaría que la máquina necesita infinitos ejemplos de datos para poder interpretar como un humano.

Esto es aprendizaje profundo

Shyam

El aprendizaje profundo es un conjunto de técnicas para entrenar redes neuronales con muchas capas. Es un subcampo de aprendizaje automático, que considera otros modelos de datos además de las redes neuronales. Las redes neuronales se usan más comúnmente en el contexto del aprendizaje (semi) supervisado con el propósito de clasificación (aunque eso no es un requisito).

La minería de datos es un término más vago, pero a menudo el objetivo de la minería de datos es producir explicaciones cualitativas y comprensibles de los patrones en los datos. Las redes neuronales son ‘opacas’ en el sentido de que es muy difícil mirar una red neuronal entrenada y obtener una comprensión intuitiva de lo que realmente se ha aprendido. Por lo tanto, creo que el aprendizaje profundo no está especialmente asociado con la minería de datos en este momento.

El aprendizaje profundo permite
– use efectivamente el conocimiento extraído de datos sin etiquetar
– para disminuir la posibilidad de quedar atrapado en los mínimos locales
– mejorar el rendimiento del entrenamiento

Las redes neuronales multicapa son muy buenas. Pero muchas investigaciones encontraron que tener más de 2 capas ocultas solo proporcionaba efectos decrecientes (ralentiza significativamente el tiempo de entrenamiento pero no mejora la precisión). Esto se debe a que esas primeras capas ocultas están demasiado lejos de la salida (que es la fuente del aprendizaje por propagación inversa) y están básicamente más influenciadas por la configuración aleatoria inicial que por los datos de entrenamiento reales.

La forma de resolver esto es calcular las capas ocultas de una manera completamente diferente. Imagine que entrena una red neuronal que tiene:
– entrada
– una capa oculta
– salida que es la misma que la entrada (el mismo número de nodos y usted entrena a la red para emitir los mismos valores que son la entrada)
Y requiere que la capa oculta tenga:
– menos nodos en las capas de entrada / salida
– es escaso, es decir, los nodos suelen generar 0, pero solo a veces> 0.05
Esto se llama autoencoder (o autoassociator). Es genial porque generaliza la entrada; por ejemplo, a partir de 100 entradas, encuentra 20 características que pueden usarse para reconstruir la entrada.
Tenga en cuenta que no necesitaba datos etiquetados para entrenar un autoencoder.
Y puede apilar esos codificadores automáticos (aprenda un codificador automático encima de otro).

Entonces su red final podría verse así:
– capa de entrada
– capa del primer autoencoder
– capa del segundo autoencoder
– capa de salida

Si tiene muchos datos etiquetados, puede “ajustar” esta red, es decir, usar esas capas de codificadores automáticos como la primera generación de una gran red neuronal y luego ejecutar muchas generaciones de propagación de vainilla.

(tenga en cuenta que este artículo solo explica la idea básica sobre la red neuronal con codificadores automáticos; existen muchos algoritmos diferentes de “aprendizaje profundo”, pero esta es la idea común básica)
(PD: no dudes en corregir mi inglés)

Deep Learning es un subcampo del aprendizaje automático relacionado con algoritmos inspirados en la estructura y función del cerebro llamadas redes neuronales artificiales. Debido a las nuevas tecnologías informáticas, el aprendizaje automático actual no es como el aprendizaje automático del pasado. Nació del reconocimiento de patrones y la teoría de que las computadoras pueden aprender sin ser programadas para realizar tareas específicas; Los investigadores interesados ​​en la inteligencia artificial querían ver si las computadoras podían aprender de los datos. El aspecto iterativo del aprendizaje automático es importante porque a medida que los modelos están expuestos a nuevos datos, pueden adaptarse de forma independiente. Aprenden de cálculos anteriores para producir decisiones y resultados confiables y repetibles. Es una ciencia que no es nueva, pero que ha ganado un nuevo impulso.
Las máquinas de vectores de soporte se basan en el concepto de planos de decisión que definen los límites de decisión. Un plano de decisión es aquel que se separa entre un conjunto de objetos que tienen diferentes miembros de clase. Un ejemplo esquemático se muestra en la siguiente ilustración. En este ejemplo, los objetos pertenecen a la clase VERDE o ROJO. La línea de separación define un límite en el lado derecho del cual todos los objetos son VERDES y a la izquierda de los cuales todos los objetos son ROJOS. Cualquier objeto nuevo (círculo blanco) que caiga a la derecha se etiqueta, es decir, se clasifica como VERDE (o se clasifica como ROJO si cae a la izquierda de la línea de separación).

“¿Por qué no usar SVM?”

Debido a que necesita extraer las características antes de usar SVM, y la extracción de características es la parte más difícil de muchos problemas, como el reconocimiento de imágenes o la clasificación de texto. Tradicionalmente, los métodos de aprendizaje automático utilizan un paso previo de extracción de características.

Por ejemplo, si desea clasificar imágenes con SVM, ¿va a utilizar cada píxel como característica? Eso no va a funcionar. Necesita extraer características que puede usar en su clasificador SVM. Con aprendizaje profundo. La extracción de características es la parte del proceso de capacitación. Las características se aprenden; No diseñado por separado.

“¿Por qué es esta una tendencia creciente en el aprendizaje automático?”
Bien, ¿por qué este enfoque es mejor que la forma tradicional? Aparte de la automatización, la “profundidad” entra en juego aquí. Dado que las imágenes y los textos incluyen relaciones jerárquicas complejas, no es fácil encontrar formulaciones para representar estas relaciones en un extractor de características. Un sistema de aprendizaje profundo tiene múltiples capas de representación (es por eso que se llama “profundo”), lo que permite a la red modelar todas estas relaciones complejas. Y no necesita diseñar nada, esas capas se moldearán mediante la capacitación con ejemplos.

Como resultado, el poder del aprendizaje profundo no está en sus habilidades de clasificación, sino en sus habilidades de extracción de características automáticas y de niveles múltiples.

De hecho, puede intentar reemplazar la capa superior (densa) de una red profunda con un clasificador SVM o un clasificador aleatorio de bosques, y usar las funciones generadas por la red (de las capas inferiores), y puede obtener un mayor rendimiento. Esto no debería sorprender a nadie, porque esos clasificadores podrían ser mejores que los clasificadores neuronales en muchos casos. Pero esas características utilizadas en ese clasificador SVM fueron generadas por la red profunda. Puede encontrar un mejor clasificador, pero tal vez no pueda encontrar una mejor manera de extraer esas características. Es por eso que el aprendizaje profundo es una tendencia creciente.

El aprendizaje profundo, poco a poco, es la mejora que las redes neuronales han estado esperando. Habilitado principalmente por los avances de gpu y hardware y, en gran parte, matemáticos.

En los casos de uso del planeta, las máquinas de vectores de soporte y el aprendizaje profundo viven bastante lejos. A SVM realmente le gusta la linealidad o la linealidad intrínseca o algo que puede transformarse en lineal. Además, generalmente extraen información sobre las características que les indica.

El aprendizaje profundo es mucho menos comprensible en términos de por qué el modelo hace lo que hace, pero puede extraer información de características mucho más vagamente definida o, a veces, no definida.

Soy un gran defensor del uso de técnicas de aprendizaje automático (por ejemplo, svm) siempre que sea posible si son suficientes. Es más fácil justificarlos post mortem. Además, requieren mucha menos información para hacer su trabajo.

El aprendizaje profundo es excelente cuando desea resolver un gran problema semiestructurado con una gran cantidad de datos y capacidad computacional y luego producir una pequeña solución de caja negra portátil para ello.

Para comprender la necesidad del aprendizaje profundo, uno debe comprender una técnica importante de aprendizaje automático: las redes neuronales artificiales.

La base de ANN es el teorema de aproximación universal que establece que: una red de alimentación con una sola capa oculta que contiene un número finito de neuronas puede aproximar funciones continuas en subconjuntos compactos de Rn, bajo suposiciones leves sobre la función de activación.

Por lo tanto, los ANN son ideales para la mayoría de los procedimientos de aprendizaje. Sin embargo, las limitaciones en la función de activación y la pérdida de precisión pueden mejorarse mediante capas adicionales en las redes neuronales. Esto crea el problema del rendimiento, ya que actualizar una matriz MxN que representa los pesos del NN multicapa sería muy costoso para cada iteración. La solución a esto es el aprendizaje profundo.

Deep Learning combina el poder del ANN de múltiples capas con la capacidad informática de la unidad de procesamiento de gráficos de uso general para producir mejores resultados.

Además, la capacidad de resolver estos problemas también ha llevado a muchas técnicas avanzadas basadas en NN, como redes neuronales convolucionales, redes neuronales recurrentes, memoria a largo plazo, etc., que combinan modelos gráficos con NN para proporcionar soluciones especializadas a problemas específicos.

La razón por la que usamos DL sobre técnicas clásicas de ML como máquinas de vectores de soporte es una combinación de todas las razones anteriores. Las NN se generalizan mejor que otras técnicas de ML (UAT arriba) y dado que GP-GPU proporcionan el rendimiento requerido, DL ha experimentado un gran crecimiento e interés en los últimos días.

Fuente de la imagen: Google.

More Interesting

¿Crees que sería bueno que una IA suficientemente inteligente tuviera la capacidad de abordar perfectamente las preguntas de Quora?

¿Cuál es tu opinión sobre los chatbots de IA? ¿Será un serio contendiente en el espacio tecnológico, o será solo una moda?

¿Cuáles son las mejores revistas en computación evolutiva?

¿Puede la inteligencia artificial hacerse cargo de los trabajos humanos?

¿Cómo podemos combinar dos redes neuronales profundas y entrenarlas de extremo a extremo?

¿Por qué los robots no pueden reemplazar a los soldados humanos? ¿Cuáles son las principales brechas en la tecnología?

Cómo usar vl_nnbnorm en mi propia implementación de una red neuronal

Cuántos 'nodos' funcionales una vez integrados son; (a) requerido, (b) óptimo, para que el "cerebro global" logre una conciencia de funcionamiento coherente (sensible)?

¿Cuánta inteligencia artificial comprende realmente Elon Musk?

¿Los desarrolladores front-end serán reemplazados por IA?

¿Por qué es importante el documento de DeepMind "Aprender de las preferencias humanas"?

¿AI comenzará a automatizar la escritura de software (incluidos ML e AI)? Si es así, ¿qué debe hacer un desarrollador para seguir siendo relevante y empleable?

¿Qué tipo de IA es Amazon Alexa?

¿Para qué sistemas económicos se ha propuesto cuando la IA hace obsoletos los sistemas económicos modernos?

¿Cómo se expresa el aprendizaje supervisado de una red neuronal de retroalimentación como inferencia en un gráfico de factores?