Eres desarrollador y estás interesado en entrar en el aprendizaje automático. ¿Y por qué no? Es un tema candente en este momento, y es un campo fascinante y de rápido crecimiento.
Has leído algunas publicaciones de blog. Intentaste profundizar pero los libros son espantosos. Matemáticas enfocadas. Teoría enfocada. Algoritmo enfocado.
- ¿Qué libros de arquitectura y diseño de software recomienda Regunath Balasubramanian para un ingeniero de software de nivel medio?
- ¿Cuál es el motor de juegos 3D de código abierto más avanzado?
- ¿Qué conocimientos básicos de código y programación debo tener si quiero obtener un título en CS?
- ¿Qué es mejor para descargar: CNET o Softonic? ¿Y por qué?
- ¿Cómo es trabajar en Rackspace como ingeniero de software?
¿Suena familiar? ¿Has probado libros, MOOCs, publicaciones de blog y todavía no sabes cómo comenzar a aprender sobre máquinas?
Intenta algunos cursos de video. Usted se registra y hace un intento honesto en el MOOC de Courrsera Stanford Machine Learning que se cita con frecuencia. No es mucho mejor que los libros y las publicaciones detalladas del blog. No puede ver de qué se trata todo este alboroto, por qué se recomienda a los principiantes.
Es posible que incluso haya intentado algunos conjuntos de datos pequeños, tal vez una competencia de Kaggle de nivel de entrada.
El problema es que no puedes conectar la teoría, los algoritmos y las matemáticas de los libros y cursos al problema. Hay una gran brecha. Un golfo ¿Cómo se supone que debes comenzar con el aprendizaje automático?
Ingeniero de Machine Learning
Cuando piensa en el futuro, una vez que haya captado esta comprensión evasiva del aprendizaje automático, ¿cómo es su trabajo? ¿Cómo estás usando tus nuevas habilidades de aprendizaje automático en tu día a día?
Creo que puedo verlo. Eres un ingeniero de aprendizaje automático. Eres un desarrollador que sabe cómo “hacer” aprendizaje automático.
¿Desea pasar de desarrollador a desarrollador que puede hacer aprendizaje automático?
Escenario 1: el modelo único
Tu jefe se acerca y dice:
Oye, sabes el aprendizaje automático, ¿verdad? ¿Puede usar los datos del cliente del año pasado para predecir qué clientes actuales en nuestra cartera de ventas probablemente convertirán? Quiero usarlo en una presentación ante la junta la próxima semana …
Yo llamo a esto el modelo único.
El problema está bien definido por tu jefe. Ella le da los datos, que son lo suficientemente pequeños como para verlos y comprenderlos en MS Excel si fuera necesario. Ella quiere predicciones precisas y confiables.
Puedes entregar. Y lo más importante, puede explicar todas las advertencias relevantes sobre los resultados.
Escenario 2: el modelo incrustado
Usted y su equipo están recopilando requisitos de las partes interesadas en un proyecto de software. Hay un requisito para que el usuario pueda dibujar formas a mano alzada en el software, y para que el software descubra qué forma es y la convierta en una versión clara e inequívoca y la etiquete adecuadamente.
Rápidamente se da cuenta de que la mejor manera (¿y solo viable?) De resolver este problema es idear y capacitar un modelo predictivo e incrustarlo en su producto de software.
Yo llamo a esto el modelo incrustado. Existen variaciones (como si el modelo es estático o actualizado, y si es local o se llama de forma remota a través de una API), pero eso es solo un detalle.
La clave en este escenario es que tiene la experiencia para notar un problema que se resuelve mejor con un modelo predictivo y las habilidades para idearlo, entrenarlo y desplegarlo.
Escenario 3: el modelo profundo
Ha comenzado un nuevo trabajo y el sistema en el que está trabajando se compone de al menos un modelo predictivo. El mantenimiento y la adición de funciones a este sistema requieren una comprensión del modelo, sus entradas y sus salidas. La precisión del modelo es una característica del producto de software y parte de su trabajo será mejorarlo.
Por ejemplo, como parte de las pruebas regulares del sistema de prelanzamiento, debe demostrar que la precisión del modelo (cuando se valida en datos históricos) tiene la misma o mejor habilidad que la versión anterior.
Yo llamo a esto el modelo profundo. Se espera que desarrolle una comprensión profunda de un modelo predictivo específico y use su experiencia y habilidad para mejorar y verificar su precisión como parte de sus tareas rutinarias.
El desarrollador que “ hace ” aprendizaje automático
Estos escenarios le dan una idea de lo que es ser un desarrollador que sabe cómo hacer aprendizaje automático. Son realistas porque son todas variaciones en escenarios en los que he estado o tareas que he tenido que completar.
Los tres escenarios dejan una cosa muy clara. Aunque el aprendizaje automático es un área fascinante, para un desarrollador, los algoritmos de aprendizaje automático son solo otra bolsa de trucos, como la programación de subprocesos múltiples o gráficos en 3D. Sin embargo, son un poderoso grupo de métodos que son absolutamente necesarios para una clase específica de problema.