No es necesario aprender Machine Learning

Aprenda a crear software utilizando modelos de aprendizaje automático


imagen

Descargo de responsabilidad: este artículo se basa únicamente en mis observaciones de los equipos de desarrollo en el campo del aprendizaje automático y no es el resultado de una revisión científica de la industria. Como referencia, estoy ayudando a desarrollar Cortex , una plataforma de código abierto para lanzar modelos en producción.

Si eres desarrollador, al menos tienes un interés pasajero en el aprendizaje automático. El concepto de un algoritmo que los estudiantes aprenden a hacer predicciones más tarde es simplemente ... genial.

Sin embargo, si decide comenzar a estudiar ML siguiendo todos los cánones, es probable que después de dos semanas de álgebra lineal y análisis multivariado, abandone esta lección.

La razón radica en el hecho de que la mayoría de los materiales introductorios sobre ML se centran no en los desarrolladores, sino en los investigadores, lo cual es un problema para los desarrolladores que simplemente desean crear productos de aprendizaje automático.

¿Quieres crear productos o investigar?


Hasta finales de la década de 2000, el aprendizaje automático era casi exclusivamente un problema de investigación. Simplemente no había muchas compañías que realmente usarían el aprendizaje automático en la producción.

Por lo tanto, muchos de los materiales de familiaridad disponibles en el aprendizaje automático se basan en un enfoque de investigación. Todo comienza con una explicación de las redes neuronales desde un punto de vista matemático, y la teoría subyacente al aprendizaje automático. Se dan cosas, como el método de propagación hacia atrás y las redes de confrontación.

Incluso los materiales no relacionados con la universidad siguen en cierta medida este patrón. Por ejemplo, esto se toma directamente de la biblioteca de "Inicio rápido para principiantes" de TensorFlow:

imagen

Si cree que estoy actuando selectivamente, le sugiero que lea lo siguiente .

Si ya está familiarizado con el aprendizaje automático subyacente de las matemáticas, o le gusta estudiarlo, este enfoque es adecuado para usted. Sin embargo, si está interesado principalmente en crear cosas con el aprendizaje automático, lo más probable es que esto no sea exactamente lo que está buscando.

Usar la programación como una adición a las matemáticas es lo mismo que aprender a escribir código aprendiendo primero el ensamblador. Ningún desarrollador estudiará así.

Nota: Si de alguna manera aprendió a codificar en lenguaje ensamblador, admito todos los comentarios malvados a mi lado, y estoy impresionado de que haya encontrado un navegador en su distribución Linux indistinta.

Cuando aprendió a codificar, lo más probable es que lo haya escrito escribiendo "hola mundo" en un lenguaje de alto nivel. Luego, a medida que los proyectos se volvieron más complejos, comenzó a estudiar programación de bajo nivel.

Este modelo de capacitación es exitoso entre las personas que crean software porque establece claramente prioridades cuando se trabaja en un proyecto. Si está más interesado en crear un sistema de recomendaciones que en publicar un artículo, así es como debe abordar el estudio del aprendizaje automático.

Cómo aprender ML creando software


Si usted es el tipo de persona que aprende mejor a través de los cursos, entonces el mejor recurso para promover este enfoque de arriba hacia abajo para aprender a trabajar con ML es el curso en fast.ai Aprendizaje profundo práctico para programadores .

El propósito del artículo no es publicitar fast.ai en absoluto, pero vale la pena señalar que los fundadores de la plataforma (Jeremy Howard y Rachel Thomas) han reunido varios cursos para desarrolladores con capacitación profunda, que literalmente obligan a crear cosas, profundizando en la teoría principal, ya que directamente conectado con el proyecto. Para comprender mejor su estilo de aprendizaje, mire un video de Rachel Thomas.



Por otro lado, si pertenece al tipo de personas que mejor estudian al sumergirse y crear cosas por su cuenta, entonces puede comenzar a dominar el aprendizaje automático como en cualquier otro campo de programación. Simplemente elija un proyecto que le interese. He preparado una lista gigante de proyectos de procesamiento de lenguaje natural para principiantes . Elija.

Para comprender mejor qué es crear software con ML (si sigue este camino):

  1. Definir un objetivo, por ejemplo, crear autocompletar para un campo de texto o identificador de matrícula.
  2. Encuentre un modelo preparado previamente adecuado para su proyecto: los modelos GPT-2 o YOLOv3 también funcionarán con los proyectos mencionados anteriormente.
  3. Si lo desea, incluso puede usar la biblioteca como gpt-2-simple para ajustar (personalizar sus propios datos) su modelo.
  4. Finalmente, implemente el modelo como un microservicio.


Una vez que el modelo se implementa como una API, puede solicitarlo, como cualquier otro servicio web, y construir su aplicación alrededor de él.

Puede ver la aplicación real de este proceso en un proyecto creado por un ingeniero de aprendizaje automático en solitario.



Gracias a este método de aprendizaje, puede familiarizarse con varias arquitecturas de modelos populares, conocer otros enfoques del aprendizaje automático y para qué aplicaciones están destinados. Igualmente importante es el hecho de que aprenderá sobre la infraestructura de aprendizaje automático que se necesita para construir productos del mundo real basados ​​en modelos.

Tan pronto como pueda crear productos basados ​​en ML, comience a aprender teoría


Como ingeniero, es probable que ya haya implementado alguna forma de autenticación anteriormente, lo que significa que (espero) hash las contraseñas.

Al configurar el hash de contraseña, ¿escribió un algoritmo de hash personalizado? ¿Has pasado varias semanas estudiando criptografía? ¿O simplemente lo usaste bcrypt?

Del mismo modo, cuando creó su primera aplicación web, ¿estudió la base de datos durante varias semanas? ¿Escribiste desde cero? ¿O utilizó el ORM aleatorio de su marco favorito?
La misma lógica se aplica al aprendizaje automático. Si es una persona a la que le gusta crear software, comience por crear un software de aprendizaje automático y permítase desconectarse de la teoría subyacente del aprendizaje automático utilizando herramientas, modelos preparados previamente y marcos de aprendizaje automático. Luego, si está interesado, o si su proyecto requiere más complejidad, profundice para ver cómo funciona todo.



imagen
Aprenda los detalles de cómo obtener una profesión solicitada desde cero o subir de nivel en habilidades y salario tomando los cursos en línea de SkillFactory:



Lee mas



All Articles