¿Cuál es la diferencia entre un ingeniero de aprendizaje automático (MLE) o un ingeniero de software? ¿Qué pasa con un rol de aprendizaje automático y un ingeniero de software general?

Bueno, aunque su conjunto de habilidades de desarrollo tendrá cierta superposición, el conocimiento subyacente sería diferente. Tenga en cuenta que el término ingeniero de software es un campo bastante amplio. Dentro de ese campo, hay personas que trabajan en sistemas estrictamente basados ​​en Windows, luego tienes desarrollo de aplicaciones de escritorio, desarrollo de aplicaciones móviles, desarrollo web, desarrollo de sistemas integrados y desarrollo de I + D. Yo diría que el ingeniero de aprendizaje automático es un subconjunto de ingeniería en el ámbito de la ingeniería de software.

Probablemente también valga la pena entender que ha habido un cambio significativo de paradigma en cómo un ingeniero de aprendizaje automático puede abordar una tarea / problema de ingeniería de software. Los principios tradicionales de ingeniería de software dictan que un programa debe ser diseñado por el ingeniero para ingresar los datos y producir una salida. Sin embargo, con el aprendizaje automático, el ingeniero no tiene que diseñar una solución. Puede escribir algún software que genere un programa que resuelva el problema produciendo una salida óptima. En este caso, la máquina en efecto se convierte en un ingeniero de software . Aunque prácticamente, esto no es para toda la plataforma, sino más bien el problema clave. Sin embargo, esto siempre está evolucionando a medida que la teoría y la tecnología de ML mejoran, ¡imagine un mundo donde las máquinas escriben sus propios programas! Skynet mucho! Me estoy desviando …

Un ingeniero de aprendizaje automático necesita conocer en detalle los siguientes aspectos:

1. Análisis estadístico

Esto es muy importante para entender si el problema realmente requiere el uso de técnicas de aprendizaje automático. La regla general es que, si hay poco o ningún dato para usar para que el algoritmo aprenda, entonces el aprendizaje automático no es adecuado. Pero esta etapa también es una etapa de exploración de datos, en la comprensión de la naturaleza de los datos, qué variables aleatorias existen, cómo se distribuyen y se correlacionan. Toda esta información es útil para decidir qué algoritmos usar. Esto incluye comprender los principios descritos en el Glosario de probabilidad y estadística. (demasiados para enumerar)

2. La relación de aprendizaje:

APRENDIZAJE = REPRESENTACIÓN + EVALUACIÓN + OPTIMIZACIÓN

  • Representación : cómo se representa el conocimiento. Algunos ejemplos incluyen árboles de decisión, reglas estadísticas, modelos gráficos, redes neuronales, máquinas de vectores de soporte, conjuntos y muchos otros.
  • Evaluación : Cómo evaluar los programas generados (prueba de hipótesis). Algunos ejemplos incluyen precisión, predicción y recuperación, error al cuadrado, probabilidad, probabilidad posterior, costo, margen, divergencia de entropía kL y muchos otros.
  • Optimización : cómo se crean los programas generados, conocido como el proceso de búsqueda. Por ejemplo, optimización combinatoria, optimización convexa, optimización restringida, descenso de gradiente y muchos más.

3. Tipos de aprendizaje

  • Aprendizaje supervisado: los datos de capacitación incluyen los resultados deseados. Lo que permite que el modelo entrene según los resultados conocidos.
  • Aprendizaje no supervisado: los datos de capacitación no incluyen los resultados deseados. El modelo aprende sin conocimiento de resultados conocidos. La agrupación es un buen ejemplo.
  • Aprendizaje semi-supervisado: los datos de capacitación incluyen algunos resultados conocidos.
  • Aprendizaje de refuerzo: recompensas de una secuencia de acciones. Este es el tipo de aprendizaje más ambicioso.

