Habilidades de ingeniero de aprendizaje profundo | 5 habilidades necesarias para ser un ingeniero de DL

Contenidos

Este artículo fue publicado como parte del Blogatón de ciencia de datos

“¿Qué hay detrás de los autos sin conductor? Inteligencia artificial o, más específicamente, aprendizaje profundo ”- Dave Waters When

Introducción

ingresando al campo del Deep Learning y le diría las tecnologías que debe aprender para obtener una mejor comprensión del campo, para este propósito, este artículo no va a ser demasiado formal y técnico, por lo que puede hacer cualquier pregunta en En la sección de comentarios estaré muy feliz de responderlos.

En India, alrededor de 700 mil estudiantes se gradúan por año, y los estudiantes que desean perseguir sus sueños en el lado del Desarrollo de las Ciencias de la Computación deben elegir un dominio, Deep Learning es uno de ellos. A medida que las tecnologías crecen, el interés de los estudiantes en el aprendizaje automático / aprendizaje profundo también aumenta. Un gran problema al que se enfrentan todos es que todos saben que hay un buen alcance en el campo de la IA, pero lo que les falta es dónde empezar y en qué dirección deben enfocar su energía, prueban una tecnología y después de unos días , saltan sobre el otro dejando el último sin practicar.

La mayoría de los practicantes de aprendizaje profundo temen que los grandes gigantes tecnológicos estén trabajando en algunos algoritmos que automatizarán todo el proceso de aprendizaje profundo y que no habría una publicación como ingeniero de aprendizaje profundo. Así que déjame confirmarte una cosa que no va a suceder, no ahora seguro. La automatización se está apoderando del lugar, pero aún queda un largo camino por recorrer.

Si sabes que eres bueno con los números y quieres trabajar en algunas tecnologías emocionantes, Deep Learning seguramente es para ti, en este tutorial te diré el camino que puedes seguir para ser un exitoso ingeniero de aprendizaje profundo aplicado.

¿Qué es el aprendizaje profundo?

El aprendizaje profundo es el subconjunto del aprendizaje automático que se ocupa principalmente de las redes neuronales (NN). Proporciona soluciones para casi todo tipo de datos como imágenes, texto, audio, etc. Las redes neuronales intentan imitar al cerebro para producir resultados de la misma manera que lo hace la mente humana. Ustedes ya conocen esta parte de la teoría, así que permítanme pasar directamente a las cosas sobre las que son escépticos. Sé que es posible que tenga dudas sobre si necesita una maestría o debe ser de Harvard o MIT para ser un buen candidato para el aprendizaje profundo, déjeme responder eso por usted. Hay dos roles en Deep Learning, uno llamado Investigador de Deep Learning y otro como Applied Deep Learning Engineer. El primero se ocupa de tener más estadísticas y conocimientos basados ​​en las matemáticas que pueden ayudarlo a comprender los conceptos de Deep Learning y eventualmente lo llevarán a descubrir nuevos algoritmos / tecnologías, mientras que el otro se ocupa de lo que ya está implementado por los investigadores de Deep Learning que acaban de usar. eso y aplicarlo en algún lugar, donde pueda reducir el esfuerzo humano.

39180deep_learning_content-1884319
Fuente: Levity.ai

Ahora ya sabe que si no pertenece a alguna universidad de nivel 1, aún puede ser un ingeniero de aprendizaje profundo, así que analicemos todas las tecnologías que necesitará para ser un ingeniero de aprendizaje profundo exitoso.

Resumen de habilidades necesarias:

Mientras trabaja en Machine Learning / Deep Learning, no es como si solo tuviera que conocer algunos algoritmos y aplicarlos a los datos que obtendrá. Comenzará desde la fase de requisitos, es decir, primero identificará el problema para el que encontrará la solución. Una cosa más importante es que no todos los problemas requieren soluciones de Deep Learning.Primero, intente analizar el problema y vea si se puede resolver utilizando algoritmos tradicionales.Si es así, ahorrará mucha energía y recursos, de lo contrario, puede elegir la solución de Deep Learning.

