¿Cuáles son los temas más comunes omitidos de los cursos de aprendizaje automático?

Por lo general, los cursos de aprendizaje automático son encuestas de algoritmos de uso común y se le proporcionan datos bien preparados para trabajar con cada uno. Pero lo que necesita en la vida real es cómo seleccionar cuál usar en primer lugar.

Lo que falta es la perspectiva de todo el flujo de trabajo:

  1. definición de problemas con objetivos, métricas y plan de implementación
  2. selección de herramientas adecuadas (no golpee todos los clavos con el mismo martillo solo porque ese es el que tiene)
  3. donde obtener los datos
  4. cómo prepararlo (limpieza e ingeniería de características)
  5. cómo hacer análisis exploratorios
  6. cómo elegir un algoritmo
  7. como evaluar y ajustar tu modelo
  8. cómo implementar el modelo final en el entorno objetivo (creación de prototipos versus uso de producción)

Esos son temas difíciles de enseñar porque a menudo son muy específicos del dominio. Además, tendrías que introducir muchas herramientas diferentes para hacer esto, pero la mayoría de los maestros querrían centrarse en una herramienta de software para trabajar, cuando en realidad eso no es realista.

Solo un ejemplo, los pasos 1-7 son un proceso muy iterativo de creación de prototipos de un modelo, y se puede hacer en un entorno, pero generalmente los sistemas de producción requieren una implementación más eficiente y escalable, y esos dos enfoques no se mezclan bien. Por lo tanto, elegiría un idioma para la creación de prototipos y otro para la producción, y tendrá que descubrir cómo mover el modelo de un lugar a otro.

Un buen ejemplo es el Premio Netflix: Netflix no pudo usar la solución ganadora y una de las razones fue que no pensaron en el problema de implementación posterior cuando diseñaron el concurso. Discutí más en una publicación de blog aquí: Loren sobre el arte de MATLAB

Otro ejemplo: hace poco leí que Spotify usa espectrogramas de audio junto con datos de comportamiento en sus recomendaciones de Discover Weekly. La magia que hace que las listas de reproducción de Discoverify de Weekify sean tan buenas

Si su fuente de datos puede ser tan diversa como esta (cada vez más con IoT), entonces debe pensar qué datos adquirir, dónde obtenerlos y cómo procesarlos. Eso probablemente requiere diferentes herramientas y diferentes conocimientos de dominio.

Otro problema de aprendizaje supervisado del mundo real que uno enfrenta es la aguja en el problema del pajar: demasiadas muestras negativas entre un número muy pequeño de muestras positivas.

¿QUÉ MÉTODO DE IMPUTACIÓN UTILIZAR?

Determinar qué método usar para introducir valores en un conjunto de datos con valores faltantes es algo que todos deberían saber. Hay libros completos sobre el tema, pero (que yo sepa) este tema no está cubierto en absoluto en la mayoría de los cursos. Como resultado, la mayoría de las personas se ocupan de los datos faltantes, ya sea eliminando todas las filas que no tienen valores para todas las variables (análisis de caso completo) o conectando la media de los otros valores en la columna en cualquier espacio de datos faltante (valor medio reemplazo). Ambos métodos son indeseables, pero sorprendentemente comunes.

¿Con qué tipo de falta estás tratando?

Junto con esto se entiende el patrón de “falta”. ¿Los valores faltantes faltan completamente al azar (MCAR), faltan al azar (MAR) o faltan no al azar (MNAR)? Si es lo último, realmente debes tener cuidado con cómo vas a resolver el problema.

EL PROBLEMA CON VALORES EXTREMOS INFORMATIVOS

En encuestas y otros experimentos autoinformados, es bien sabido que las personas con valores extremos tienden a no informar. Considere el ejemplo de estudiantes que reportan sus puntajes en exámenes estandarizados en matemáticas y comprensión de lectura. Nos gustaría verificar la hipótesis de que los estudiantes que obtienen buenos resultados en el examen de matemáticas también lo hacen en la lectura. Pero lo que sucede es que los estudiantes con puntajes muy altos generalmente se niegan a responder, al igual que los estudiantes con puntajes muy bajos. Así que te quedarás con un conjunto de datos que consiste principalmente en puntajes medios. ¡La correlación entre los puntajes de matemáticas y lectura para los puntajes promedio puede ser débilmente positiva o incluso débilmente negativa! Es decir, llegarás a la conclusión equivocada: ¡hacer un poco por encima del promedio en matemáticas significa que harás un poco por debajo del promedio en lectura!

La razón por la que no se discute la falta de datos y la imputación en los cursos está fuera de mi alcance, especialmente porque el munging de datos representa el 80% del tiempo de un científico de datos.

Encuentro que la educación de aprendizaje automático podría beneficiarse de un esfuerzo más fuerte para integrar la metodología computacional, experimental
diseño y formalismo matemático en una teoría integral.

De hecho, es importante que un estudiante pueda aprender por sí mismo, ya que muchos problemas no solo se pueden encontrar en un libro de cocina de soluciones y es necesario comprender realmente cómo pensar de manera integral en diferentes disciplinas para resolver problemas del mundo real. Esto significa, para un investigador, poder leer la literatura científica y sintetizarla en nuevas ideas.

