Programador que busca entrar en el campo de aprendizaje automático


19

Soy un desarrollador de software (principalmente .NET y Python con aproximadamente 5 años de experiencia). ¿Qué puedo hacer para ayudarme a conseguir un trabajo en el campo de aprendizaje automático o realmente cualquier cosa que me ayude a comenzar en ese campo? ¿El título de postgrado es un requisito difícil?


2
Esta pregunta parece una pregunta wiki comunitaria.
Andrew

Respuestas:


16

Cada vez que hablo con alguien sobre aprender más aprendizaje automático, siempre me señalan los Elementos del aprendizaje estadístico de Hastie y Tibshirani . Este libro tiene la suerte de estar disponible en línea de forma gratuita (una copia impresa tiene un cierto atractivo, pero no es obligatorio) y es una gran introducción al tema. Todavía no lo he leído todo, pero he leído mucho y realmente me ha ayudado a comprender mejor las cosas.

Otro recurso por el que he estado trabajando es la clase Stanford Machine Learning , que también es en línea y gratuita. Andrew Ng hace un gran trabajo al guiarte por las cosas. Lo encuentro particularmente útil, porque mi experiencia en la implementación de algoritmos es débil (soy un programador autodidacta) y le muestra cómo implementar cosas en Octave (dado que R ya ha implementado gran parte de él en paquetes). También encontré estas notas en las estadísticas de reddit hace unos meses, así que las hojeé y luego vi el video y reflexioné con mis propias notas.

Mi experiencia es en estadísticas y tuve cierta exposición a los conceptos de aprendizaje automático (un buen amigo mío realmente está interesado en eso), pero siempre sentí que me faltaba en el frente del aprendizaje automático, así que he estado tratando de aprenderlo todo. un poco más por mi cuenta Afortunadamente, hay un montón de excelentes recursos por ahí.

En cuanto a conseguir un trabajo en la industria o los requisitos de la escuela de posgrado, no estoy en una excelente posición para asesorar (resulta que nunca he contratado a nadie), pero he notado que al mundo de los negocios parece gustarle realmente la gente que puede hacer cosas y están un poco menos preocupados con los trozos de papel que dicen que puedes hacer algo.

Si fuera usted, pasaría parte de mi tiempo libre confiando en mi conocimiento del aprendizaje automático y luego implementaría las cosas a medida que vea oportunidades. Es posible que su posición no le brinde esa oportunidad, pero si puede implementar algo que agregue valor a su empresa (mientras mantiene sus otras obligaciones), no puedo imaginar que alguien se enoje con usted. Lo bueno aquí es que si te encuentras haciendo un poco de aprendizaje automático en este trabajo, cuando salgas a buscar un nuevo trabajo puedes hablar sobre la experiencia que ya tienes, lo que ayudaría a la gente a mirar más allá de la falta de un la licenciatura.

Hay muchos recursos y es increíblemente interesante, ¡te deseo suerte!

Otra idea: puede comenzar un blog sobre su proceso de aprendizaje de Machine Learning y tal vez documentar algunos proyectos en los que trabaja en su tiempo libre. He hecho esto con un proyecto de programación y le permite hablar sobre un proyecto en el que está trabajando en su tiempo libre (se ve bien para el empleador) y también puede dirigirlo al blog (obviamente, manténgalo profesional) sobre su trabajo . Hasta ahora he enviado a algunas personas a mi pequeño blog de programación tonto (últimamente he sido un poco flojo al publicar, pero lo mantuve actualizado cuando estaba postulando para trabajos) y todos con los que he hablado han quedado impresionados. eso.


(+1) excelentes consejos, especialmente con respecto a la clase ML, el certificado de conocimiento / trabajo real y el blog.
steffen

¡Un blog profesional suena como una buena idea!
Rishi Dua

"Parece que al mundo de los negocios realmente le gustan las personas que pueden hacer cosas", sí, y esto se aplica incluso con trozos de papel :) En cualquier caso, haga algo que pueda mostrarles.
P.Windridge

Los elementos del aprendizaje estadístico, aunque integrales, son difíciles para quienes no tienen un título de posgrado en estadística. En cambio, recomendaría An Introductions to Statistical Learning with (Applications in R), de los mismos autores. Es mucho mas simple.
Abhishek Divekar

3