1. Un lenguaje de programación adecuado para AI / ML / DL

Sé que es posible que se pregunte por qué le digo esto cuando es posible que ya lo sepa, pero elegir el lenguaje de programación es la primera tarea que lo coloca en el camino del aprendizaje profundo. Los lenguajes comunes preferidos para DL son Python y R (personalmente yo uso Python).

64742python_r-1212278
Fuente: Datacamp.com

Ambos lenguajes tienen sus especialidades, no es como si cuando usas uno puedas ignorar por completo el otro, tener conocimiento de ambos es una guinda del pastel. Cuando comiences a aprender cualquiera de estos lenguajes de programación, intenta concentrarte completamente en un idioma y una vez que lo domines, otro será muy fácil para ti. Intente dominar tantas bibliotecas como pueda, una vez hecho esto, le resultará muy fácil trabajar en proyectos del mundo real.

Problemas enfrentados:

Si bien cualquiera comienza a aprender un lenguaje de programación, el principal problema al que se enfrenta es el conocimiento de los recursos que reducirán el proceso de aprendizaje. También me he enfrentado al mismo problema al hacer lo mismo. La forma en que he dominado el lenguaje Python es completando conferencias primarias de learnpython.org y ellos completando varias conferencias en video de Udemy y Coursera. Una sugerencia importante que seguramente haría es no mirar conferencias en video solo para obtener certificados y disfrutar de su perfil vinculado, verlos, obtener conocimientos que eventualmente lo ayudarán a ser un mejor desarrollador.

2. Fundamentos de la informática y estructuras de datos

Conocer los algoritmos de Machine Learning / Deep Learning no es suficiente, también necesitará conocimientos de habilidades de ingeniería de software como estructuras de datos, ciclo de vida de desarrollo de software, Github, algoritmos (clasificación, búsqueda y optimización).

50869computer_science-3034540
Fuente: reachcambridge.com

Cuando trabajas en cualquier proyecto del mundo real, el cliente no necesitaría ningún modelo de Machine Learning, lo que requeriría es una solución en forma de Servicio o Aplicación para lo cual necesitas tener una comprensión más profunda de estos conceptos.

Problemas enfrentados:

La mayoría de los entusiastas de la ciencia de datos piensan que si van a trabajar en el campo de AI / ML / DL solo tendrán que aprender un montón de algoritmos que de todos modos obtendrán en algún paquete, y otros conceptos no lo son estructura de datos muy importante espacialmente. Así que déjame aclararte una cosa cuando trabajes en cualquier proyecto en vivo en el que tendrás que optimizar tu código para que sea más eficiente en cuanto a memoria y tiempo, y siempre que hablamos de eficiencia, aparece la Estructura de datos. Además, cuando trabaja en proyectos en vivo, debe trabajar en plazos, por lo que para entregar los proyectos a los clientes a tiempo, debe tener una comprensión adecuada de SDLC. También estudié estos conceptos solo en la universidad y cuando estaba trabajando en POC (Prueba de conceptos) tampoco tenía una comprensión adecuada de estos conceptos en el mundo real, pero como he sido parte de algunos proyectos, estos conceptos se volvieron claros para mí. , por lo que si conoce estos conceptos y tiene miedo de no saber cómo aplicarlos en el mundo real, no se preocupe de que aprenderá solo cuando sea parte de algún proyecto.

3. Matemáticas para el aprendizaje automático

Si es un ingeniero de software, puede codificar fácilmente cualquier solución, pero cuando se trata de aprendizaje automático, debe tener una comprensión de los conceptos matemáticos y estadísticos que lo ayudarán a analizar cualquier algoritmo y ajustarlo de acuerdo con sus necesidades.

51631mathematics-5848840
Fuente: theconversation.com

