loading...

▷ Cómo aprender aprendizaje automático o machine learning en 2020 🤖

rosepac profile image Pablo Álvarez Corredera Originally published at ciberninjas.com on ・9 min read

En esta publicación, nos vamos a centrar en como aprender aprendizaje automático / profundo o machine learning / deep learning durante el nuevo año 2020. Existen variopintos campos relacionados al respecto; Aprendizaje profundo, Inteligencia Artificial, teoría estadística, cognitivo computacional y más.. pero en este caso nos centraremos únicamente en Machine Learning.

¿Por dónde debería comenzar?

Seguramente, el punto de enfoque más indicado sea el siguiente: elegir un problema que resolver y comenzar buscando en Google los modelos más comunes que se utilizan para resolver ese tipo de problema o problemas.

Luego se puede seguir desde Github, buscando código que resuelvan ese posible problema u otros similares. Descargar ese código y seguramente, ese sea el punto de partida de tu trabajo.

Desde comenzar a trabajar, cambiandolo e experimentando sobre el código. Toda la teoría y todo lo demás esta muy bien; pero es inútil en su mayoría.

Es demasiada cantidad de información para aprender desde cero y probablemente vas a terminar usando muy poco de entre ello. Hay tanto código sobre aprendizaje automático en Github desde el que aprender, que esa base va a ser realmente la mejor fórmula de partida.

Cuando encuentres un concepto que necesites comprender, a través de Google puedes buscar el concepto en cuestión y aprender la información más básica necesaria. Lo que te dará adquirir una mayor comprensión con la que seas capaz de aplicar el código con mayor sentido.

Dentro del campo del machine learning, seguramente tendrás que ir trabajando de forma intuitiva para ir resolviendo los problemas que deseas; pero siempre tendrás grandes brechas.

Debes de tener en cuenta de que existen los cursos Online como fast.ai o fast.ai desde este otro enlace antes de otros que se venden mucho más caros a pesar de enseñarte solamente preguntas que Google es capaz de responderte, sin ningun tipo de problema.

Siempre puedes comenzar visualizando uno o dos videos cortos sobre la propagación hacia atrás. No es necesario que te confundas con la teoría y las matemáticas, puedes ser productivo de inmediato. Una vez que comience a jugar con los modelos de Pytorch y Tensorflow (entrene usted mismo o realice el aprendizaje por transferencia), comenzará a desarrollar una intuición sobre cómo encajan los gráficos de red. También recogerás herramientas como tensorboard.

Procura siempre ir transferiendo el aprendizaje hacía la práctica. Es increíble entrenar en un conjunto grande de datos y de alta calidad, existen bases de datos disponibles públicamente; si eres capaz de terminar resolviendo los problemas sobre un gran conjunto de datos te será mucho más sencillo aplicarlo sobre tu propio conjunto de datos; con seguridad, mucho más pequeño.

En la actualidad, da la sensación de que el aprendizaje profundo será será como la ingeniería de hoy ;donde puedes aprender haciendo y sin necesidad de un título u otros estudios formales para pdoer llegar a ser productivo y ser capaz de crear tus propias redes.

Puedes ser capaz de diseñar redes de conversión de voz y TTS, por ejemplo, sin necesidad de estudios específicos; y posteriormente, si comienzas a leer páginas y artículos sobre redes similares a la que tu deseas crear; puedes llegar a ese punto más simple desde el que ir avanzando.

Con seguridad, te será útil comenzar con algo de teoría, aunque solo sea para adaptarte al vocabulario con el que pensar y obtener ayuda con los problemas que te encuentres. A riesgo de sonar como un disco rayado, la clase gratis de Andrew Ng en Coursera (en inglés, aunque esta disponible con subtítulos en español ) y disponible en Youtube las personas que lo han realizado lo aconsejan y dicen que es bastante bueno: esto te dará acceso a un poco de conocimiento básico de cálculo (todo lo que necesitas son derivadas simples de una variable y derivadas parciales) y álgebra lineal básica (como la multiplicación de matrices).

El curso completo son alrededor de 30 horas, así que si estás decidido realmente; probablemente puedas terminarlo en 2-3 semanas o un par de meses; si estás muy ocupado.

Además, existen estos apuntes sobre ese mismo curso en Github los cuales te aclararan ciertos puntos que en el curso no son explicados expresamente y otras anotaciones.