Además de todos los otros buenos consejos que sugiero ensuciarse las manos al participar en competiciones en línea, vea Sitios para competiciones de modelado predictivo

Con respecto a los libros, etc., debería echar un vistazo a:

Con respecto a los títulos, estoy de acuerdo con @asjohnson en que un certificado no importa, al menos puedo confirmar esto para el área en la que estoy trabajando (Minería de datos / ML en la web). Sin embargo, podría ser diferente para áreas más "académicas" como la bioinformática. Ser capaz de demostrar que uno es a) entusiasta yb) ha realizado un trabajo real ("inteligente y hacer las cosas") mostrando una pequeña cartera (por ejemplo, competencias en línea ...) debería ser más eficaz en mi humilde opinión.


(+1) Para competiciones en línea. Creo que si hiciste algo de kaggle o una de las otras competiciones por ahí y mantuviste un registro de tu código y tu proceso (estoy pensando en el blog) en un lugar donde los posibles empleadores puedan consultarlo. Mostraría mucha iniciativa y de muchas maneras es más fácil que pensar en su propia pregunta de interés. Simplemente elija una de las competencias que le interese, luego tendrá los datos allí y un lugar para enviar y comparar respuestas.
asjohnson

2

Lea el aprendizaje automático de Tom Mitchell. Es un buen libro que debería ayudarlo a comenzar en el campo del aprendizaje automático.

Una cosa a tener en cuenta: tenga en cuenta que el mismo algoritmo a veces puede funcionar mejor o peor según el escenario y los parámetros proporcionados y la probabilidad aleatoria. No se deje arrastrar por los parámetros de optimización de sus datos de entrenamiento; esta es una aplicación deficiente del aprendizaje automático.

Existen muchas técnicas adecuadas para aplicaciones particulares (pero no todas) y hay muchas teorías que puedes leer para comprender mejor el aprendizaje automático. Para ser bueno en el aprendizaje automático, debe asegurarse de saber lo que está haciendo, de lo contrario no puede estar seguro de si sus resultados se generalizarán bien.

Buena suerte.


0

Hay una gran cantidad de buenos libros sobre aprendizaje automático, incluidos varios en la serie O'Reilly que hacen uso de Python. Trabajar en uno o varios de estos podría ser un buen punto de partida.

También sugeriría obtener algún conocimiento de estadística: a través de un curso o dos, o autoestudio, realmente no importa. La razón es que hay algunos libros de aprendizaje automático que se centran en los algoritmos y la mecánica, pero ignoran la pregunta fundamental de qué tan probable es que lo que su algoritmo le dice se deba al azar. Y, esto es esencial para saber.

Buena suerte y diviértete, es un gran campo.


0

Muy buena pregunta. Una cosa a tener en cuenta por adelantado es que el aprendizaje automático es tanto un arte como una ciencia e implica limpiar meticulosamente los datos, visualizarlos y eventualmente construir modelos que se adapten al negocio en cuestión, al tiempo que lo mantienen escalable y manejable. Habilidades sabias, más importante que cualquier otra cosa es centrarse en la probabilidad y usar métodos simples primero antes de saltar a los complejos. Prefiero la combinación R & Perl, ya que conoces Python que debería ser lo suficientemente bueno. Cuando trabaje en un trabajo real, invariablemente tendrá que extraer sus propios datos, por lo que el conocimiento de SQL (o cualquier otro no-sql que su empresa admita) es imprescindible.

No hay nada mejor que la experiencia en el área de ML, por lo que participar en sitios como stackexchange, kaggle también es una excelente manera de exponerse a este campo. Buena suerte.


0

Sé que es una pregunta un poco antigua, pero dado el hecho de que vi a muchos programadores todavía no sé cómo comenzar.

Por lo tanto, creé el repositorio "Un plan diario completo para estudiar para convertirme en ingeniero de aprendizaje automático" .

Este es mi plan de estudio de varios meses para pasar de desarrollador móvil (autodidacta, sin título de CS) a ingeniero de aprendizaje automático.

Mi objetivo principal era encontrar un enfoque para estudiar Machine Learning que sea principalmente práctico y resuma la mayoría de las matemáticas para principiantes. Este enfoque no es convencional porque es el enfoque de arriba hacia abajo y primero diseñado para los ingenieros de software.

Por favor, siéntase libre de hacer cualquier contribución que sienta que mejorará.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.