Hay muchas cosas que puedes hacer para aprender sobre el aprendizaje automático. Hay recursos como libros y cursos que puede seguir, concursos que puede participar y herramientas que puede usar. En este post, quiero estructurar estas actividades y sugerir un orden suelto de qué abordar en su viaje del programador al maestro del aprendizaje automático.
Cuatro niveles de aprendizaje automático
Considere cuatro niveles de competencia en el aprendizaje automático. Este es un modelo que nos ayuda a pensar sobre los recursos y las actividades disponibles y cuándo puede ser un buen momento para abordarlos.
- Principiante
- Principiante
- Intermedio
- Avanzado
Quiero separar principiante de novato aquí porque quiero mostrar que un principiante absoluto (un programador con interés en el campo) tiene un camino delante de ellos si lo desean.
Vamos a recorrer cada uno de estos cuatro niveles y veremos recursos y actividades que pueden ayudar a alguien en un nivel a aprender más y progresar en su comprensión y niveles de habilidad.
El desglose es solo una sugerencia, y es muy probable que alguna actividad o recurso a un nivel anterior o posterior pueda ser muy útil y apropiado a un nivel determinado en el desglose.
Creo que la estructura general es útil, estoy ansioso por escuchar lo que piensas, deja un comentario a continuación con tus pensamientos.
Principiante
Un principiante es un programador interesado en el aprendizaje automático. Es posible que hayan comenzado a leer un libro, una página de Wikipedia o que hayan tomado algunas lecciones en un curso, pero que en realidad todavía no lo ” entienden “. Están frustrados porque los consejos que reciben son para niveles intermedios y avanzados.
Los principiantes necesitan una introducción suave. Lejos de códigos y libros de texto y cursos. Necesitan los por qué y qué y cómo se señala primero para sentar las bases del material para principiantes.
Algunas actividades y recursos para el principiante absoluto son:
- ¿Qué pasa si un niño nunca fue sometido a un sistema escolar y aprendió todo por su propia curiosidad?
- ¿Cuáles son tus plataformas favoritas para el aprendizaje en línea o la educación continua después de la universidad?
- ¿En qué debo especializarme si no me apasiona ningún tema? Soy fuerte académicamente, pero no estoy muy interesado en ningún campo, desafortunadamente.
- Cómo aprender mejor lo que me gusta y lo que no.
- ¿Cuáles son algunas cosas que debo hacer / aprender / saber antes de cumplir los 23 años?
- Introducción a los libros : lea las introducciones a los buenos libros de aprendizaje automático y de minería de datos para programadores, como Aprendizaje automático para hackers (enlace de afiliados), Inteligencia de programación (enlace de afiliados) y Minería de datos: herramientas y técnicas prácticas de aprendizaje automático (enlace de afiliados). Estos son excelentes libros para principiantes, un tema sobre el que puede leer más en la publicación Best Best Learning Resources for Getting Started.
- Videos de información general : vea las presentaciones que brindan una visión general del aprendizaje automático para audiencias de personas mayores. Algunos ejemplos incluyen: Entrevista con Tom Mitchelland Peter Norvig en Facebook Tech Talk de big data.
Principiante
Un novato ha tenido algún contacto con el campo del Aprendizaje Automático. Han leído un libro o han tomado un curso. Ellos saben que están interesados y quieren saber más. Están empezando a conseguirlo y quieren comenzar a hacer las cosas.
Los novatos necesitan algo que hacer. Deben ponerse en acción para que el material esté conectado a tierra e integrado en las estructuras de conocimiento existentes, como los lenguajes de programación que conocen o los problemas a los que están acostumbrados a resolver.
Algunas actividades y recursos para el novato son:
- Complete un curso : tome y complete un curso como el curso de Aprendizaje a máquina de Stanford. Tome muchas notas, complete la tarea si es posible, haga muchas preguntas.
- Lea algunos libros : no libros de texto, sino libros amigables como los que se enumeran más arriba, dirigidos a programadores principiantes.
- Aprenda una herramienta : Aprenda a manejar una herramienta o biblioteca como Scikit-Learn, WEKA, R o similar. Específicamente, aprenda cómo usar un algoritmo que haya leído o aprendido en un libro o curso. Míralo en acción y acostúmbrate a probar cosas a medida que las aprendas.
- Escriba un código : implemente un algoritmo más simple como un perceptrón, un vecino más cercano a k o una regresión lineal. Escriba pequeños programas para desmitificar los métodos y aprender todas las microdecisiones necesarias para que funcione.
- Completa los tutoriales : sigue y completa los tutoriales. Comience a crear un directorio de pequeños proyectos que haya completado con conjuntos de datos, scripts e incluso código fuente que pueda mirar, leer y reflexionar.
Intermedio
Un novato ha leído algunos libros y completado algunos cursos. Saben cómo manejar algunas herramientas y han escrito un montón de código implementando algoritmos simples y completando tutoriales. Un intermediario se está rompiendo por su cuenta, diseñando sus propios proyectos para aprender nuevas técnicas e interactuar y aprender de la comunidad en general.
El intermedio es aprender a implementar y manejar algoritmos de manera precisa, competente y robusta. También están desarrollando las habilidades de pasar mucho tiempo con datos al principio, limpiando, resumiendo y pensando en los tipos de preguntas que puede responder.
Algunas actividades y recursos para el intermedio son:
- Proyectos pequeños : Diseñe pequeños proyectos de programación y experimentos en los que el aprendizaje automático pueda usarse para resolver un problema. Esto es como diseñar y ejecutar sus propios tutoriales para explorar una técnica en la que está interesado. Puede implementar un algoritmo o un enlace a una biblioteca que proporcione el algoritmo. Aprende más sobre pequeños proyectos.
- Análisis de datos : acostúmbrese a explorar y resumir conjuntos de datos. Automatice los informes, sepa qué herramientas usar cuándo, y busque datos que pueda explorar, limpiar y en los que pueda practicar técnicas y comunicar algo interesante.
- Leer libros de texto : leer e internalizar libros de texto sobre aprendizaje automático. Esto puede muy bien requerir habilidades para asimilar descripciones matemáticas de técnicas y reconocer formalismos que describen clases de problemas y algoritmos.
- Escribir complementos : escriba complementos y paquetes para bibliotecas y plataformas de aprendizaje automático de código abierto. Este es un ejercicio para aprender a escribir implementaciones de algoritmos robustos y de nivel de producción. Use sus propios complementos en proyectos, solicite revisiones de código de la comunidad y trabaje para incluir el código en la plataforma si es posible. Obtener retroalimentación y aprendizaje es el objetivo.
- Competiciones : participe en competiciones de aprendizaje automático, como las relacionadas con conferencias u ofrecidas en plataformas como Kaggle. Participe en discusiones, haga preguntas, aprenda cómo otros profesionales están abordando el problema. Agregue a su repositorio de proyectos, métodos y código desde donde puede dibujar.
Avanzado
Un profesional avanzado ha escrito una gran cantidad de código que integra algoritmos de aprendizaje automático o implementa algoritmos ellos mismos. Pueden haber competido en competiciones o en plugins escritos. Han leído los libros de texto, han completado los cursos y tienen un amplio conocimiento del campo, así como un profundo conocimiento de algunas técnicas clave de las que prefieren.
El profesional avanzado construye, implementa y mantiene sistemas de producción que utilizan el aprendizaje automático. Se mantienen al tanto de los nuevos desarrollos en los campos y buscan y aprenden con entusiasmo los matices de un método y consejos transmitidos por otros practicantes de primera línea como ellos.
Algunas actividades y recursos para el profesional avanzado son:
- Personalización de algoritmos : modifique los algoritmos para satisfacer sus necesidades, lo que puede implicar la implementación de personalizaciones descritas en documentos de conferencias y diarios para dominios de problemas similares.
- Nuevos algoritmos : Diseñar métodos completamente nuevos basados en los formalismos subyacentes para enfrentar los desafíos que enfrentan. Se trata más de obtener los mejores resultados posibles en lugar de avanzar en la frontera del campo.
- Estudios de caso : lea e incluso vuelva a crear estudios de caso completados para competiciones de aprendizaje automático y por otros profesionales. Estos artículos y publicaciones de “cómo lo hice” suelen estar repletos de consejos profesionales sutiles para la preparación de datos, la ingeniería de características y el uso de técnicas.
- Metodología : Sistematización de procesos, ya sea formalmente o por sí mismos. Tienen una manera de abordar los problemas y obtener resultados en este punto y están buscando activamente formas de perfeccionar y mejorar ese proceso con consejos, mejores prácticas y nuevas y mejores técnicas.
- Investigación : Asistir a conferencias, leer trabajos de investigación y monografías, tener conversaciones con expertos en el campo. Pueden escribir parte de su trabajo y enviarlo para publicación, o simplemente dejarlo en una publicación de blog y volver al trabajo.