Consejos Rápidos

  1. Es importante que si estas leyendo un documento y te sientes intimidado por las matemáticas complejas que allí se reflejan, debes tener en cuenta de que a menudo esas matemáticas solo se incluyen para hacer que el documento se vea más impresionante, y a veces ni siquiera es correcto.
  2. Si quieres ir por una ruta aplicada, te sugiero que comiences en algún lugar como Kaggle y busques en las competiciones unas vagamente similares a las tuyas. Han hecho todo el trabajo duro de elegir un problema desafiante pero solucionable, buscar y dividir los datos y elegir una métrica. Luego puede ver qué técnicas realmente funcionan realmente bien y comparar diferentes enfoques.
  3. Existen páginas que ofrecen problemas y desafíos académicos como Imagenet o Coco que también son buenos para practicar, pero tendrás que trabajar más para encontrar recursos relevantes. Una vez que haya hecho esto un par de veces, puede comenzar a enmarcar sus propios problemas, recopilar y anotar sus propios conjuntos de datos, implementar y mantener modelos.
  4. La forma más rápida de aprender algo es encajarlo en un marco que ya comprenda. Si tiene un doctorado en física teórica / matemáticas abstractas (como muchos investigadores de ML), los marcos más matemáticos (teóricos) serán una buena manera de construir intuiciones profundas. Si, por otro lado, está más interesado en el análisis de datos aplicados, entonces probablemente encontrará que trabajar en aplicaciones será la forma más fácil de hacerlo.

Sobre fast.ai

El modelo de aprendizaje seguido dentro de este curso; es el siguiente. El curso empieza simplemente aplicando modelos preconstruidos a las cosas, y luego va guiandote a ajustarlos, finalmente te guia a aprender la teoría que hace que los ajustes funcionen.

Paso a Paso

  • He aquí, una interesante ruta de aprendizaje, paso a paso:
  1. Obtenga una base sólida en álgebra lineal. Se puede formular una gran cantidad de aprendizaje automático en términos de una serie de operaciones matriciales, y a veces tiene más sentido. Pensé que Coding the Matrix era bastante bueno, especialmente los primeros capítulos.

  2. Lea sobre alguna optimización básica. La mayoría de las veces tiene más sentido formular el algoritmo en términos de optimización. Por lo general, desea minimizar algunas funciones de pérdida y eso es simple, pero los términos de regularización dificultan las cosas. También es útil saber por qué se regularizaría.

  3. Aprende un poco de probabilidad. Cuanto más avance, más útil será cuando desee ejecutar simulaciones o algo así. Jaynes tiene un buen libro pero no diría que es elemental.

  4. Aprenda distribuciones estadísticas: Gaussian, Poisson, Exponencial y beta son las grandes que veo mucho. No tiene que memorizar las fórmulas (también las busco), pero sé cuándo usarlas.

Mientras aprende esto, juegue con la regresión lineal y sus variantes: polinomio, lazo, logística, etc. Para los datos tabulares, siempre busco la regresión apropiada antes de hacer algo más complicado. Es sencillo, rápido, puede ver qué sucede con los datos (como qué transformaciones debe realizar o dónde le faltan datos), y es interpretable. Es bueno tener algunos resultados preliminares para mostrar y discutir mientras todos los demás luchan por obtener resultados no terribles de sus redes neuronales.

Entonces realmente puedes meterte en la carne con el aprendizaje automático. Primero comenzaría con los modelos basados ​​en árboles. Son más directos y compasivos que las redes neuronales. Puede explorar cómo la complejidad de sus modelos afecta las predicciones y comenzar a tener una idea de la optimización de hiperparámetros. Comience con árboles básicos y luego entre en bosques aleatorios en scikit-learn. Luego explore los árboles impulsados ​​por gradiente con XGBoost. Y puedes obtener resultados realmente buenos con los árboles. En mi grupo, rara vez vemos que las redes neuronales superen a los modelos construidos en XGBoost en datos tabulares.

La mayoría de las publicaciones de blog apestan. La mayoría de los papeles son inútiles. Recomiendo el aprendizaje automático de Geron.

Luego exploraría el amplio mundo de las redes neuronales. Comience con Keras, que realmente enfatiza la construcción de modelos de una manera amigable, y luego continúe con PyTorch a medida que se sienta cómodo depurando Keras. Ataque algunos problemas de clasificación de objetos con y sin backends pre-entrenados, luego entre en detección y PNL. Juegue con la regularización de peso, la norma de lotes y la norma de grupo, diferentes tasas de aprendizaje, etc. Si realmente desea profundizar en las cosas, también aprenda algo de programación de CUDA.

Realmente me gusta el aprendizaje profundo de Chollet con Python.

Libros y Páginas Interesantes sobre Machine Learning

Herramientas

  • Google Colab para poder acceder a una GPU / TPU gratuita.
  • El motor JIT de libtorch en Rust (enlaces tch.rs)
  • Voz: MeIGan*, ParallelWaveGAN.
  • SDK de Rust para Tensorflow.
  • GanS o Redes Generativas Adversas*
  • Simplemente haga clic en Ejecutar en Google Colab en la esquina superior izquierda y comience a evaluar los bloques de código.

Proyectos de Github

  • Clasificación de oraciones

Guía de PNL basada en ML. Identificamos si una oración es una pregunta, declaración o comando usando redes neuronales.

Fuente : Hacker News Hilo

Posted on by:

rosepac profile

Pablo Álvarez Corredera

@rosepac

I find, read and report everything that can be useful for a programmer or web developer apprentice

Discussion

markdown guide