Con esta publicación vamos a crear una línea de aprendizaje que seguir para la creación de un proyecto de aprendizaje automático 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.. En este caso nos centraremos únicamente en Machine Learning.

¿Por dónde comenzar con el aprendizaje automático?

Analizando las diferentes posibilidades el punto de enfoque más indicado sería el siguiente: Elegir un problema que resolver y centrarse en encontrar los modelos más comunes para resolver ese tipo de problema u otros similares.

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, cambiándolo 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 ningún 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 transfiriendo 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 sera como la ingeniería de hoy; donde puedes aprender haciendo y sin necesidad de un título u otros estudios formales para poder 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 para Aprender Machine Learning

  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 guiándote a ajustarlos, finalmente te guía a aprender la teoría que hace que los ajustes funcionen.

El Aprendizaje Automático: 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 hiper pará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.

Recursos Interesantes de Machine Learning

Lista de algunos de los mejores libros y blogs sobre aprendizaje automático que existen.

Esta es una lista curada de tutoriales, artículos y recursos de aprendizaje automático y aprendizaje profundo. Organizada por tema, la lista contiene numerosas categorías relacionadas con el aprendizaje profundo, incluida la visión por computadora, el aprendizaje por refuerzo y varias arquitecturas. Ha estado circulando en las redes sociales durante algunos meses, dado su extenso contenido, y usted puede contribuirmira aquí.

Esta es una lista curada de bibliotecas de aprendizaje automático, framework´s y software. La lista se clasifica por lenguajes de programación y, además, por categorías de aprendizaje automático (propósito general, visión por computadora, procesamiento del lenguaje natural, etc.). También incluye herramientas de visualización de datos, lo que amplia la lista a ser una lista sobre la ciencia de datos.

Esta es una colección de tutoriales de cuaderno de IPython para scikit-learn, así como una serie de enlaces a temas relacionados con Python relacionados con el aprendizaje automático general y específicos de Python, e información más general sobre ciencia de datos. El autor tampoco es codicioso; son rápidos para señalar muchos otros tutoriales que cubren un terreno similar, en caso de que este le guste. El repositorio no tiene ningún software, pero si eres nuevo en el aprendizaje automático de Python, puede valer la pena echarle un vistazo.

Este repositorio es una colección de los tutoriales de aprendizaje profundo de LISA Lab de la Universidad de Montreal. Directamente del archivo Léame:

Los tutoriales presentados aquí le presentarán algunos de los algoritmos de aprendizaje profundo más importantes y también le mostrarán cómo ejecutarlos con Theano. Theano es una biblioteca de Python que facilita la escritura de modelos de aprendizaje profundo y ofrece la opción de entrenarlos en una GPU.

El enlace directo a los tutoriales.

Este repositorio contiene el código del libro de O’Reilly Machine Learning for Hackers . Todo el código de repositorio está en R, se basa en numerosos paquetes de R y los temas cubiertos incluyen las tareas demasiado comunes de clasificación, clasificación y regresión, así como procedimientos estadísticos como el análisis de componentes principales y el escalado multidimensional.

🐍 Aprender Python 🐍 🐍 Cursos de Machine Learning 🐍 🐍 Libros de Python 🐍 🐍 Cursos de Python 🐍 🐍 Catálogo de Python 🐍

Proyectos de Aprendizaje Profundo

  • Scikit-Learn

Scikit-Learn, es la biblioteca de aprendizaje automático para programadores de Python de todo el mundo, desde la industria hasta la universidad. Scikit-learn aprovecha la pila de computación científica de Python, construida sobre NumPy, SciPy y matplotlib. Como un juego de herramientas general, Scikit-learn contiene algoritmos de clasificación, regresión y agrupación, así como herramientas de preparación de datos y evaluación de modelos.

👉 Visitar Scikit-Learn

  • Prediction IO

PredictionIO, es un servidor de aprendizaje automático para desarrolladores e ingenieros de Machine Learning. Construido sobre Apache Spark, HBase y Spray.