Tengo un blog donde trato de abordar algunos de estos problemas, muchos de los cuales surgen en el curso de mi práctica de consultoría, algunos de los cuales son solo por curiosidad personal.

No intentaré ser comprensivo, solo enumeraré lo que veo como algunos fallos comunes y cómo presentar una forma diferente de verlos.

Además, una buena clase debe sugerir problemas difíciles para que el alumno trabaje y no solo revisar los temas. Así que trato de hacer algunas sugerencias para proyectos de investigación en algunas de estas publicaciones. Y, al estar en Quora, animo a las personas a comunicarse conmigo si tienen interés en explorar algunos de estos temas.

Un buen ejemplo es la aplicación de la teoría VC. La mayoría de las clases presentan la teoría VC como un ejercicio de formalismo matemático, y pierden el punto real tanto de la utilidad del formalismo como del objetivo central del trabajo vital de Vapnik: construir una teoría de la transducción:

Aprendizaje transductivo / semisupervisado / débilmente supervisado

Aprendizaje automático con etiquetas faltantes: SVM transductoras
Aprendizaje automático con etiquetas faltantes Parte 2: El UniverSVM
Aprendizaje automático con etiquetas faltantes Parte 3: Experimentos

Además, esto surge constantemente en la práctica, ya que con frecuencia no tenemos grandes cantidades de datos bien etiquetados. El aprendizaje automático es más que simplemente ejecutar una regresión logística gigante, sin embargo, esto parece perderse en un gran número de ingenieros y PM, y ciertamente falta en la pila estándar de código abierto de Java / Python de herramientas ML.

Otro gran fracaso es tener una comprensión ingenua del Truco del Kernel,
que creo que es un resultado directo de lo mal que se explica en las clases de comp comp. Aquí, los físicos tienen mucho que decir.

Kernels Parte 1: ¿Qué es un Kernel RBF? De Verdad?
Granos Parte 2: Gravedad Cuántica Afina
Granos y gravedad cuántica Parte 3: Estados coherentes
Granos, funciones de Green y operadores resolutivos

aunque mi pregunta difícil favorita es realmente muy básica: ¿cuáles son las funciones propias del núcleo RBF? La respuesta es muy interesante:
Espectroscopía de datos: núcleos gaussianos y osciladores armónicos

También me sorprende el poco esfuerzo que se dedica a los estudiantes para desarrollar la capacidad matemática; Con frecuencia, al entrevistar a los candidatos, encuentro que aún no pueden recordar por sí solos que derivan algunos de los principios básicos de ML, y creo que sería útil ver algunas de las derivaciones clásicas, como

Cómo derivar realmente la entropía
Aprendizaje métrico: algunas mecánicas estadísticas cuánticas

y

La teoría de la detección comprimida
Noisy Time Series III: Fundamentos teóricos de la detección comprimida

Causalidad vs Correlación

Pero probablemente la práctica más irritante es escuchar el mantra una y otra vez “Una causalidad no es una correlación”, por lo que creo que sería útil comprender lo que esto realmente significa, en el contexto de otros problemas aplicados en el mundo real.

Por ejemplo, lo que Xavier Amatriain llama ‘ sesgo de presentación ‘ es similar al sesgo de supervivencia en las finanzas, algo que cualquier buen MBA entendería de inmediato.

Otro ejemplo clásico es el formalismo de Granger en finanzas
Causalidad versus correlación: causalidad de Granger

que básicamente dice que todas las series de tiempo ingenuamente parecen estar correlacionadas entre sí.

También miro la causalidad en la física química estadística
Causalidad, correlación y movimiento browniano
ya que este es mi primer amor

