¿Cómo convertirse en un ingeniero de algoritmos cualificado?
Convertirse en un ingeniero de desarrollo calificado no es una cuestión sencilla, requiere dominar una serie de habilidades desde el desarrollo hasta la depuración y la optimización. Dominar cada una de estas habilidades requiere suficiente esfuerzo y experiencia. Es aún más difícil convertirse en un ingeniero calificado de algoritmos de aprendizaje automático (en lo sucesivo, ingeniero de algoritmos), porque además de dominar las habilidades generales de los ingenieros, también es necesario dominar una red de conocimientos relativamente pequeña de algoritmos de aprendizaje automático.
Ahora desglosaremos las habilidades necesarias para convertirse en un ingeniero de algoritmos calificado y echemos un vistazo a qué habilidades se necesitan para ser considerado un ingeniero de algoritmos calificado.
1. Capacidades básicas de desarrollo
El llamado ingeniero de algoritmos primero debe ser ingeniero y luego debe dominar algunas habilidades que todos los ingenieros de desarrollo deben dominar.
Algunos estudiantes tienen algunos malentendidos al respecto. Piensan que los llamados ingenieros de algoritmos solo necesitan pensar y diseñar algoritmos, y no necesitan preocuparse por cómo se implementan estos algoritmos, y habrá gente. para ayudarle a implementar las soluciones algorítmicas que se le ocurran. Esta idea es errónea. En la mayoría de los puestos de la mayoría de las empresas, los ingenieros de algoritmos deben ser responsables de todo el proceso, desde el diseño del algoritmo hasta su implementación y lanzamiento.
El autor ha visto que algunas empresas implementan una estructura organizativa que separa el diseño y la implementación del algoritmo. Sin embargo, bajo esta estructura, no está claro quién es responsable de los efectos del algoritmo. Hay mucha amargura. Las razones específicas están más allá del alcance de este artículo, pero espero que todos recuerden que las habilidades básicas de desarrollo son lo que todos los ingenieros de algoritmos deben dominar.
2. Conceptos básicos de probabilidad y estadística
Se puede decir que la probabilidad y la estadística son una de las piedras angulares del campo del aprendizaje automático. Desde cierta perspectiva, se puede ver el aprendizaje automático. como basado en la probabilidad. Una forma sistemática de pensar y conocer el mundo incierto basado en el pensamiento. Aprender a analizar los problemas desde una perspectiva probabilística y describirlos en lenguaje probabilístico es una de las bases más importantes para una comprensión profunda y un uso competente de la tecnología de aprendizaje automático.
La teoría de la probabilidad tiene mucho contenido, pero todo está incorporado en distribuciones específicas como portadores de manifestaciones específicas. Por lo tanto, es muy importante aprender las distribuciones de probabilidad comúnmente utilizadas y sus diversas propiedades para aprender bien la probabilidad.
Para datos discretos, la distribución de Bernoulli, la distribución binomial, la distribución multinomial, la distribución Beta, la distribución de Dirichlet y la distribución de Poisson son cosas que deben entenderse;
Para datos fuera de línea, la distribución gaussiana y la familia de distribuciones exponenciales son distribuciones más importantes. Estas distribuciones se ejecutan a través de varios modelos de aprendizaje automático y también existen en varios datos en Internet y en el mundo real. Solo comprendiendo la distribución de los datos podemos saber qué tipo de procesamiento se les debe realizar.
Además, también es necesario dominar las teorías relevantes de la prueba de hipótesis. En esta llamada era de big data, lo más engañoso probablemente sean los datos. Sólo dominando las teorías relacionadas, como las pruebas de hipótesis y los intervalos de confianza, se puede distinguir la autenticidad de las conclusiones de los datos. Por ejemplo, si realmente existe diferencia entre ambos conjuntos de datos, si realmente los indicadores han mejorado tras lanzar una estrategia, etc. Este tipo de problema es muy común en el trabajo real. Si no domina las capacidades relevantes, quedará ciego en la era del big data.
En términos de estadística, también es necesario dominar algunos métodos de estimación de parámetros de uso común, los típicos como la estimación de máxima verosimilitud, la estimación máxima a posteriori, el algoritmo EM, etc. Estas teorías, al igual que la teoría de la optimización, son teorías que se pueden aplicar a todos los modelos y son la base de la base.
3. Teoría del aprendizaje automático
Aunque cada vez hay más kits de herramientas de código abierto disponibles, eso no significa que los ingenieros de algoritmos puedan ignorar el aprendizaje de la teoría básica del aprendizaje automático. . y maestría. Esto tiene dos significados principales:
Solo dominando la teoría se pueden aplicar diversas herramientas y técnicas de manera flexible, en lugar de simplemente copiarlas. Sólo sobre esta base podremos realmente tener la capacidad de construir un sistema de aprendizaje automático y optimizarlo continuamente. De lo contrario, solo se le puede considerar un albañil de aprendizaje automático, no un ingeniero calificado. Si ocurre un problema, no se solucionará y mucho menos se optimizará el sistema.
El propósito de aprender las teorías básicas del aprendizaje automático no es solo aprender cómo construir un sistema de aprendizaje automático, sino que, lo que es más importante, estas teorías básicas incorporan un conjunto de ideas y patrones de pensamiento, que incluyen el pensamiento probabilístico. , pensamiento matricial, pensamiento de optimización y otros subcampos. Este conjunto de patrones de pensamiento es muy útil para el procesamiento, análisis y modelado de datos en la era actual del big data. Si no tiene este conjunto de pensamientos en mente y todavía usa el mismo viejo pensamiento escalar y no probabilístico para pensar en problemas en un entorno de big data, entonces la eficiencia y profundidad de su pensamiento serán muy limitadas.
La connotación teórica y la extensión del aprendizaje automático son muy amplias y no se pueden agotar en un solo artículo, por lo que aquí enumero algunos contenidos básicos e presento contenido que es más útil para el trabajo práctico después de dominar estos conceptos básicos. contenidos, continuar explorando y aprendiendo.
4. Lenguajes de desarrollo y herramientas de desarrollo
Después de dominar suficientes conocimientos teóricos, también necesitarás suficientes herramientas para implementar estas teorías. En esta sección, presentamos algunos lenguajes de uso común. y herramientas.
5. Diseño de arquitectura
Finalmente, dedicamos un espacio a hablar sobre el diseño de arquitectura del sistema de aprendizaje automático.
La denominada arquitectura del sistema de aprendizaje automático se refiere a un sistema general que puede respaldar el funcionamiento estable y eficiente de la capacitación, la predicción y los servicios de aprendizaje automático, así como la relación entre ellos.
Cuando la escala y la complejidad del negocio alcancen un cierto nivel, el aprendizaje automático definitivamente avanzará hacia la sistematización y la plataforma. En este momento, es necesario diseñar una arquitectura general basada en las características comerciales y las características del aprendizaje automático en sí, que incluye el diseño de la arquitectura del almacén de datos ascendente y el flujo de datos, así como la arquitectura del entrenamiento del modelo. como la arquitectura de los servicios online, etc. Aprender este conjunto de arquitectura no es tan simple como el contenido anterior. No hay muchos libros de texto ya preparados para aprender. Se trata más de un resumen abstracto basado en mucha práctica y la evolución y mejora continua del sistema actual. Pero este es sin duda el trabajo más valioso en la carrera de ingeniero de algoritmos. El consejo que puedo dar aquí es practicar más, resumir más, abstraer más e iterar más.
6. Situación actual en el campo de los ingenieros de algoritmos de aprendizaje automático.
Se puede decir que ahora es la mejor era para los ingenieros de algoritmos de aprendizaje automático. Existe una gran demanda de este tipo de talentos. todos los ámbitos de la vida. Típicas incluyen las siguientes subindustrias:
Sistema de recomendación. El sistema de recomendación resuelve el problema de la coincidencia y distribución eficiente de información en escenarios de datos masivos. En este proceso, el aprendizaje automático juega un papel importante en la recuperación de conjuntos de candidatos, la clasificación de resultados, la elaboración de perfiles de usuarios, etc.
Sistema publicitario. Los sistemas de publicidad y los sistemas de recomendación tienen muchas similitudes, pero también existen diferencias significativas. Además de los intereses de los anunciantes, las dos partes se han convertido en tres partes, lo que complica mucho más algunos problemas. También es similar a las recomendaciones en el uso del aprendizaje automático.
Sistema de búsqueda. La tecnología de aprendizaje automático se utiliza ampliamente en muchos aspectos básicos de construcción y clasificación de nivel superior del sistema de búsqueda. En muchos sitios web y aplicaciones, la búsqueda es una entrada de tráfico muy importante. La optimización del sistema de búsqueda mediante el aprendizaje automático afectará directamente la eficiencia de. todo el sitio web.
Sistema de control de riesgos. El control de riesgos, especialmente el control de riesgos financieros en Internet, es otro campo de batalla importante para el aprendizaje automático que ha surgido en los últimos años. No es exagerado decir que la capacidad de utilizar el aprendizaje automático puede determinar en gran medida las capacidades de control de riesgos de una empresa financiera de Internet, y las capacidades de control de riesgos en sí mismas son la competitividad central de las garantías comerciales de estas empresas. Se puede sentir la relación entre esto. .
Sin embargo, como dice el refrán “cuanto mayor es el salario, mayor es la responsabilidad”, los requisitos de las empresas para los ingenieros de algoritmos están aumentando gradualmente. En términos generales, un ingeniero de algoritmos de alto nivel debería poder manejar el proceso completo de "adquisición de datos, entrenamiento del modelo de análisis de datos y ajuste del modelo en línea" y optimizar continuamente varios enlaces en el proceso. Cuando un ingeniero comienza, puede comenzar desde un determinado vínculo en el proceso anterior y continuar ampliando su alcance de habilidades.
Además de los campos enumerados anteriormente, hay muchas industrias tradicionales que también exploran constantemente la capacidad del aprendizaje automático para resolver problemas tradicionales. El futuro de la industria tiene un enorme potencial.