Para el entrenamiento y la inferencia también necesitará tener conocimiento de conceptos como Gradient Descent, Distance Matrics, Mean, Median and Mode, etc.

Problemas enfrentados:

Según yo, esto es lo importante que alguien debe aprender antes de ingresar al campo del Deep Learning. La mayoría de nosotros pensamos que cuando la mayoría de los algoritmos ya están implementados y los vamos a aplicar a diferentes campos, ¿por qué aprender conceptos matemáticos? Entonces, como he experimentado cada vez que vas a trabajar en cualquier algoritmo de Deep Learning, tendrás que ajustarlo de acuerdo a tu caso de uso y para eso, necesitas estos conceptos. He trabajado en varios proyectos y, sinceramente, el 95% de las veces estos conceptos me resultaron útiles para ajustar el algoritmo, el otro 5% he usado algoritmos tal como están.

4. Servicios de implementación y tecnología de interfaz de usuario / interfaz de usuario

Cuando tenga su solución de aprendizaje automático lista, debe representarla a otros en forma de algunos gráficos o visualizaciones porque la persona a la que le está explicando podría no tener el conocimiento de estos algoritmos y lo que él querría es la solución de trabajo para su problema. . Entonces, lo que puede mejorar este proceso de desarrollo es el conocimiento de cualquier tecnología de interfaz de usuario como Django, Flask y, si es necesario, JavaScript, su código de aprendizaje automático sería el backend, mientras que usted creará un frontend para el mismo.

32127frontend-7662796
Fuente: yashints.dev

Una vez que la solución completa esté lista, debe implementar esa solución en algún lugar para lo que debe aprender tecnologías como Apache, Wamp, etc.

Problemas enfrentados:

Esta tecnología es imprescindible para trabajar en proyectos de Deep Learning, si eres parte de una organización muy grande, hay desarrolladores de frontend y backend dedicados, por lo que no te preocupes si trabajas solo en la parte de backend pero si eres parte de una organización pequeña. o un equipo pequeño, probablemente tendrá que manejar tanto el desarrollo de frontend como el de backend.

5. conocimiento de las plataformas de Cloud Computing

A medida que avanzamos en tecnología, la cantidad de datos está aumentando enormemente, no puede administrar esos datos en su servidor local, por lo que debería pasar a las tecnologías en la nube. Estas plataformas brindan muy buenos servicios desde la preparación de datos hasta el desarrollo de modelos.

26721cloud_computingjpg-1548125
Fuente: Forbs.com

Algunas de estas plataformas informáticas tienen algunas soluciones basadas en Deep Learning que son de vanguardia. Las plataformas más preferidas son AWS y Azure y también puede probar Google Cloud.

Estas son las tecnologías que uno debe aprender mientras trabaja como ingeniero de aprendizaje profundo, por supuesto, también puede aprender otras tecnologías, pero estas son las imprescindibles.

Problemas enfrentados:

Trabajar en la computación en la nube puede ser difícil, ya que tendrá que trabajar en esta tecnología mientras trabaja en otras 4 tecnologías, pero si está interesado en aprender algunas cosas adicionales, esto seguramente es para Deep Learning Engineer.

Recurso:

Puede utilizar los siguientes recursos para comenzar a aprender estas tecnologías:

Lenguaje de programación: https://www.learnpython.org/

Estructura de datos: https://www.geeksforgeeks.org/data-structures/

Matemáticas para el aprendizaje automático: https://www.coursera.org/specializations/mathematics-machine-learning

Tecnologías frontend: https://www.djangoproject.com/start/, https://www.fullstackpython.com/flask.html

Tecnologías en la nube: https://aws.amazon.com/getting-started/, https://docs.microsoft.com/en-us/learn/azure/

Gracias por leer este artículo. Si has aprendido algo nuevo, siéntete libre de comentar ¡¡¡Nos vemos la próxima vez !!! ❤️

Los medios que se muestran en este artículo no son propiedad de DataPeaker y se utilizan a discreción del autor.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.