¿Qué debo hacer para aumentar mis habilidades en el aprendizaje profundo?

Respondí una pregunta similar recientemente. Espero que te ayude también. Afortunadamente para nosotros, la mayoría de los pioneros de Deep Learning son buenos educadores y constructores. El resultado es una gran cantidad de recursos de aprendizaje gratuitos y de alta calidad. Proporcionaré alguna orientación sesgada por mi experiencia personal. No tengo un doctorado y he adquirido habilidades en el trabajo y a través de Internet. Además, me considero un practicante y no un investigador. Aquí hay cosas que me han ayudado. Recuerde que puede hacer esto en paralelo como una GPU 🙂

Á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
  • Redes neuronales y aprendizaje profundo.
  • Colah
  • Sebastian Ruder
  • WildML
  • Destilar

Documentos

  • 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

Hola friederich

Felicidades por su decisión de aprender algo sobre Deep Learning, en mi opinión, es uno de los campos más emocionantes en informática hoy en día.

Personalmente, un enfoque que me está ayudando mucho es obtener la ‘visión general’ de DL: en youtube puedes encontrar excelentes charlas sobre esto. Personalmente, sugiero buscar videos de Geoffry Hinton, Yan LeCun y Yoshua Bengio.

Estos son algunos de estos videos sin un orden particular (una palabra de advertencia, pueden ser bastante adictivos):

Geoffry Hinton

Yann LeCun

Yoshua Bengio:

Con una simple búsqueda en YouTube, encontrarás algunas otras excelentes charlas de ellos.

Por lo general, son en su mayoría divulgativos, ¡por supuesto, algunas matemáticas! Pero, dependiendo de su interés personal y su comprensión actual de los argumentos, también puede encontrar fácilmente algunas excelentes clases completas de nivel universitario.

Por ejemplo, estas son dos grandes clases de Stanford:

Procesamiento del lenguaje natural con aprendizaje profundo, impartido por Richard Socher y Christopher Manning

Redes neuronales convolucionales (aprendizaje profundo para visión artificial), impartidas por el Dr. Fei-Fei Li y Andrej Karpathy (quien recientemente se unió a Tesla como Director de IA)

¡Espero que los encuentres interesantes y útiles!

Deep Learning (DL) es un tema candente con conexiones a muchas disciplinas matemáticas y no matemáticas como:

  • Estadística y teoría de la probabilidad
  • Cálculo
  • Álgebra lineal
  • Ciencias de la computación (especialmente algoritmos)
  • Conceptos básicos de inteligencia artificial
  • Psicología
  • Biología

Cada parte de arriba influye en el campo de aprendizaje profundo. Sin la Estadística y la Teoría de la Probabilidad no se pueden entender los marcos probabilísticos que se usan ampliamente en DL hoy en día, principalmente en el enfoque bayesiano.

El cálculo es el elemento central para la mayor parte de los algoritmos de optimización en DL: el descenso de gradiente y sus derivaciones como Adam, RMSprop, etc. se basan profundamente en los cálculos de derivados, la regla de la cadena y las nociones sobre los límites.

El uso del álgebra lineal es absolutamente necesario debido a las matrices de altas dimensiones que contienen características y describen algunas propiedades de visión sobre los objetos. Muchos de los resultados para los métodos de optimización en DL se derivan de casos de alta dimensión; es por eso que debe comprenderlo no solo por el bien de Math sino también para futuros propósitos de implementación en Python / C / C ++ / Lua, etc.

La informática y su parte sobre los algoritmos son cosas esenciales para cada persona DL / ML. Debe conocer todas las estructuras de datos importantes y cómo manejarlas con el propósito de diseñar algoritmos DL rápidos, escalables y eficientes. Las ideas de complejidad computacional como la notación O deben tenerse en cuenta si desea comparar métodos DL, especialmente para tareas en tiempo real. Por supuesto, debe recordar que todos los marcos DL famosos (TensorFlow, PyTorch, etc.) requieren de usted un buen conocimiento de CS y habilidades de programación.

Los conceptos básicos de inteligencia artificial le brindan una perspectiva amplia de lo que está sucediendo en los campos relacionados (lógica difusa, sistemas expertos, métodos basados ​​en reglas, etc.) y pueden darle cierta intuición sobre el diseño de métodos DL.

La psicología y la biología tienen un fuerte impacto en los desarrollos actuales en DL. Por ejemplo, el aprendizaje por refuerzo tiene raíces en las ideas conductistas y las redes neuronales convolucionales tienen conexiones con ideas biológicas sobre la corteza visual (V1, V2, etc.). Las ideas de estas disciplinas que no son CS no dictan DL qué hacer, pero fueron buenos puntos de partida. Ahora, la situación es diferente, pero quién sabe, tal vez algún día la nueva idea, que será lo suficientemente poderosa para la creación de Inteligencia Artificial General, llegue de estas disciplinas u otras relacionadas.

¡Todo lo anterior tiene un fuerte impacto en tus habilidades, solo tómalo, léelo, entiéndelo y continúa, para buscar nuevos tesoros de IA!

Tienes dos direcciones principales para entrar, en mi opinión. La obvia es tomar cursos de nivel superior a nivel universitario para aprender teoría y técnica más complicadas. Probablemente harás esto a su debido tiempo, estoy seguro.

El segundo, que puede comenzar ahora, es resolver problemas de aprendizaje automático. Problemas reales, no problemas académicos. Una manera fácil de obtener estos problemas y los datos necesarios para el entrenamiento es intentar competencias como las de Your Home for Data Science. Si puedes competir en estas competiciones, estás en buena forma. Si no puedes, sigue intentándolo hasta que puedas. Al menos aprenderás dónde reside tu debilidad.

Hasta ahora has hecho un gran trabajo a ese nivel, te recomendaría que crees alguna aplicación básica usando tensorflow, etc., que fortalecerá tu programación y aclarará más tus conceptos, una vez hecho esto podrás pensar más por tu cuenta … sigue leyendo documentos, sigue viendo conferencias.

Haga esto un año, luego se dará cuenta de en qué parte de DL debe enfocarse, el procesamiento de video es bastante impresionante.

en caso de que necesite ayuda con los modelos de construcción de tensorflow, contácteme aquí.