Este framework de propósito general, incluye varios motores de plantillas para tareas ya reconocidas, como la clasificación y recomendación, que se pueden personalizar, se conecta a aplicaciones existentes con REST API o SDK e incluye soporte para Spark MLib. Dado que está construido sobre Spark y utiliza su ecosistema, no debería sorprendernos que PredictionIO este desarrollado principalmente en Scala.

👉 Visitar PredictionIO

  • Pattern

Pattern es un kit de herramientas de minería web basado en Python que sale del centro de investigación de Lingüística y Psicolingüística Computacional (CLiPS) de la Universidad de Amberes. En este contexto, tiene herramientas para las tareas de raspado, aprendizaje automático, procesamiento del lenguaje natural, análisis de redes y visualización. Pattern también puede extraer fácilmente datos de varios servicios web conocidos. El proyecto afirma estar bien documentado e incluir numerosos ejemplos y pruebas unitarias.

👉 Visitar Pattern

  • NuPIC

Plataforma de inteligencia artificial inspirada en el cerebro y una red neuronal biológicamente precisa basada en algoritmos de aprendizaje cortical; implementa los algoritmos de aprendizaje automático de memoria temporal jerárquica (HTM) . HTM es un intento de modelar el cálculo de la neocorteza, y se centra en almacenar y recordar patrones espaciales y temporales. NuPIC es ideal para la detección de anomalías relacionadas con patrones.

👉 Visitar NuPIC

  • Vowpal Wabbit

Vowpal Wabbit es un sistema de aprendizaje automático que empuja la frontera del aprendizaje automático con técnicas como el aprendizaje en línea, hashing, allreduce, reducciones, learning2search, activo e interactivo, tiene como objetivo el modelado rápido de conjuntos de datos masivos y admite el aprendizaje paralelo. El proyecto se inició en Yahoo! y actualmente se desarrolla en Microsoft Research. Vowpal Wabbit aprovecha el aprendizaje fuera del núcleo y se ha utilizado para aprender un conjunto de datos de características tera en una hora en 1000 nodos de cómputo.

👉 Visitar Vowpal Wabbit

  • AeroSolve

Paquete de aprendizaje automático creado para humanos, aerosolve intenta ser diferente de otras bibliotecas, enfocándose en instalaciones de depuración amigables para los humanos, código Scala para capacitación, un motor de análisis de contenido de imágenes para una clasificación fácil de imágenes y un lenguaje de transformación de características que brinda a los usuarios flexibilidad y control sobre las características. aerosolve implementa una representación de características basada en el ahorro, en la que las características se agrupan lógicamente con el propósito de aplicar transformaciones o facilitar interacciones entre grupos de características completos a la vez.

👉 Visitar Pattern

  • GoLearn

GoLearn es una biblioteca de aprendizaje automático desarrollada activamente para Go. Sus objetivos son proporcionar un paquete totalmente personalizable, fácil de usar y personalizable para los desarrolladores de Go. GoLearn implementa la interfaz familiar (para muchos) de ajuste / predicción de Scikit-learn, facilitando el intercambio de estimadores e implementa “funciones auxiliares” como validación cruzada y división de entrenamiento / prueba.

👉 Visitar Pattern

Librerías y Otros Recursos de Machine Learning

Github se ha convertido en el centro de intercambio de software de facto de código abierto, alberga todo tipo de proyectos imaginables. Dada la creciente adopción del aprendizaje profundo en la universidad, la investigación y para otras practicas, además de su creciente papel en la ciencia de datos, estamos explorando los principales proyectos de aprendizaje profundo disponibles en Github.

  • Caffe

Caffe es una biblioteca de aprendizaje profundo que trabaja con Python y MATLAB. Creada por el Centro de Visión y Aprendizaje de Berkeley, UC Berkeley, uno podría pensar que Caffe es solo para aplicaciones de visión por computadora; es, de hecho, una biblioteca de aprendizaje profundo de propósito general para desplegar redes convolucionales, así como otras arquitecturas, en visión, habla y otras aplicaciones.

👉 Visitar Caffe

  • Cuadernos de Ciencia de Datos: IPython

Esta es una colección de cuadernos IPython creada por Donne Martin. Los temas que tratan las lecciones incluyen: Big Data, Hadoop, Scikit-Learn y la pila científica de Python, así como muchos otros. Con respecto al aprendizaje profundo, se abarcan marcos como TensorFlow, Theano y Caffe, junto con arquitecturas y conceptos particulares.

