¿De qué se trata el aprendizaje automático en la práctica real?

11

Soy un recién llegado al aprendizaje automático (también algunas estadísticas), he estado aprendiendo conocimiento (algoritmos de aprendizaje supervisados ​​/ no supervisados, métodos de optimización relevantes, regularizaciones, algunas filosofías (como el equilibrio de sesgo-varianza)) por un tiempo. Sé que sin ninguna práctica real, no obtendría una comprensión profunda de esas cosas de aprendizaje automático.

Entonces comienzo con algún problema de clasificación con datos reales, digamos clasificación de dígitos escritos a mano (MNIST). Para mi sorpresa, sin ninguna característica de aprendizaje / ingeniería , la precisión alcanza 0.97 usando un clasificador de bosque aleatorio con valores de píxeles sin procesar como entrada. También probé otros algoritmos de aprendizaje, como SVM, LR con parámetros que se están ajustando.

Luego me perdí, ¿sería demasiado fácil o me estoy perdiendo algo aquí? Simplemente seleccione un algoritmo de aprendizaje del kit de herramientas y ajuste algunos parámetros.

Si eso fuera todo sobre el aprendizaje automático en la práctica, estaría perdiendo mi interés en este campo. Pensé y leí algunos blogs durante unos días, y llegué a algunas conclusiones:

  1. La parte más importante del aprendizaje automático en la práctica es la ingeniería de características , es decir, dada la información, encontrar una mejor representación de las características.

  2. Qué algoritmo de aprendizaje usar también es importante, también el ajuste de parámetros, pero la elección final es más sobre experimentación.

No estoy seguro de entenderlo correctamente, esperando que alguien pueda corregirme y darme alguna sugerencia sobre el aprendizaje automático en la práctica.

loganecols
fuente
1
No creo que pueda responder a su pregunta en su totalidad, pero me gustaría asegurarle que hay muchos problemas en los que los algoritmos / herramientas no son satisfactorios, además de la baja calidad de las características (en mi experiencia, las ciencias sociales abundan) con ambas situaciones). No creo que sea su única preocupación, pero parece incómodo por la facilidad de sus proyectos hasta ahora.
1
@Matthew, sí, me perdí sin saber por dónde empezar cuando me enfrento a un problema real, ¿debería analizar los datos para descubrir la naturaleza para poder extraer funciones útiles o simplemente elegir un algoritmo de aprendizaje y ejecutarlo?
aguacate
No abordaría un avión que vuela correctamente 97 veces de cada 100.
lcrmorin

Respuestas:

12

El aprendizaje automático (ML) en la práctica depende de cuál es el objetivo de hacer ML. En algunas situaciones, un preprocesamiento sólido y la aplicación de un conjunto de métodos ML listos para usar pueden ser lo suficientemente buenos. Sin embargo, incluso en estas situaciones, es importante comprender cómo funcionan los métodos para poder solucionar problemas cuando las cosas salen mal. Sin embargo, ML en la práctica puede ser mucho más que esto, y MNIST es un buen ejemplo de por qué.

Es engañosamente fácil obtener un "buen" rendimiento en el conjunto de datos MNIST. Por ejemplo, según el sitio web de Yann Le Cun sobre el rendimiento de MNIST , los vecinos más cercanos (K-NN) con la métrica de distancia euclidiana (L2) también tienen una tasa de error del 3%, lo mismo que su valor aleatorio inmediato bosque. L2 K-NN es tan simple como un algoritmo ML. Por otro lado, Yann, Yoshua, el mejor primer disparo de Leon & Patrick en este conjunto de datos, LeNet-4, tiene una tasa de error del 0.7%, 0.7% es menos de un cuarto del 3%, así que si pone este sistema en practicando la lectura de dígitos escritos a mano, el ingenuo algoritmo requiere cuatro veces más esfuerzo humano para corregir sus errores.

La red neuronal convolucional que usaron Yann y sus colegas está adaptada a la tarea, pero yo no llamaría a esto 'ingeniería de características', tanto como hacer un esfuerzo por comprender los datos y codificar esa comprensión en el algoritmo de aprendizaje.

Entonces, ¿cuáles son las lecciones?

  1. Es fácil alcanzar la línea de base de rendimiento ingenua utilizando un método listo para usar y un buen preprocesamiento. Siempre debe hacer esto, para saber dónde está la línea de base y si este nivel de rendimiento es o no lo suficientemente bueno para sus requisitos. Sin embargo, tenga cuidado, a menudo los métodos de ML listos para usar son 'frágiles', es decir, sorprendentemente sensibles al preprocesamiento. Una vez que haya entrenado todos los métodos listos para usar, casi siempre es una buena idea intentar empacarlos.
  2. Los problemas difíciles requieren conocimiento específico del dominio o muchos más datos o ambos para resolverlos. La ingeniería de características significa usar el conocimiento específico del dominio para ayudar al algoritmo ML. Sin embargo, si tiene suficientes datos, un algoritmo (o enfoque) que puede aprovechar esos datos para aprender características complejas, y un experto que aplica este algoritmo, a veces puede renunciar a este conocimiento (por ejemplo, el desafío Kaggle Merck ). Además, a veces los expertos en dominios están equivocados acerca de cuáles son las buenas características; así que más datos y experiencia en ML siempre es útil.
  3. Considere la tasa de error, no la precisión. Un método ML con una precisión del 99% comete la mitad de los errores que uno con una precisión del 98%; A veces esto es importante.
qdjm
fuente
2
+1, muchas gracias. Mientras leo su respuesta, si no tengo conocimiento específico del dominio para hacer ingeniería de características, entonces debería centrarme en inventar buenos métodos para hacer el aprendizaje de características usando los datos dados, y probar diferentes algoritmos de aprendizaje.
aguacate
@loganecolss O también puede leer lo que otras personas han hecho sobre datos similares o hablar con un experto en dominios.
qdjm
7

Creo que los ejemplos que encuentra en blogs o sitios web son ejemplos en los que se sabe que los métodos comunes funcionan bien (incluso si, por supuesto, pueden mejorarse).

Mi especialización es la ingeniería de características y puedo decirle que a menudo los algoritmos estándar no funcionan en absoluto. (No tengo ningún conocimiento del campo, pero a menudo trabajo con personas que lo tienen).

Aquí hay un problema real en el que trabajé durante 6 meses: dada una matriz X con 100 muestras y 10000 variables que representan el valor genético de los pacientes y una producción y de tamaño 100 x 1 que representa la densidad de los huesos.

¿Me puede decir qué genes influyen en la densidad de los huesos?

Ahora estoy trabajando en otro problema. Tengo un conjunto de datos de producción de fabricación con 2000 muestras y 12000 variables. A mi jefe le gustaría extraer de este conjunto de datos no más de 30 variables de manera no supervisada.
He intentado algunos algoritmos pero no puedo elegir menos de 600 variables porque están muy correlacionadas entre ellas. (Todavía estoy trabajando en esto ...)

Otro pensamiento importante a considerar es el rendimiento de la velocidad de los diversos algoritmos. En muchas situaciones no puede esperar 20 minutos esperando un resultado. Por ejemplo, necesita saber cuándo usar NIPALS y cuándo usar SVD para calcular PCA.

Espero que esto pueda darle una idea de los problemas que son comunes en ml.

Donbeo
fuente
Gracias por su consejo, parece como si no se acercó problemas como ese, interesante. n<<p
aguacate