¿Puedo aprender el aprendizaje automático y el aprendizaje profundo en paralelo?

Deep Learning es una forma de hacer Machine Learning. Entonces, cuando estás aprendiendo Deep Learning también estás aprendiendo Machine Learning. Para el aprendizaje automático en general y el aprendizaje profundo en particular, necesita algunas habilidades fundamentales. Estos van desde las matemáticas hasta la ingeniería de software y debes aprenderlos en paralelo. Recientemente escribí una respuesta que entra en algunos detalles. Espero que te ayude.

Álgebra Lineal, Probabilidad y Cálculo

Desearía que alguien me hubiera dicho esto en la escuela secundaria. Álgebra lineal, probabilidad y cálculo son las herramientas más importantes para expresar y ejecutar ideas . Enfoque su estudio desde una perspectiva de herramientas. La mejor manera de comenzar es leer la parte 1 del Libro de aprendizaje profundo. Luego, haga que el aprendizaje de Álgebra lineal, Probabilidad y Cálculo sea parte de su experiencia de aprendizaje mediante el consumo continuo de material. Aquí hay algunos recursos más. No hay límite de cuán profundo puedes llegar. Soy un novato y sigo aprendiendo …

  • La esencia del álgebra lineal: Increíble construcción de intuiciones. Simplemente hermoso.
  • La esencia del cálculo. Igual que arriba pero para cálculo.
  • Notas del curso de Métodos matemáticos para visión artificial, robótica y gráficos. Esto es asombroso. Un poco difícil de digerir y tendrá que referirse a material complementario, pero merece la pena. Recomiendo volver a la Academia Khan para obtener materiales complementarios.
  • Métodos matemáticos para ingenieros 1 y 2. Curso MIT sobre matemáticas aplicadas. Algunos métodos relevantes para la IA y otros no.

Ingeniería de software para IA

Alabado sea la gente que decidió usar Python y no cosas como Matlab para compartir conocimientos y técnicas de IA.

  • Aprende Python. La mayoría de las bibliotecas de IA y el código de muestra están implementadas en Python. Vengo de un entorno JAVA y este libro me ayudó inmensamente a comprender las formas pitónicas.
  • Una vez que se sienta cómodo con lo básico, comience a sentirse cómodo con la programación paralela en Python. Tendrá que usarlo para crear datos de entrenamiento en paralelo o acelerar tareas de cocción de datos mundanos. Este blog te dará un buen comienzo. Encontrarás el maravilloso mundo de GIL :).
  • Mejora el uso de NumPy y Scipy. Estas herramientas implementan las matemáticas en las computadoras. Esta introducción de Stanford es un gran comienzo. Un punto sutil es este: NumPy parece haber establecido los estándares sobre cómo se debe pensar en Álgebra lineal en las computadoras. Entonces, los conceptos aprendidos aquí se transfieren a la mayoría de los otros kits de herramientas de IA.
  • Elija su kit de herramientas de aprendizaje profundo y sea bueno en eso. Por ejemplo, Tensorflow o Tensorflow + Keras. Muchos para elegir. Los sitios web de estos kits de herramientas están llenos de material de aprendizaje y guías.
  • El aprendizaje profundo requiere mucha computación y la mejor manera de resolver esto es mediante el uso de GPU. La mayoría del marco de Deep Learning proporciona una fácil integración con las GPU. Aprenda sobre las GPU y cómo hacen las cosas más rápido. Recomiendo este libro y este curso. Recuerde, no necesita saberlo todo, pero la comodidad con este material lo ayudará a ejecutar sus redes más rápido y a solucionar problemas.

Materiales de aprendizaje profundo

En mi humilde opinión, la progresión de la digestión de materiales es conferencias -> blogs / libros -> documentos. Algunos de mis favoritos

Conferencias

  • Redes neuronales para el aprendizaje automático
  • Redes neuronales convolucionales para reconocimiento visual
  • Aprendizaje profundo para el procesamiento del lenguaje natural
  • Oxford CS Deep PNL
  • Redes neuronales

Blogs / Libros

  • Libro de aprendizaje profundo
  • Andrej Karapathy
  • Colah
  • Sebastian Ruder
  • WildML
  • Destilar

