Ruta de aprendizaje de arriba hacia abajo: aprendizaje automático para ingenieros de software
Inspirado en Coding Interview University.
Traducciones: portugués brasileño | 中文版本 | Francés | 臺灣華語版本
Cómo yo (Nam Vu) planeo convertirme en ingeniero de aprendizaje automático
¿Qué es?
Este es mi plan de estudio de varios meses para pasar de desarrollador móvil (autodidacta, sin título en informática) a ingeniero de aprendizaje automático.
Mi objetivo principal era encontrar un enfoque para estudiar el aprendizaje automático que sea principalmente práctico y resuma la mayor parte de las matemáticas para principiantes. Este enfoque no es convencional porque es de arriba hacia abajo y primero los resultados, diseñado para ingenieros de software.
Por favor, siéntase libre de hacer cualquier contribución que crea que lo mejorará.
Tabla de contenido
- ¿Qué es?
- ¿Por qué usarlo?
- como usarlo
- Sígueme
- No sientas que no eres lo suficientemente inteligente
- Acerca de los recursos de vídeo
- Conocimiento previo
- El plan diario
- Motivación
- Descripción general del aprendizaje automático
- Dominio del aprendizaje automático
- El aprendizaje automático es divertido
- Aprendizaje automático de tinta
- Aprendizaje automático: una guía detallada
- Historias y experiencias
- Algoritmos de aprendizaje automático
- Libros para principiantes
- Libros prácticos
- Concursos de conocimientos de Kaggle
- Serie de vídeos
- MOOC
- Recursos
- Convertirse en colaborador de código abierto
- Juegos
- Pódcasts
- Comunidades
- Conferencias
- Preguntas de la entrevista
- Mis empresas admiradas
¿Por qué usarlo?
Estoy siguiendo este plan para prepararme para mi trabajo en el futuro cercano: ingeniero de aprendizaje automático. He estado creando aplicaciones móviles nativas (Android/iOS/Blackberry) desde 2011. Tengo una licenciatura en Ingeniería de Software, no en Ciencias de la Computación. Tengo una cantidad mínima de conocimientos básicos sobre: Cálculo, Álgebra Lineal, Matemática Discreta, Probabilidad y Estadística de la universidad. Piense en mi interés en el aprendizaje automático:
- ¿Puedo aprender y conseguir un trabajo en Machine Learning sin estudiar CS Master y PhD?
- "Se puede, pero es mucho más difícil que cuando entré al campo". Drac Smith
- ¿Cómo consigo un trabajo en Machine Learning como programador de software que estudia por su cuenta Machine Learning, pero nunca tiene la oportunidad de usarlo en el trabajo?
- "Estoy contratando expertos en aprendizaje automático para mi equipo y su MOOC no le dará el trabajo (hay mejores noticias a continuación). De hecho, muchas personas con una maestría en aprendizaje automático no conseguirán el trabajo porque ellos (y la mayoría de los que He tomado MOOC) no tengo un conocimiento profundo que me ayude a resolver mis problemas". Ross C.Taylor
- ¿Qué habilidades se necesitan para los trabajos de aprendizaje automático?
- "En primer lugar, es necesario tener una experiencia decente en informática y matemáticas. El aprendizaje automático es un tema avanzado, por lo que la mayoría de los libros de texto asumen que tienes esa experiencia. En segundo lugar, el aprendizaje automático es un tema muy general con muchas subespecialidades que requieren habilidades únicas. Es posible que desees para explorar el plan de estudios de un programa de maestría en aprendizaje automático para ver el curso, el plan de estudios y el libro de texto." uri
- "Probabilidad, Computación Distribuida y Estadística". Hortensia
Me encuentro en tiempos de problemas.
AFAIK, el aprendizaje automático tiene dos caras:
- Aprendizaje automático práctico: se trata de consultar bases de datos, limpiar datos, escribir scripts para transformar datos y unir algoritmos y bibliotecas y escribir código personalizado para extraer respuestas confiables de los datos para satisfacer preguntas difíciles y mal definidas. Es el desorden de la realidad.
- Aprendizaje automático teórico: se trata de matemáticas, abstracción, escenarios idealizados, límites, belleza y de informar lo que es posible. Es mucho más ordenado, limpio y alejado del desorden de la realidad.
Creo que la mejor manera de aplicar una metodología centrada en la práctica es algo así como 'práctica - aprendizaje - práctica', es decir, que los estudiantes primero presenten algunos proyectos existentes con problemas y soluciones (práctica) para familiarizarse con los métodos tradicionales en el área y tal vez también con su metodología. Después de practicar con algunas experiencias elementales, pueden consultar los libros y estudiar la teoría subyacente, que sirve para guiar su práctica avanzada futura y mejorará su caja de herramientas para resolver problemas prácticos. Estudiar teoría también mejora aún más su comprensión de las experiencias elementales y les ayudará a adquirir experiencias avanzadas más rápidamente.
Es un plan largo. Me va a llevar años. Si ya está familiarizado con gran parte de esto, le llevará mucho menos tiempo.
como usarlo
Todo lo que aparece a continuación es un esquema y debes abordar los elementos en orden de arriba a abajo.
Estoy usando el sabor especial de rebajas de Github, que incluye listas de tareas para comprobar el progreso.
Más sobre las rebajas con sabor a Github
Sígueme
Soy un ingeniero de software vietnamita muy apasionado y quiere trabajar en los EE. UU.
¿Cuánto trabajé durante este plan? Aproximadamente 4 horas por noche después de un largo y duro día de trabajo.
Estoy en el viaje.
|
---|
Estados Unidos como diablos |
No sientas que no eres lo suficientemente inteligente
Me desaniman los libros y cursos que, tan pronto como los abro, me dicen que el cálculo multivariado, la estadística inferencial y el álgebra lineal son requisitos previos. Todavía no sé cómo empezar...
- ¿Qué pasa si no soy bueno en matemáticas?
- 5 técnicas para comprender los algoritmos de aprendizaje automático sin experiencia en matemáticas
- ¿Cómo aprendo el aprendizaje automático?
Acerca de los recursos de vídeo
Algunos videos están disponibles solo al inscribirse en una clase de Coursera o EdX. Es gratis hacerlo, pero a veces las clases ya no están en sesión y tienes que esperar un par de meses, por lo que no tienes acceso. Agregaré más videos de fuentes públicas y reemplazaré los videos del curso en línea con el tiempo. Me gusta utilizar las conferencias universitarias.
Conocimiento previo
Esta breve sección consta de requisitos previos/información interesante que quería aprender antes de comenzar con el plan diario.
El plan diario
Cada tema no requiere un día entero para poder comprenderlo completamente y puedes realizar varios de ellos en un día.
Cada día tomo un tema de la lista a continuación, lo leo de principio a fin, tomo notas, hago los ejercicios y escribo una implementación en Python o R.
Motivación
Descripción general del aprendizaje automático
Dominio del aprendizaje automático
El aprendizaje automático es divertido
Aprendizaje automático de tinta
Aprendizaje automático: una guía detallada
Historias y experiencias
Algoritmos de aprendizaje automático
Libros para principiantes
Libros prácticos
Concursos de conocimientos de Kaggle
Serie de vídeos
MOOC
Recursos
Juegos
- Halite: juego de codificación de IA
- Vindinium: desafío de programación de IA
- Concurso general de IA de videojuegos
- Concurso de IA de Angry Birds
- Los juegos de IA
- Competencia de IA de juegos de lucha
- Copa de código
- Torneo de IA para estudiantes de StarCraft
- Concurso AIIDE StarCraft de IA
- Concurso de IA CIG StarCraft
- CodinGame - Juegos de robots de IA
Convertirse en colaborador de código abierto
Pódcasts
Pódcasts para principiantes:
- Máquinas parlantes
- Digresiones lineales
- Escéptico de los datos
- Esta semana en aprendizaje automático e inteligencia artificial
- Guía de aprendizaje automático
Entrevistas con profesionales, investigadores y Kagglers de ML sobre su trayectoria
- Chai Time Ciencia de datos, audio, reseñas
- Aprendizaje automático para principiantes: entrevistas, audio
"Más" podcasts avanzados
- Parcialmente Derivado
- Muestra de datos de O'Reilly
- Desviación no tan estándar
Podcasts para pensar fuera de lo común:
Comunidades
Conferencias
- Sistemas de procesamiento de información neuronal (NIPS)
- Conferencia Internacional sobre Representaciones del Aprendizaje (ICLR)
- Asociación para el Avance de la Inteligencia Artificial (AAAI)
- Conferencia IEEE sobre inteligencia computacional y juegos (CIG)
- Conferencia internacional IEEE sobre aplicaciones y aprendizaje automático (ICMLA)
- Conferencia internacional sobre aprendizaje automático (ICML)
- Conferencias Internacionales Conjuntas sobre Inteligencia Artificial (IJCAI)
- Asociación de Lingüística Computacional (ACL)
Preguntas de la entrevista
Mis empresas admiradas