No estas solo mi amigo. Cada día más personas se interesan en el aprendizaje automático. De hecho, sería difícil encontrar un campo que genere más expectación en estos días que este, una cosa está clara: el aprendizaje automático ha llegado.
Antes de entrar en habilidades específicas, hay un concepto más que abordar. Ser ingeniero de Machine Learning requiere comprender todo el ecosistema para el que está diseñando. Comprenda el ecosistema (de lo que sea que esté trabajando) y necesitaría estas habilidades para conseguir un trabajo.
Resumen de habilidades
- ¿Cómo se relaciona la minería de datos con la inteligencia artificial?
- ¿Cuál es el equilibrio entre técnica e intuición para un científico de datos exitoso?
- ¿Cómo exactamente Andy Hildebrand transformó su experiencia en datos sísmicos en autoajuste?
- ¿Existe alguna mejor práctica o técnica para modelar bases de datos / conjuntos de datos para big data y / o aprendizaje automático?
- ¿Qué tecnologías tienen buen futuro en el departamento de ciencia de datos?
1. Fundamentos y programación de ciencias de la computación (TRABAJAR TODOS LOS DÍAS)
Los fundamentos informáticos importantes para los ingenieros de Machine Learning incluyen estructuras de datos (pilas, colas, matrices multidimensionales, árboles, gráficos, etc.), algoritmos (búsqueda, clasificación, optimización, programación dinámica, etc.), computabilidad y complejidad (P vs NP, problemas de NP completo, notación big-O, algoritmos aproximados, etc.) y arquitectura de la computadora (memoria, caché, ancho de banda, puntos muertos, procesamiento distribuido, etc.).
Debe poder aplicarlos, implementarlos, adaptarlos o abordarlos (según corresponda) al programar. Los problemas de práctica, las competencias de codificación y los hackatones son una excelente manera de perfeccionar tus habilidades.
2. Probabilidad y estadística
Una caracterización formal de la probabilidad (probabilidad condicional, regla de Bayes, probabilidad, independencia, etc.) y las técnicas derivadas de ella (redes de Bayes, procesos de decisión de Markov, modelos de Markov ocultos, etc.) están en el corazón de muchos algoritmos de Machine Learning; Estos son un medio para hacer frente a la incertidumbre en el mundo real. Estrechamente relacionado con esto está el campo de la estadística, que proporciona varias medidas (media, mediana, varianza, etc.), distribuciones (uniforme, normal, binomial, Poisson, etc.) y métodos de análisis (ANOVA, prueba de hipótesis, etc.) que son necesarios para construir y validar modelos a partir de datos observados. Muchos algoritmos de Machine Learning son esencialmente extensiones de procedimientos de modelado estadístico.
3. Modelado y evaluación de datos
El modelado de datos es el proceso de estimar la estructura subyacente de un conjunto de datos dado, con el objetivo de encontrar patrones útiles (correlaciones, grupos, vectores propios, etc.) y / o predecir propiedades de instancias nunca antes vistas (clasificación, regresión, detección de anomalías, etc. .). Una parte clave de este proceso de estimación es evaluar continuamente qué tan bueno es un modelo dado. Dependiendo de la tarea en cuestión, deberá elegir una medida de precisión / error adecuada (por ejemplo, pérdida de registro para la clasificación, suma de errores al cuadrado para regresión, etc.) y una estrategia de evaluación (división de prueba de entrenamiento, secuencial vs. validación cruzada aleatoria, etc.). Los algoritmos de aprendizaje iterativo a menudo utilizan directamente los errores resultantes para modificar el modelo (por ejemplo, la propagación hacia atrás para redes neuronales), por lo que comprender estas medidas es muy importante incluso para la aplicación de algoritmos estándar.
4. Aplicación de algoritmos y bibliotecas de aprendizaje automático
Las implementaciones estándar de los algoritmos de Machine Learning están ampliamente disponibles a través de bibliotecas / paquetes / API (por ejemplo, scikit-learn, Theano, Spark MLlib, H2O, TensorFlow, etc.), pero aplicarlos de manera efectiva implica elegir un modelo adecuado (árbol de decisión, vecino más cercano, neuronal net, máquina de vectores de soporte, conjunto de modelos múltiples, etc.), un procedimiento de aprendizaje para ajustar los datos (regresión lineal, descenso de gradiente, algoritmos genéticos, embolsado, refuerzo y otros métodos específicos del modelo), así como comprender cómo los hiperparámetros afectar el aprendizaje También debe ser consciente de las ventajas y desventajas relativas de los diferentes enfoques, y las numerosas trampas que pueden hacer que se tropiece (sesgo y varianza, sobreajuste y falta de ajuste, datos faltantes, pérdida de datos, etc.) Los desafíos de la ciencia de datos y el aprendizaje automático, como los de Kaggle, son una excelente manera de exponerse a diferentes tipos de problemas y sus matices.
5. Ingeniería de software y diseño de sistemas
Al final del día, la salida o entrega típica de un ingeniero de Machine Learning es software. Y a menudo es un componente pequeño que encaja en un ecosistema más grande de productos y servicios. Debe comprender cómo funcionan estas diferentes piezas, comunicarse con ellas (mediante llamadas a la biblioteca, API REST, consultas de bases de datos, etc.) y crear interfaces apropiadas para su componente de las que dependerán otros. Puede ser necesario un diseño cuidadoso del sistema para evitar cuellos de botella y permitir que sus algoritmos se escalen bien con el aumento de los volúmenes de datos. Las mejores prácticas de ingeniería de software (incluidos el análisis de requisitos, el diseño del sistema, la modularidad, el control de versiones, las pruebas, la documentación, etc.) son invaluables para la productividad, la colaboración, la calidad y el mantenimiento.
No se trata de obtener un trabajo después de una finalización sucesiva, por supuesto, puede obtener un trabajo en ML incluso en 6 meses o menos. Lo que los empleadores ven en un perfil de candidato es su conjunto de habilidades y qué tan bien lo usa para avanzar en la carga de trabajo. 🙂