¿Cuánto tiempo le lleva a un programador experimentado aprender el aprendizaje automático?

¿Todo depende de lo que quiere decir con la meta pregunta “aprendizaje automático de aprendizaje”? ¿Adquirir experiencia suficiente para hacer investigación? ¿Desarrollando un nivel básico de habilidad para comprender los documentos técnicos? ¿Entiende la terminología para poder ejecutar paquetes estándar? ¿Descubrir cómo plantear algo como un problema de LA?

Dependiendo del requisito, la respuesta puede variar desde “unas pocas semanas” hasta “toda una vida”. Sospecho que te refieres a aprender lo suficiente como para poder codificar o usar paquetes estándar, pero saber algo sobre cuándo podrían funcionar o fallar. Pero, para aquellos que se toman en serio el aprendizaje de ML y contemplan un cambio de carrera, ampliaré lo que podría significar pasar toda su vida haciendo ML.

He trabajado en el área de aprendizaje automático durante más de 30 años. ¡Mi primer trabajo en el campo fue presentado en la Conferencia Internacional Conjunta sobre IA (IJCAI) en 1985! ¡Y siento que todavía estoy explorando el campo y aprendiendo muchas cosas nuevas! Tuve mucha suerte de haber realizado mi tesis doctoral con un gran maestro, el profesor Thomas Mitchell (hasta hace poco, presidente del Departamento de Aprendizaje Automático de Carnegie Mellon). Tom me ayudó a aprender la lección más básica de todas: cuando descubres algo que amas, ¡nunca tienes que trabajar otro día en tu vida! Trabajó más duro que la mayoría de las personas que he conocido. ¡Y sin embargo, rara vez he visto a alguien que haya disfrutado tanto de lo que estaba haciendo! Ese tipo de pasión se te contagia, y ciertamente atrapé el error. Tres décadas después, todavía estoy “infectado” por el “error” del aprendizaje automático y con la esperanza de “difundirlo”.

Mientras que alguien con buenos antecedentes en álgebra lineal (por ejemplo, al nivel del libro de texto de Strang) puede comprender los conceptos básicos de ML en unas pocas semanas, el campo es, para usar un juego de palabras malo, ¡muy profundo! Uno puede tomar casi cualquier tema y explorarlo a una profundidad que parece interminable. Parte de lo que me encanta del aprendizaje automático es que es muy diverso. Combina teoría profunda y aplicaciones maravillosas, y abarca el espectro desde la ciencia básica hasta algoritmos inteligentes y productos terminados retractilados.

Daré un ejemplo concreto de un problema en el que he estado trabajando durante la semana pasada. A medida que comenzamos a escalar ML, uno de los principales desafíos es que se hace muy difícil encontrar conjuntos de datos adecuados. Digamos que quieres entrenar un auto sin conductor. Muy bien, muchas empresas están trabajando duro en este problema. Genial, comienzas a entrenar tu auto con datos de la ciudad donde vivo, San Francisco. Tal vez desee que su automóvil pueda detectar peatones y otros “objetos” similares (por ejemplo, ciclistas). Recopila muchas imágenes del objeto que intenta detectar, pero también necesita imágenes donde el objeto no está presente. Ejecutas tu clasificador “peatonal” y parece que funciona muy bien, y luego sacas tu coche a dar una vuelta. Wham! Tienes que pisar los frenos porque tu auto no pudo detectar a un peatón. ¿Que pasó? Bueno, sucedió que sus datos no cubrieron todos los casos posibles. Peor aún, la distribución específica de características que asumió su conjunto de entrenamiento se viola en los datos de la prueba. En San Francisco, a menudo hay niebla por la mañana, y tal vez sus imágenes reflejan eso, y cuando prueba su algoritmo, la condición de iluminación ha cambiado. Esta situación es imposible de evitar, incluso para los humanos. Pasas toda la vida en un país, y luego tomas un vuelo corto a algún destino extranjero, y wow, el mundo es muy diferente.

Cómo modificar un sistema de aprendizaje automático capacitado para hacer frente a los cambios en la distribución de características desde la capacitación hasta las pruebas es una pregunta de investigación profunda. Un procedimiento muy simple y básico en el aprendizaje automático es hacer algunas estadísticas descriptivas básicas sobre los datos. De acuerdo, una de las cosas más fáciles que puede hacer es tomar todos los datos de entrenamiento, imaginarlos como una tabla gigante donde las columnas son “características” y calcular cómo varía una característica a medida que las otras características cambian sus valores. Los estadísticos llaman a esto una matriz de “covarianza”. Para el detector de peatones, es posible que tenga muchas características (por ejemplo, altura y ancho de la “mancha” de interés, etc.). Dado que los datos de entrenamiento se resumen mediante una matriz de covarianza de características, ¿qué sucede si la covarianza de datos de prueba cambia? OK, descubra cómo modificar su algoritmo para lidiar con los cambios en la covarianza de características. Varios métodos recientes intentan hacer esto, utilizando una idea simple de alinear correlaciones. Digamos que la matriz de covarianza de origen es X, y la covarianza de datos de prueba es Y, calcule una matriz de transformación A tal que A ‘* X * A ~ Y. (Aquí, A’ significa la transposición de A)