Esa fue exactamente la pregunta que intenté responder en una presentación que hice hace unos meses (vea las diapositivas aquí http://www.slideshare.net/xamat/10-lessons-learned-from-building-machine-learning-systems ). La premisa era que hay muchos libros excelentes para aprender ML, pero casi ninguno de ellos le cuenta sobre cuestiones importantes que solo puede aprender después de años “en el trabajo”. Para resumir, estos son algunos de los temas prácticos que se me ocurrieron:

  1. ¿Cuándo vale la pena aumentar sus datos, cuándo vale la pena aumentar la complejidad de su modelo y cuándo vale la pena hacer ambas cosas?
  2. Cómo ser inteligente para reducir el tamaño y la dimensionalidad de los datos
  3. Definir su problema en términos de buena capacitación y datos de prueba es a veces la mitad de la solución
  4. La mayoría de los sistemas de ML reales están sujetos a sesgos de retroalimentación de presentación. Tratarlo a través de modelos de navegación o estrategias de exploración / explotación suele ser un tema que no verá en la mayoría de los cursos.
  5. Muchas veces, lo más importante para resolver su problema relacionado con el LD es tener el enfoque y la métrica de evaluación correctos. Hay muy poco tiempo dedicado a esto en la mayoría de los cursos de ML.
  6. Con bastante frecuencia, los algoritmos de ML deben implementarse de manera distribuida / paralelizada. No creo que esto se trate en la mayoría de los cursos.
  7. La optimización de hiperparámetros, tal vez con la optimización bayesiana o los enfoques de bandidos multibrazos, rara vez se discute.
  8. La mayoría de los sistemas prácticos de ML necesitan hacer parte de sus cálculos fuera de línea y otros en línea. Aprender a diseñar algoritmos que puedan manejar ambos escenarios es importante y rara vez se enseña.

Sé que hay algunos cursos que pueden mencionar problemas relacionados, pero dada la importancia que he tenido de algunos de ellos, desearía que recibieran más atención.

Cuando me aventuré de EE / Physics-world a ML-world, el relativo desprecio por las unidades fue bastante discordante.

Hay cursos y libros de texto introductorios enteros sin mencionar unidades. Cuando aparecen, a menudo se disfraza de mejores prácticas / consideraciones prácticas:
– “¡A menudo ayuda a normalizar tus funciones!”
– “¿Has intentado tomar el registro?” *

en lugar de como un concepto de primera clase:
– “¿Qué métrica estás asumiendo implícitamente, y por qué tiene sentido en el contexto de tu algoritmo de agrupamiento / núcleo RBF / regularizador?”

Esto se ve agravado por el hecho de que muchas personas que estudian ML tienen antecedentes de CS puro y podrían no haber tratado con unidades desde el laboratorio de química de la escuela secundaria o lo que sea.

🙁

* – xkcd: Impostor

Cómo diseñar un sistema de aprendizaje automático que escala con datos. Me he encontrado con la mayoría de los temas mencionados en la respuesta de Martin en un curso u otro. Nunca he visto un curso de aprendizaje automático que en realidad discuta la construcción de sistemas que aprenden de (a diferencia del simple proceso) big data, es decir, miles de millones o billones de puntos de datos. Esto implica distribuir el algoritmo de aprendizaje en núcleos y clústeres con garantías de degradación de la solución debido a la aproximación, utilizando representaciones dispersas no solo para sus datos sino también para su modelo, utilizando estructuras de datos diferenciales para almacenar cambios para que todos los datos o modelos no tengan estar en la memoria todo el tiempo, etc.

Algunas áreas que vienen a la mente:

  1. Descomposición de la pregunta general a problemas de LD
  2. Imputación: diferentes tipos y razones para elegir diferentes tipos
  3. Limpieza de datos
  4. Elección de modelo y algoritmo
  5. Escalabilidad, distribución y paralelismo.
  6. Preprocesamiento de datos no estructurados / textuales
  7. (Casi) procesamiento de datos en tiempo real

Aparte de eso, algunos temas específicos solo se cubren en cursos especializados

  1. Modelos gráficos probabilísticos
  2. Aprendizaje semi-supervisado
  3. Aprendizaje reforzado
  4. Co-entrenamiento, clasificación colectiva, etc.

Teoría de la distribución, probabilidad condicional y simulación. Si los estudiantes entendieran el razonamiento detrás de POR QUÉ la máquina eligió un camino sobre otro (no simplemente cómo funcionaba un algoritmo en particular), avanzaría hacia la comprensión, en lugar de simplemente aceptar un resultado optimizado.

La mayoría de los cursos enseñan diferentes algoritmos pero no enseñan lo siguiente

  1. Selección de algoritmo
    ¿Cuándo usar qué?
  2. Algoritmos de depuración
    ¿Qué hacer si algo no funciona?

El consejo de Andrew Ng para aplicar Machine Learning es un gran recurso para comenzar a aprender estas cosas.

More Interesting

¿Dónde puedo ir para averiguar cómo extraer características de un documento de texto para usar en el entrenamiento de un clasificador?

¿Es el hecho de que los algoritmos de aprendizaje profundo requieren grandes extensiones de datos como una limitación final de su potencial en IA?

¿Qué debo buscar al comprar una computadora para ejecutar experimentos de Machine Learning?

¿En qué problemas sería buena / mala una máquina neural de Turing?

¿Qué computadora necesito para trabajar en aprendizaje profundo y redes neuronales?

Cómo realizar un detector de rectángulo con un fondo y un primer plano complejos

¿Es malo tener una gran cantidad de funciones en Machine Learning?

¿Se pueden programar las computadoras para comprender el valor estético de algo?

¿Qué tan importante es entender el cerebro para el aprendizaje profundo y viceversa?

¿Cómo puede llevar a cabo experimentos y compararlos con otros algoritmos en la investigación de la visión por computadora (detección de objetos, reconocimiento, seguimiento, etc.)?

¿Cómo se manejan las características categóricas en un modelo de mezcla gaussiana / modelo de agrupamiento?

¿Qué harás cuando entrenes a tu modelo?

¿Qué se debe considerar al decidir entre usar un algoritmo de filtrado colaborativo basado en el usuario y en el elemento?

¿Cómo evaluaría un sistema de recomendación si todo lo que tiene son calificaciones de elementos de usuario?

¿Cuál es la intuición detrás de la propagación hacia atrás?