👉 Visitar Cuadernos IPython

  • ConvNetJS

Escrito por el estudiante de doctorado de Stanford Andrej Karpathy, quien también mantiene un blog muy práctico, ConvNetJS es una implementación de JavaScript de redes neuronales y sus módulos comunes, e incluye numerosos ejemplos basados ​​en el navegador. La documentación y los ejemplos son completos y numerosos, respectivamente. No dejes que la idea de entremezcla JavaScript y las redes neuronales juntas te asuste. Este es un proyecto muy popular del que a buen seguro le podrás sacar partido.

👉 Visitar ConvNetJS

  • Keras

Keras es una biblioteca de aprendizaje profundo de Python que aprovecha TensorFlow y Theano, lo que significa que se puede ejecutar sobre cualquiera de las dos bibliotecas de investigación de aprendizaje profundo más populares que existen actualmente. Es una de las bibliotecas que se podrían describir como bibliotecas de muy alto nivel, las que realizan siempre las mismas pautas: abstraen los motores de aprendizaje profundo subyacentes para lograr implementaciones de redes neuronales más rápidas, más fáciles y más flexibles. Keras admite las principales arquitecturas de aprendizaje profundo, viene con una guía de inicio rápido de 30 segundos y posee una amplia y sólida documentación.

👉 Visitar Keras

  • MXNet

Como un framework de aprendizaje profundo: MXNet, busca la flexibilidad y la eficiencia y permite la combinación de técnicas de programación imperativas y simbólicas para mejorar la productividad. El proyecto incluye enlaces para numerosos idiomas, incluidos Python, R y Julia. MXNet también viene con una variedad de pautas y planos de redes neuronales. También existe otro proyecto relacionado que implementa MXNet en JavaScript para el navegador, y se puede probar un modelo de clasificación de imágenes a través de este enlace.

👉 Visitar MXNet

  • Qix

Este es un repositorio de lo que parecen ser recursos relacionados con una amplia gama de temas de computación y programación, incluidos Node.Js, GoLang y aprendizaje profundo. Digo “parece” porque el repositorio está escrito completamente en chino, y la traducción proporcionada por Google causa aún más confusión. Sin embargo, hay varios enlaces, así que si hablas o puedes leer chino, quizás haya algo de valor escondido allí.

👉 Visitar Qix

  • DeepLearning4j

Deeplearning4j es un Framework de aprendizaje profundo de fuerza industrial para Java y Scala. Como una de las soluciones destacadas de aprendizaje profundo de JVM, Deeplearning4j tiene una ventaja obvia en el espacio. Al integrarse con Hadoop y Spark, Deeplearning4j también tiene la capacidad de aprovechar las GPU. Su documentación y tutoriales también son muy completos.

👉 Visitar DeepLearning4j

  • DeepLearnToolbox

Esta es una caja de herramientas de Machine Learning para MATLAB y Octave. Sin embargo, el proyecto actualmente está en desuso y ya no se mantiene. El repositorio señala a Theano y TensorFlow como alternativas valiosas para aprender el aprendizaje profundo en la actualidad. 👉 Visitar

Podemos destacar por ejemplo, el libro de: Arquitecturas del Aprendizaje Profundo para la Inteligencia Artificial

👉 Visitar DeepLearnToolbox

Otros

  • 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 Educativos de Github sobre Aprendizaje Automático

Tutoriales, artículos y otros recursos de aprendizaje automático y aprendizaje profundo.

Scikit-learn es un módulo de Python para aprendizaje automático creado sobre SciPy y se distribuye bajo la licencia BSD de 3 cláusulas.

El proyecto fue iniciado en 2007 por David Cournapeau como un proyecto Google Summer of Code, y desde entonces muchos voluntarios han contribuido.

Este tutorial fue diseñado para sumergirse fácilmente en TensorFlow, a través de ejemplos. Para facilitar la lectura, incluye tanto portátiles como códigos fuente con explicación, tanto para TF v1 como para v2.