Papeles

  • Gran lista compilada por Terry Taewoong Um
  • Crea una cuenta en Arxiv Sanity Preserver y vuelvete loco

Este campo se mueve tan rápido que la mejor manera de “mantenerse informado” es seguir a los líderes del campo. La mejor manera de hacerlo es en las redes sociales. Algunas recomendaciones y muy probablemente las redes sociales que elijas (la mayoría de ellas están activas en Twitter) comenzarán a mostrarte personas más relevantes 🙂

  • Andrew Ng
  • Yoshua Bengio
  • Yann LeCun
  • Fie-Fie Li
  • Andrej Karpathy
  • François Chollet

Infraestructura

Pronto comenzará a desear un poderoso sistema de GPU. Comenzará a prestar más atención a la nueva versión de GPU que a la nueva versión de gadget. Recomiendo construir un equipo de GPU si te tomas en serio la búsqueda de IA y jugar con ella. Las siguientes guías serán útiles

  • Una guía completa de hardware para el aprendizaje profundo – Tim Dettmers
  • Construyendo su propio cuadro de aprendizaje profundo – Hacia la ciencia de datos – Medio
  • GTC 2017

Básicamente, el aprendizaje profundo es parte del aprendizaje automático. y también necesita una base sólida de estadísticas y probabilidad .

Luego, comience con el aprendizaje automático. Y luego, después de algunas semanas, comience a aprender lentamente Aprendizaje profundo.

Una cosa más que debe perfeccionar con las bibliotecas de Python .

¿Por qué estás esperando …?

Comience a aprender ML desde ahora …

El mejor curso en línea de aprendizaje automático

Machine Learning AZ ™: Python práctico y R en ciencia de datos

Este curso ha sido diseñado por dos científicos de datos profesionales para que podamos compartir nuestro conocimiento y ayudarlo a aprender teoría compleja, algoritmos y bibliotecas de codificación de una manera simple.

Está estructurado de la siguiente manera:

  • Parte 1: preprocesamiento de datos
  • Parte 2: Regresión: Regresión lineal simple, Regresión lineal múltiple, Regresión polinómica, SVR, Regresión de árbol de decisión, Regresión forestal aleatoria
  • Parte 3 – Clasificación: Regresión logística, K-NN, SVM, Kernel SVM, Naive Bayes, Clasificación del árbol de decisión, Clasificación aleatoria del bosque
  • Parte 4 – Agrupación: K-medias, agrupación jerárquica
  • Parte 5 – Aprendizaje de reglas de asociación: Apriori, Eclat
  • Parte 6 – Aprendizaje de refuerzo: límite de confianza superior, muestreo de Thompson
  • Parte 7 – Procesamiento del lenguaje natural: modelo de bolsa de palabras y algoritmos para PNL
  • Parte 8 – Aprendizaje profundo: redes neuronales artificiales, redes neuronales convolucionales
  • Parte 9 – Reducción de dimensionalidad: PCA, LDA, Kernel PCA
  • Parte 10 – Selección y refuerzo del modelo: validación cruzada k-fold, ajuste de parámetros, búsqueda de cuadrícula, XGBoost

Además, el curso está repleto de ejercicios prácticos basados ​​en ejemplos en vivo. Entonces, no solo aprenderá la teoría, sino que también obtendrá práctica práctica para construir sus propios modelos.


El mejor curso en línea de aprendizaje profundo

Deep Learning AZ ™: principiante a avanzado

Aquí aprenderás

  • Comprender la intuición detrás de las redes neuronales artificiales
  • Aplicar redes neuronales artificiales en la práctica
  • Comprender la intuición detrás de las redes neuronales convolucionales
  • Aplicar redes neuronales convolucionales en la práctica
  • Comprender la intuición detrás de las redes neuronales recurrentes
  • Aplicar redes neuronales recurrentes en la práctica
  • Comprender la intuición detrás de los mapas autoorganizados
  • Aplicar mapas autoorganizados en la práctica
  • Comprender la intuición detrás de las máquinas Boltzmann
  • Aplicar máquinas Boltzmann en la práctica
  • Comprender la intuición detrás de AutoEncoders

Todo lo mejor .

Dado que tiene experiencia en programación de su trabajo de desarrollo móvil, es ciertamente posible aprender Redes Neuronales Artificiales (Aprendizaje Profundo) en Python (Keras y Tensorfow hacen la tarea muy simple).