Ahora, aquí es donde el aprendizaje automático comienza a ser “profundo”. Resulta que lo que está sucediendo aquí es que tiene puntos en el espacio que están representados por matrices de covarianza, y dados dos puntos (covarianza de origen y de destino), necesita descubrir una nueva covarianza “promedio”. ¿Cómo tomar el promedio de dos matrices de covarianza? Es simple tomar el promedio de dos números (x + y / 2). ¿Qué pasa con las covarianzas? No es tan simple. Resulta que las matrices de covarianza no viven en el espacio euclidiano. ¡La diferencia entre dos matrices de covarianza no hace una matriz de covarianza! (Entonces, si X es una matriz de covarianza, y también lo es Y, bueno, X – Y no es una matriz de covarianza). Entonces, cómo promediar dos cosas que no son “vectores”, sino puntos en una “superficie curva” que los matemáticos llaman “múltiple”. Al buscar una respuesta a esta pregunta, me encuentro explorando algunas matemáticas bastante profundas. Y así ocurre en el aprendizaje automático. Cualquier pregunta simple puede conducir rápidamente por la madriguera del conejo, profundizando en preguntas que involucran algunos temas esotéricos.

En mis tres décadas, he colaborado con un biólogo que estudia el aprendizaje en las abejas melíferas, varios psicólogos que estudian temas desde el control motor hasta los movimientos oculares, un geoquímico planetario que analiza los datos del rover Mars Curiosity, un astrónomo que analiza imágenes de galaxias a millones de años luz de distancia. tomado por el telescopio Hubble, muchos informáticos e ingenieros, y finalmente, mi propio padre que está tratando de descifrar un idioma antiguo hablado por personas que vivieron en 2500 AC a lo largo del río Indo. Es imposible aburrirse: siempre hay algo nuevo que explorar.

¡Espero que entiendas el “error” del aprendizaje automático!

¿Aprenderlo a qué nivel?

Conozco a muchas personas que son excelentes para escribir SQL y lidiar con problemas de diseño de datos relacionales, pero que ciertamente no pudieron escribir su propio RDBMS.

Los conceptos de la mayoría de los enfoques de aprendizaje automático son bastante fáciles. Algunas de las matemáticas son difíciles. ¿Realmente necesita saber cómo funcionan las máquinas de vectores de soporte para saber si debe usar una para su proyecto? En realidad no, aunque podría ayudar.

Del mismo modo que puede probar un montón de códecs de video para ver qué le da la mejor compresión, puede probar un montón de técnicas de aprendizaje automático para ver qué le da las mejores predicciones. No necesita comprender exactamente cómo se implementan las redes neuronales para averiguar si funcionan bien para su problema. Solo pruébalos y descúbrelo.

Ciertamente hay habilidad en cómo se realiza la selección de características y en cosas como adquirir conjuntos de entrenamiento y usarlos bien.

Hay mucha habilidad para saber qué tipos de problemas es probable que se resuelvan con un enfoque de aprendizaje automático, y con los que no vale la pena molestarse.

Yo diría que es un área más simple que muchas en informática.

Si eres un programador decente Y entiendes las estadísticas, podrás realizar un trabajo de aprendizaje automático útil de inmediato. Sin embargo, es posible que deba pasar un par de días para familiarizarse con los modelos ML específicos con los que se supone que debe trabajar.

More Interesting

¿Cuál es la relación entre los modelos gráficos probabilísticos y las redes neuronales (aprendizaje profundo)?

Cómo comenzar a hacer un proyecto de aprendizaje automático

¿Cuáles son las 8 principales cosas para las que las startups utilizan el aprendizaje automático?

¿Qué significan las hipótesis finita e infinita en el aprendizaje automático? Cuáles son las diferencias entre ellos?

Puede aprendizaje no supervisado puede utilizar para determinar si alguien de la escritura / arte es más creativo que la escritura / arte de la mayoría de la gente?

¿Cómo utilizaría el aprendizaje automático para resolver este tipo de preguntas: 1 + 4 = 5, 2 + 5 = 12, 3 + 6 = 21, 8 + 11 =?

¿Por qué la inferencia exacta en una red bayesiana es intratable?

Cómo hacer la clasificación y agrupamiento de documentos en rapidMiner

Aprendizaje automático: ¿qué significa "abandono en el cerebro con respecto a todas las entradas, mientras que abandono en una red convolucional funciona con respecto a cada unidad individual"?

Si quiero trabajar en Machine Learning e Inteligencia artificial, ¿debería especializarme en Matemáticas / CS o Estadísticas / CS?

¿Cómo se aplica el aprendizaje profundo en la industria?

¿Los algoritmos subyacentes permiten a Shazam identificar una canción y Amazon Flow para identificar una imagen básicamente igual?

¿Qué es la precisión en el aprendizaje automático?

¿Cuáles son las ventajas de las técnicas de aprendizaje automático sobre las técnicas de pronóstico tradicionales?

¿Qué dice el profesor Yaser Abu-Mostafa en su conferencia sobre la viabilidad del aprendizaje?