¿El aprendizaje automático es un sueño?

12

A medida que descubro el aprendizaje automático, veo diferentes técnicas interesantes como:

  • ajusta automáticamente los algoritmos con técnicas como grid search,
  • obtener resultados más precisos mediante la combinación de diferentes algoritmos del mismo "tipo", es decir boosting,
  • obtener resultados más precisos mediante la combinación de diferentes algoritmos (pero no el mismo tipo de algoritmos), es decir stacking,
  • y probablemente mucho más que aún tengo que descubrir ...

Mi pregunta es la siguiente: hay todas esas piezas. Pero, ¿es posible juntarlos para crear un algoritmo que tome como entrada datos limpios y genere buenos resultados al sacar lo mejor de todas las técnicas? (Por supuesto, probablemente será menos eficiente que un científico de datos profesional, ¡pero será mejor que yo!) En caso afirmativo, ¿tiene códigos de muestra o conoce marcos que puedan hacer eso?

EDITAR: Después de algunas respuestas, parece que hay que hacer algunos ajustes. Tomemos un ejemplo, tenemos una columna con datos categóricos, llamémosla yy queremos predecirla a partir de datos numéricos Xque sean dummies o datos numéricos reales (altura, temperatura). Asumimos que la limpieza se ha realizado previamente. ¿Existe algún algoritmo que pueda tomar esos datos y generar una predicción? (probando varios algoritmos, ajustándolos, aumentando, etc.) En caso afirmativo, ¿es computacionalmente eficiente (los cálculos se realizan en un tiempo razonable si lo comparamos con el algoritmo normal), y ¿tiene un ejemplo de código?

Pholochtairze
fuente
1
Probablemente no hasta que haya una IA fuerte.
gung - Restablece a Monica
1
Con respecto al ajuste automático, es posible que le interese leer sobre la búsqueda de hiperparámetros en el aprendizaje automático . La búsqueda de cuadrícula es una forma terrible de optimizar los hiperparámetros.
Marc Claesen
2
Qué usted tiene que usar tanto el formato ?
Sycorax dice Reinstate Monica
2
Hay productos que afirman que hacen lo que usted describe, por ejemplo, Crystal Ball . Personalmente, no confío en ellos, pero como escribiste: hacen el trabajo mejor que alguien que no tiene idea de las estadísticas
Aksakal
1
Para pronosticar auto.arima(desde la forecastbiblioteca) puede ser mejor que los humanos, Rob Hyndman lo mencionó varias veces en sus presentaciones. Por lo tanto, hay áreas donde se aplican con éxito algunos tipos de "aprendizaje automático".
Tim

Respuestas:

7

Si sabe de antemano en qué tipo de datos ingresará ("estas son ventas mensuales de GPC, con precios y marcadores de promoción, y quiero un pronóstico puntual"), para que pueda ajustar su configuración con anticipación, probablemente será posible y ya hecho, vea varios "sistemas expertos" para ciertas tareas específicas.

Si está buscando algo que pueda tomar cualquier tipo de datos y hacer "algo útil" ("ah, aquí se supone que debo reconocer los códigos postales de escritura y salida, y allí debería hacer detección de fraude, y este archivo de entrada obviamente es una tarea de calificación crediticia "), no, no creo que eso suceda en mucho tiempo.

Perdón por una respuesta basada en la opinión a lo que bien podría cerrarse como una pregunta basada en la opinión.


EDITAR para abordar la pregunta editada:

yX

y

Stephan Kolassa
fuente
He editado mi pregunta gracias a usted, hay una primera parte "tome cualquier entrada y tíreme el resultado" y su respuesta es realmente perspicaz, y una segunda parte "para un tipo particular de preguntas y formato de datos, encuéntreme el resultado".
Pholochtairze
No estoy seguro de que el último párrafo siga vigente, dado el inmenso éxito del aprendizaje profundo en una gran variedad de problemas. Estos métodos son definitivamente de uso general, sin embargo, contienen registros en varios dominios de aplicación, como visión por computadora y PNL. Se podría argumentar que las arquitecturas difieren entre las tareas, pero en un nivel teórico, una red profunda completamente conectada funcionaría al menos tan bien como, por ejemplo, las redes convolucionales, es solo que los métodos de capacitación adecuados siguen siendo esquivos.
Marc Claesen
@MarcClaesen: Diría que "es solo que los métodos de capacitación adecuados siguen siendo esquivos" son el punto en el que aún necesitará experiencia específica de dominio.
Stephan Kolassa
7

Lo que describe ya existe hasta cierto punto, por ejemplo en AutoWEKA , y se está investigando activamente (por ejemplo, desafíos como el AutoML de Chalearn ).

Esto generalmente se considera en el subcampo de optimización de hiperparámetros. Los paquetes de software como Optunity , Hyperopt y ParamILS se pueden usar para optimizar automáticamente los hiperparámetros para un enfoque determinado y elegir qué enfoque es el mejor. Dicho esto, tales problemas de optimización no son triviales y, por lo general, lleva mucho tiempo obtener automáticamente el mejor modelo (o cercano).