Dicho esto, solo estarías aprendiendo un subconjunto de aprendizaje automático de esta manera.

Inevitablemente habrá situaciones en las que las soluciones a los problemas que encuentre en el aprendizaje profundo necesitarán que comprenda los conceptos subyacentes del aprendizaje automático (por ejemplo, álgebra lineal, cálculo multivariado, etc.).

Entonces para resumir:

  1. Si solo tienes curiosidad y quieres aprender por interés, dispara directamente a Deep Learning en Python con Keras / Tensorflow.
  2. Si está considerando un cambio serio, considere una educación adecuadamente construida en el aprendizaje automático.

El aprendizaje profundo es una metodología, entre muchas otras, de cómo se puede construir y entrenar una red neuronal artificial. Las redes neuronales en sí mismas son un subconjunto del enfoque inspirado en el cerebro que representa el área más grande del aprendizaje automático. Creo que el panorama general ayudaría:

[ fuente: Tutorial sobre arquitecturas de hardware DNN ]

Puedes probar. Sugeriría aprender algunos algoritmos / enfoques de aprendizaje automático antes de abordar el aprendizaje profundo, ya que la mayoría de los algoritmos de aprendizaje profundo se crean utilizando los bloques de construcción de las redes de alimentación de una sola capa y el aumento de gradiente estocástico. Aquí hay un breve PPT que detalla los métodos con una lista de documentos de referencia (todos tienen implementación R): https://www.slideshare.net/Colle

El aprendizaje profundo es un subconjunto del aprendizaje automático. Tienes que aprender lo básico primero. Y lo más básico de ambos son las estadísticas y la teoría de la probabilidad.

En mi opinión, para ser eficiente en ML y DL, uno debe tener una comprensión muy buena e intuitiva de las estadísticas y las probabilidades.

Entonces, antes que nada, comencemos con el problema de que el aprendizaje humano en paralelo es muy difícil. Sin embargo, en este caso es muy fácil e imposible dependiendo de su perspectiva. Esto se debe a que el aprendizaje profundo es un subconjunto del aprendizaje automático, por lo que aprender ambos al mismo tiempo (una interpretación del aprendizaje en paralelo) es fácil, solo aprende DL. Por otro lado, aprender en paralelo es imposible (usando la interpretación de aprender dos cosas distintas (distintas), donde estamos usando paralelo para implicar que no se cruzan). En cualquier caso, el núcleo de esto es si desea aprender ambos, aprender DL, pero solo aprenderá un subconjunto significativo pero parcial de ML.

El aprendizaje profundo es un subconjunto del aprendizaje automático. Primero debe tener una base básica en el aprendizaje automático.

No creo que haya una respuesta directa para esta pregunta. Realmente depende de su comprensión actual del aprendizaje automático. Si sabes muy poco sobre el aprendizaje automático, diría que esto debe ser un proceso de aprendizaje secuencial.

nada es imposible, pero:

considere que el aprendizaje profundo es una parte estrecha del aprendizaje automático, por lo que es preferible tener al menos una comprensión de conceptos básicos como: redes neuronales, diversas funciones de costos, validación cruzada … luego profundice.

¡Buena suerte!

Le sugiero que pase por las primeras conferencias de un curso de aprendizaje automático (preferiblemente Andrew Ng las primeras 3-4 semanas) donde se enseñan conceptos de gradiente decente y otros conceptos básicos.

Hasta donde yo sé, la mayoría de los cursos de DL esperan que tengas al menos algo de experiencia con el aprendizaje automático.

Una vez que haya terminado con las primeras semanas de Andrew Ng, puede hacer el aprendizaje automático y el aprendizaje profundo simultáneamente, ya que los temas que cubrirá serán mutuamente excluyentes.

En ML, luego habrá árboles de decisión, SVM, etc., en DL harás redes convolucionales y LSTM. Estos temas no están relacionados directamente y se pueden hacer simultáneamente.

Sí, puedes aprender Machine Learning y Deep Learning de manera paralela porque en Machine Learning aprenderás las Redes Neuronales, Redes Neuronales Artificiales, que son los fundamentos del aprendizaje profundo.