El aprendizaje no supervisado es quizás el enfoque más sofisticado, y con el tiempo, a medida que aprendemos más y la tecnología progresa, tiene un enorme potencial disruptivo. Imagine programas de aprendizaje sin ningún aporte u orientación de los humanos. Sin embargo, el aprendizaje supervisado es el más común desde un punto de vista comercial. Los problemas de aprendizaje supervisados ​​se dividen en lo siguiente:

  • Clasificación : Aprendizaje en una variable discreta o etiqueta.
  • Regresión : Aprendizaje en una variable continua.

Ingeniero de Aprendizaje Automático como Ingeniero de Software General

En mi experiencia, contratar a un especialista para un puesto general es una receta para un código general subóptimo. Y contratar a un ingeniero de software general para un puesto de especialista es una receta para una catástrofe. Sin embargo, debo enfatizar la ambigüedad que rodea su consulta sobre ingenieros de software. Es un término general para describir un gran subconjunto de especialistas generalmente. Si estaba buscando un ingeniero de software general, primero identifique para qué plataforma es (móvil [android, windows, ios], windows, linux, incrustado) y eso debería ayudar a reducir su búsqueda.

Lo bueno de un ingeniero de software bien entrenado es que son adaptables y pueden aprender sobre la marcha. Entonces, si tiene tiempo, dinero y paciencia, estoy seguro de que muchos no especialistas pueden convertirse en especialistas. Tenga en cuenta que la investigación ha demostrado que se necesitan aproximadamente 1000 horas para dominar un nuevo conjunto de habilidades. Diría que es un poco menos para los ingenieros, sin embargo, los conceptos de aprendizaje automático son altamente teóricos y matemáticos pesados, por lo que podría tomar un poco más de tiempo.

En estos días con herramientas como scikit-learn, cualquiera puede aprender cómo aplicar enfoques de aprendizaje automático, sin embargo, para depurarlos o mejorar los resultados puede requerir una comprensión mucho más profunda.

Para obtener una descripción general de alto nivel de las aplicaciones de aprendizaje automático, esta es una publicación de blog útil sobre aprendizaje automático.

Si está interesado en aprender sobre mí y las aplicaciones comerciales a las que aplico los enfoques de aprendizaje automático, consulte la página de consulta de aprendizaje automático de HuntedHive.

Si disfrutaste esta respuesta, sígueme 🙂

More Interesting

¿Cuál es un consejo contra intuitivo para construir un buen software?

Cómo convertirse en un ingeniero de software de mente más abierta

¿Cuál es la condición de un ingeniero de software no IITiano?

Como estudiante de ingeniero de software, ¿qué aplicaciones o sitios web puedo usar para mejorar?

¿Qué es un ingeniero de garantía de calidad de software?

¿Cuál es la mejor manera de atraer talento de la costa oeste (ingeniero de software senior) para reubicarse y mudarse al medio oeste?

¿Cómo puedo trabajar en Google como ingeniero de software si estudié negocios, física o cualquier otro título que no esté relacionado con la ingeniería / codificación de software?

¿Qué es lo mejor de la ingeniería de software y qué es lo que más te gusta de ella?

¿Qué tan difícil es tener un piso de 3 BHK en cualquier área de Mumbai para un ingeniero de software con 20 LPA CTC?

¿A qué edad se convierte una persona en ingeniero de software?

¿Un cargo pendiente de violencia doméstica en Seattle afectará la búsqueda de trabajo como ingeniero de software? Es un primer delito, ¿se desestimará el cargo en 1 año si no hay otros delitos?

Planeo dejar un título en CogSci en UC Berkeley para enseñarme a ser desarrollador. ¿Qué podría perderme al no obtener un título de Berkeley?

En 5 años, ¿tendrán los ingenieros de software más o menos demanda que ahora?

Quiero ser ingeniero de software? ¿lo que hago?

¿Cuál es el punto de trabajar duro en AKTU, cuando ni siquiera puedes conseguir un trabajo decente después de completar B.Tech en 4 años?