Puede encontrar un ejemplo del uso de Optunity para determinar automáticamente el mejor algoritmo de aprendizaje y optimizar sus hiperparámetros en http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html

Marc Claesen
fuente
4

Los avances en la sintonización de hiperparámetros y los modelos de conjunto están sacando gran parte del 'arte' de la construcción de modelos. Sin embargo, hay dos aspectos importantes de la construcción de modelos que el ajuste de hiperparámetros y los conjuntos no tienen en cuenta y le impedirán encontrar el mejor modelo posible.

Primero, ciertos tipos de algoritmos son mejores para modelar ciertos tipos de datos. Por ejemplo, si hay interacciones entre sus variables, un modelo aditivo no las va a encontrar, pero sí un árbol de decisión. Saber cómo se comportan los modelos en diferentes conjuntos de datos y elegir el correcto puede requerir conocimiento sobre el dominio para encontrar el mejor algoritmo de modelado.

En segundo lugar, la ingeniería de características y la extracción de características es el verdadero 'arte' para modelar la construcción. Su pregunta supone que el conjunto de datos ya está preparado. Pero lo que no debe suponer es que el conjunto de datos es la mejor representación posible de lo que está tratando de modelar. Esta es siempre una pregunta abierta. En muchos casos, donde el conjunto de datos es complejo, puede diseñar funciones durante todo el día, pero corre el riesgo de arrojar más y más ruido al algoritmo. Para saber qué características agregar, debe saber qué características tienen sentido desde una perspectiva estadística y cuáles tienen sentido desde la perspectiva del experto en el dominio.

Por esas dos razones, concluyo que no, no podrá encontrar un algoritmo que encuentre automáticamente el mejor modelo posible . Esta es también la razón por la que soy escéptico con respecto a los proveedores de software que ofrecen herramientas que reemplazarán la necesidad de científicos de datos.

Sin embargo, si está reduciendo su ambición de encontrar el mejor modelo de un conjunto fijo de modelos, con hiperparámetros óptimos, donde 'mejor' se define como la mayor precisión predictiva en un conjunto de entrenamiento, entonces sí, esto es posible.

Consulte el caretpaquete Rcomo un ejemplo de cómo ajustar modelos automáticamente. caretusa la búsqueda de cuadrícula, que tiene fallas, y solo construye un modelo a la vez. Sin embargo, hay funciones para comparar modelos y envoltorios convenientes para una larga lista de modelos de muchos Rpaquetes diferentes .

Brandco
fuente
Estoy de acuerdo en que todavía estamos lejos del aprendizaje automático totalmente automatizado, pero no por las razones que especifique. Dos cosas: (i) encontrar el mejor modelo (+ optimizar sus hiperparámetros) de un conjunto dado ya es posible y (ii) la ingeniería de características y la extracción de características están perdiendo importancia debido a los avances en el aprendizaje profundo. Lo principal que nos falta actualmente son formas automatizadas de incorporar conocimiento previo y sentido común específico del campo.
Marc Claesen
Supongo que no veo cómo el "conocimiento previo y el sentido común específico del campo" puede mejorar el proceso de LD, excepto para ayudar a (i) encontrar el mejor modelo y (ii) encontrar las mejores características. Traté de distinguir entre modelos verdaderos y modelos óptimos (precisión máxima) con el penúltimo párrafo.
brandco
para descubrir defectos obvios en el proceso de modelado, como etiquetas erróneas y / o fugas de información, cómo lidiar con los datos faltantes, identificar la tarea de aprendizaje real (+ una función adecuada de puntaje / pérdida) y generalmente hacer una limpieza completa de los datos (que siempre ha sido el principal esfuerzo en todos los problemas prácticos en los que he estado involucrado).
Marc Claesen
2

Depende de a quién le preguntes.

Recientemente escuché una charla de Scott Golder en Context Relevant . Su producto es esencialmente un robot de selección de características y modelos. El modelo básico subyacente es la regresión logística, pero el sistema básicamente utiliza el aprendizaje automático para descubrir la combinación correcta de selección de características, reducción de dimensiones, regularización, etc. para generar predicciones precisas. Fue una charla muy impresionante, y todos los detalles son muy exclusivos. Aparentemente, sus clientes incluyen compañías financieras importantes y el sistema puede manejar conjuntos de datos arbitrariamente masivos.

Entonces, al menos algunas personas parecen pensar que la ciencia de datos automatizada ya está aquí, al menos para ciertas aplicaciones. Y algunas de esas personas (clientes de Context Relevant) aparentemente están pagando por la nariz para acceder a ella.

Shadowtalker
fuente
1

No, no es un sueño. Hemos implementado esto (la combinación de todas las técnicas que mencionó, incluidos los conjuntos apilados) en la biblioteca de aprendizaje automático H2O . Puede leer más al respecto y encontrar ejemplos de código en R y Python aquí .

Erin LeDell
fuente