En una palabra : si tiene pasión por hacer (aprender desde cero), nada (experiencia laboral actual no relacionada) lo detendrá.
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. Dicho esto, una cosa es interesarse en el Aprendizaje automático, otra cosa es comenzar a trabajar en el campo.
Para comenzar, hay dos cosas muy importantes que debes entender si estás considerando una carrera como ingeniero de Machine Learning. Primero, no es un rol académico “puro”. No necesariamente tiene que tener una investigación o antecedentes académicos. En segundo lugar, no es suficiente tener experiencia en ingeniería de software o ciencia de datos. Lo ideal es que necesites ambos.
- ¿Cuáles son las cualidades de un buen desarrollador de software?
- ¿Cuántas matemáticas tienes que saber para llegar tan lejos como quieras en el desarrollo web?
- ¿Necesitas aprender código para convertirte en un hacker de crecimiento?
- ¿Debería tener doble especialización en Ciencias de la Computación y Finanzas, o Ciencias de la Computación y Economía? ¿Qué tipo de oportunidades profesionales hay para cada combinación? Me gustaría trabajar en Wall Street, pero también me gustaría trabajar en la costa oeste.
- ¿Qué es mejor, un BTech en informática o un BSC en informática, y por qué?
También es fundamental comprender las diferencias entre un analista de datos y un ingeniero de aprendizaje automático. En la forma más simple, la distinción clave tiene que ver con el objetivo final. Como analista de datos, está analizando datos para contar una historia y producir ideas procesables.
Como ingeniero de Machine Learning, por otro lado, su “salida” final es software de trabajo (no los análisis o visualizaciones que puede tener que crear en el camino), y su “audiencia” para esta salida a menudo consiste en otros componentes de software que funcionan de forma autónoma con una mínima supervisión humana.
Ser ingeniero de Machine Learning requiere comprender todo el ecosistema para el que está diseñando. Ahora, entremos en los detalles reales de lo que se necesita para ser un ingeniero de Machine Learning. Si dividimos esto en dos secciones principales: Resumen de habilidades, idiomas y bibliotecas.
Habilidades principales necesarias:
- Fundamentos y programación de la informática : 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 NP-completos, notación big-O, algoritmos aproximados, etc.) y arquitectura de la computadora (memoria, caché, ancho de banda, puntos muertos, procesamiento distribuido, etc.).
- 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 ocultos de Markov, etc.) están en el corazón de muchas máquinas Algoritmos de aprendizaje.
- 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.
- Aplicación de algoritmos y bibliotecas de aprendizaje automático: las implementaciones estándar de algoritmos de aprendizaje automático están ampliamente disponibles a través de bibliotecas / paquetes / API (por ejemplo, scikit-learn, Theano, Spark MLlib, H2O, TensorFlow, Caffe, Torch, etc.), pero aplicarlas de manera efectiva implica elegir un modelo adecuado (árbol de decisión, vecino más cercano, red neuronal, 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 otro modelo -específicos), así como comprender cómo los hiperparámetros afectan el aprendizaje. También debe tener en cuenta 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.
- 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.
Los trabajos relacionados con el aprendizaje automático están creciendo rápidamente a medida que las empresas intentan aprovechar al máximo las tecnologías emergentes. La tabla a continuación muestra la importancia relativa de las habilidades básicas para estos tipos generales de roles, con un rol típico de Analista de datos para la comparación.
El mundo está cambiando indudablemente de manera rápida y dramática, y la demanda de ingenieros de Machine Learning seguirá aumentando exponencialmente. Los desafíos del mundo son complejos y requerirán sistemas complejos para resolverlos. Los ingenieros de Machine Learning están construyendo estos sistemas. Si este es SU futuro, entonces no hay tiempo como el presente para comenzar a dominar las habilidades y desarrollar la mentalidad que necesitará para tener éxito.
Buena suerte.