¿Qué habilidades se necesitan para los trabajos de aprendizaje automático?

Creo que Joseph dio una respuesta muy completa a esa pregunta. Sin lugar a dudas, en la parte superior de esa lista están los paquetes comunes que encontrará como desarrollador en el campo.

Sin embargo, lo que ninguno de estos comentarios realmente toca es el tiempo que lleva familiarizarse con cada uno de estos temas. En realidad, son respuestas bastante profundas y malas que dan como resultado una precisión de clasificación del 100% son comunes debido al ajuste excesivo.

Si solo desea un puesto de nivel de entrada, no veo la necesidad de saber nada más allá de Naive Bayes, LDA y SVM que pueda obtener de los paquetes numpy + scipy más comunes. El álgebra lineal ayudará, pero si comprende el análisis de componentes principales y la descomposición de valores singulares, estas cosas anteriores son el 80% de la teoría que necesitará en la práctica.

Para ser honesto, estudiaría más sobre aprender a obtener buenas características más que cualquier otra cosa. Los clasificadores son una ciencia matemática bien entendida en este momento. Saber cómo obtener buenas características y construir buenos núcleos es donde la mayor parte de su inversión en empleo podría estar en roles más avanzados.

Dado que probablemente querrá implementarlos, debe conocer los lenguajes de programación básicos que utiliza la mayoría de las personas que reclutan, como los mencionados anteriormente.

Dudo seriamente que alguna matemática elegante sea muy importante. Es interesante saber cómo reproducir los espacios de kernel hilbert, pero a menudo en la mayoría de las startups solo querrá que siga implementando hasta que funcione correctamente en el final de la implementación. Hacer esto significa que solo tiene que hacer que algo funcione con los datos que se le han proporcionado. Tal vez esto sea un poco poco intelectual, pero a menudo es cómo funcionan los emprendimientos en etapas iniciales.

Si desea ser una persona de ciencia de datos y ser tratado como un científico, o como algo más que un técnico altamente remunerado, y trabajar a nivel gerencial, debe considerar la educación formal en aprendizaje automático y ciencias de la computación. Un joven brillante de 15 años puede conseguir un trabajo en una startup si puede hacer el trabajo, pero no le pediría que lidere un equipo a menos que tenga otras capacidades extraordinarias que en realidad son bastante raras.

Muchas de estas respuestas le han dado un cierto conjunto de herramientas que se han usado comúnmente en las startups en el pasado. Creo que es importante tener en cuenta que durante sus más de 35 años de carrera, estas herramientas cambiarán por completo. Por lo tanto, es mejor familiarizarse primero con los conceptos básicos y las matemáticas.

En segundo lugar, el campo ML es demasiado diverso para comprender docenas de algoritmos diferentes en cualquier profundidad real. Creo que debería elegir algunos de los algoritmos con la promesa más futura, y comprenderlos muy profundamente. Dicho esto, hay algunas cosas básicas como Naive Bayes, SVM, Perceptrons, Decision Trees, que debes conocer bien.

Finalmente, la gente del mundo de inicio / no investigador le dirá que se centre en algoritmos que “se están haciendo largos” (por ejemplo, SVM) y las herramientas de base de datos Big Data como Hadoop. Desde que está comenzando, creo que debería enfocarse en las arquitecturas que parecen más prometedoras para el futuro: redes neuronales y SIMD / computación vectorial (por ejemplo, GPU). Los enfoques de redes neuronales han comenzado recientemente (<10 años) a revolucionar el procesamiento del lenguaje natural, la visión artificial, el reconocimiento de voz y muchos otros campos. Debido a su poder, se espera que esto continúe.

Por lo tanto, me enfocaría en aprender e implementar dichos algoritmos usted mismo con aceleración de GPU, y atado a alguna base de datos distribuida. Aquí hay una lista de algoritmos a considerar:
1. Redes de creencias profundas o autoencoders de denoising apilados
2. Redes neuronales convolucionales
3. Redes recurrentes de memoria a corto y largo plazo (LSTM)
4. Redes neuronales recursivas (a menudo utilizadas para PNL)
5. word2vec y algoritmos relacionados para aprender palabras de su contexto

Otro campo muy prometedor es Reenforcement Learning, especialmente el trabajo Q-Learning de Deep Mind. Esto se usa cuando tiene alguna función de recompensa retrasada (por ejemplo, su puntaje durante un juego de Atari) y no puede calcular directamente el gradiente de los parámetros en su red. Después de familiarizarse con los elementos anteriores, es posible que desee explorar esta área, ya que es muy relevante para la robótica y simula de manera más realista cómo las personas o los animales realmente aprenden la mayor parte de su aprendizaje.

——————–
ACTUALIZACIÓN: He llegado a la opinión de que, durante el año pasado, estamos comenzando a ver un tremendo progreso en la combinación de diferentes algoritmos neuronales en un solo sistema “profundo” para el cual la suma es mayor que las partes. Espero que el progreso más profundo provenga en gran medida de esta dirección, ya que se han establecido los componentes básicos. En parte, esto se habilita al entrenar previamente los bloques individuales antes de ajustar todo el sistema, así como los grupos de computadoras más rápidos. (Sin embargo, también continuaremos viendo progreso en algoritmos individuales).

En otras palabras, estamos viendo LSTM combinado con ConvNets y Perceptrones multicapa (MLP) para hacer cosas como escribir oraciones que describen imágenes (Google / Stanford). Del mismo modo, vimos una red de juego Atari hecha de un ConvNet y MLP capacitados con aprendizaje de refuerzo (Deep Mind).

También podría agregar fácilmente a esta lista: alimentar dichos vectores de palabras de redes compuestas formadas desde word2vec / GloVe / skip-gram. O incluso una capa de análisis de sentimientos entrenada con una red neuronal recursiva.

Debido a que las redes neuronales y la retropropagación hacen que sea fácil combinar / apilar capas en geometrías arbitrarias, y entrenar al conglomerado como un sistema completo, pueden escalar a gran capacidad.

Estos sistemas híbridos, que consisten en muchos tipos diferentes de redes neuronales, conectados en varias topologías, pre-entrenados individualmente y ajustados juntos, continuarán demostrando nuevas capacidades dramáticas.
——————–