Es adecuado para principiantes que desean encontrar ejemplos claros y concisos sobre TensorFlow. Además de las tradicionales implementaciones TensorFlow ‘en bruto’, también se puede encontrar las últimas prácticas API TensorFlow (como layers, estimator, dataset, …).

100 días de codificación de aprendizaje automático según lo propuesto por Siraj Raval.

Un plan de estudio de varios meses para pasar de desarrollador móvil (autodidacta, sin título de CS) a ingeniero de aprendizaje automático.

El objetivo principal era encontrar un enfoque para estudiar Machine Learning que sea principalmente práctico y resuma la mayoría de las matemáticas para principiantes. Este enfoque no es convencional porque es el enfoque de arriba hacia abajo y primero diseñado para los ingenieros de software.

Por favor, siéntase libre de hacer cualquier contribución que sienta que mejorará.

Un enfoque práctico del aprendizaje automático para que todos puedan aprender, explorar y construir.

Comenzamos con lecciones de aprendizaje automático, pero queremos que todos puedan aprender, explorar y construir continuamente. Utilizar esta plataforma para aprender ML, explorar temas y construir una cartera para mostrar su impacto. Las herramientas para habilitar esto se lanzarán en enero de 2020 y si desea formar parte de la versión bet

  • 📚 Cuadernos ML ilustrativos en TensorFlow 2.0 + Keras.
  • ⚒️ Construya modelos robustos utilizando la API funcional con componentes personalizados
  • 📦 Entrene utilizando bucles simples pero altamente personalizables para crear productos rápidamente
  • Si prefiere Jupyter Notebooks o desea agregar / corregir contenido, consulte el directorio de notebooks.

  • Cuadernos de Aprendizaje Automático

Una serie de cuadernos Jupyter que lo guían a través de los fundamentos del aprendizaje automático y el aprendizaje profundo en python usando Scikit-Learn y TensorFlow.

Este proyecto tiene como objetivo enseñarle los fundamentos del aprendizaje automático en python. Contiene el código de ejemplo y las soluciones a los ejercicios en mi libro de O’Reilly Aprendizaje automático práctico con Scikit-Learn y TensorFlow.

Aprendizaje automático desde cero. Desnudos implementaciones NumPy de modelos y algoritmos de aprendizaje automático con un enfoque en la accesibilidad. Tiene como objetivo cubrir todo, desde la regresión lineal hasta el aprendizaje profundo.

Implementaciones de Python de algunos de los modelos y algoritmos fundamentales de Machine Learning desde cero.

El propósito de este proyecto no es producir algoritmos tan optimizados y computacionalmente eficientes como sea posible, sino más bien presentar el funcionamiento interno de ellos de una manera transparente y accesible.

Listas Impresionantes de Recursos sobre Machine Learning

Una lista curada de increíbles tutoriales, proyectos y comunidades de Deep Learning con más de 300 enlaces.

  • Conferencias sobre Aprendizaje Automático - Papers with Code \ Ordenadas por años: 2018, 2017, 2016, 2015, 2014, 2013

Papeles con Código, es un proyecto en el que se recopilan todas las conferencias sobre Machine Learning / Aprendizaje Automático que se realizan, junto al repositorio de la librería de la que se habla y comenta su utilización y uso.

Las Conferencias que se incluyen son: Conferencia sobre sistemas de procesamiento de información neural , Conferencia sobre reconocimiento de patrones y visión por computadora , Conferencia Europea sobre Visión por Computador y la Conferencia internacional sobre aprendizaje automático.

Otros Proyectos Github de Aprendizaje Automático

  • Progreso de PNL *

Repositorio para rastrear el progreso en el procesamiento del lenguaje natural (PNL), incluidos los conjuntos de datos y el estado actual de la técnica para las tareas de PNL más comunes.

  • Clasificación de Oraciones *

Guía de PNL basada en ML. A través de la que se identifica si una oración es una pregunta, declaración o comando; usando redes neuronales.

🎓 Cursos Machine Learning 🐍

🐍 CONTINUARÁ.. 🐍

🐍 Aprender Python 🐍 🐍 Recursos Python 🐍 🐍 Noticias Python 🐍


Fuentes:

Deja un comentario