En el aprendizaje automático, ¿son siempre más datos mejores que mejores algoritmos?

No. Hay momentos en que más datos ayudan, hay momentos en que no ayuda.

Probablemente una de las citas más famosas que defienden el poder de los datos es la del Director de Investigación de Google, Peter Norvig, afirmando que “No tenemos mejores algoritmos. Solo tenemos más datos”. Esta cita generalmente está vinculada al artículo sobre “La efectividad irracional de los datos”, en coautoría del propio Norvig (probablemente debería poder encontrar el pdf en la web, aunque el original está detrás del muro de pago IEEE). El último clavo en el ataúd de mejores modelos es cuando Norvig se cita erróneamente diciendo que “Todos los modelos están equivocados, y de todos modos no los necesita” (lea aquí para ver las aclaraciones del autor sobre cómo fue citado incorrectamente).

El efecto que Norvig et. Al que se referían en su artículo, ya habían sido capturados años antes en el famoso artículo de los investigadores de Microsoft Banko y Brill [2001] “Escalando a corporaciones muy muy grandes para la desambiguación del lenguaje natural”. En ese documento, los autores incluyeron la siguiente trama.

Esa figura muestra que, para el problema dado, algoritmos muy diferentes realizan prácticamente lo mismo. sin embargo, agregar más ejemplos (palabras) al conjunto de entrenamiento aumenta monotónicamente la precisión del modelo.

Entonces, caso cerrado, podrías pensar. Bueno … no tan rápido. La realidad es que tanto las afirmaciones de Norvig como el artículo de Banko y Brill tienen razón … en un contexto. Pero, de vez en cuando, se citan erróneamente en contextos que son completamente diferentes a los originales. Pero, para entender por qué, necesitamos ser un poco técnicos. (No planeo dar un tutorial completo de aprendizaje automático en esta publicación. Si no comprende lo que explico a continuación, lea mi respuesta a ¿Cómo aprendo aprendizaje automático?)

¿Varianza o sesgo?

La idea básica es que hay dos razones posibles (y casi opuestas) por las que un modelo podría no funcionar bien.

En el primer caso, podríamos tener un modelo que es demasiado complicado para la cantidad de datos que tenemos. Esta situación, conocida como alta varianza , conduce al sobreajuste del modelo. Sabemos que nos enfrentamos a un problema de alta varianza cuando el error de entrenamiento es mucho más bajo que el error de prueba. Los problemas de alta varianza pueden abordarse reduciendo el número de características y … sí, aumentando el número de puntos de datos. Entonces, ¿con qué tipo de modelos estaban tratando Banko & Brill y Norvig? Sí, lo entendiste bien: alta variación. En ambos casos, los autores estaban trabajando en modelos de lenguaje en los que aproximadamente cada palabra del vocabulario hace una característica. Estos son modelos con muchas características en comparación con los ejemplos de capacitación. Por lo tanto, es probable que se sobreajusten. Y sí, en este caso será útil agregar más ejemplos.

Pero, en el caso opuesto, podríamos tener un modelo que sea demasiado simple para explicar los datos que tenemos. En ese caso, conocido como alto sesgo , agregar más datos no ayudará. Vea a continuación una trama de un sistema de producción real en Netflix y su rendimiento a medida que agregamos más ejemplos de capacitación.

Entonces, no, más datos no siempre ayudan . Como acabamos de ver, puede haber muchos casos en los que agregar más ejemplos a nuestro conjunto de entrenamiento no mejorará el rendimiento del modelo.

Más funciones al rescate

Si está conmigo hasta ahora, y ha hecho su tarea para comprender los problemas de alta varianza y sesgo, podría estar pensando que deliberadamente he dejado algo fuera de la discusión. Sí, los modelos de alto sesgo no se beneficiarán de más ejemplos de capacitación, pero podrían beneficiarse de más características. Entonces, al final, se trata de agregar “más” datos, ¿verdad? Bueno, de nuevo, depende.

Tomemos el Premio Netflix, por ejemplo. Al principio del juego, hubo una publicación en el blog del emprendedor en serie y el profesor de Stanford, Anand Rajaraman, comentando sobre el uso de funciones adicionales para resolver el problema. La publicación explica cómo un equipo de estudiantes obtuvo una mejora en la precisión de la predicción al agregar características de contenido de IMDB.

En retrospectiva, es fácil criticar la publicación por hacer una generalización general desde un solo punto de datos. Aún más, la publicación de seguimiento hace referencia a SVD como uno de los algoritmos “complejos” que no vale la pena probar porque limita la capacidad de escalar a un mayor número de características. Claramente, los estudiantes de Anand no ganaron el Premio Netflix, y probablemente ahora se den cuenta de que SVD tuvo un papel importante en la entrada ganadora.

De hecho, muchos equipos demostraron más tarde que agregar características de contenido de IMDB o similares a un algoritmo optimizado tenía poca o ninguna mejora. Algunos de los miembros del equipo Gravity, uno de los principales contendientes para el Premio, publicaron un documento detallado en el que mostraban cómo esas características basadas en contenido no agregarían ninguna mejora al enfoque de factorización de matriz de filtrado colaborativo altamente optimizado. El documento se tituló “Recomiendo nuevas películas: incluso algunas clasificaciones son más valiosas que los metadatos”.

Para ser justos, el título del artículo también es una generalización excesiva. Las características basadas en contenido (o diferentes características en general) podrían mejorar la precisión en muchos casos. Pero, vuelvo a entender mi punto: más datos no siempre ayudan .

¡Mejores datos! = Más datos (se agregó esta sección en respuesta a un comentario)

Es importante señalar que, en mi opinión, mejores datos siempre son mejores. No hay discusión en contra de eso. Por lo tanto, cualquier esfuerzo que pueda dirigir para “mejorar” sus datos siempre está bien invertido. El problema es que mejores datos no significan más datos. De hecho, ¡a veces puede significar menos !

Piense en la limpieza de datos o la eliminación de valores atípicos como una ilustración trivial de mi punto. Pero, hay muchos otros ejemplos que son más sutiles. Por ejemplo, he visto personas que invierten mucho esfuerzo en implementar la factorización matricial distribuida cuando la verdad es que probablemente podrían haber obtenido muestras de sus datos y haber obtenido resultados muy similares. De hecho, realizar alguna forma de muestreo inteligente en su población de la manera correcta (p. Ej., Utilizando muestreo estratificado) puede obtener mejores resultados que si utilizara todo el conjunto de datos sin filtrar.

¿El fin del método científico?

Por supuesto, cada vez que hay un acalorado debate sobre un posible cambio de paradigma, hay personas como Malcolm Gladwell o Chris Anderson que se ganan la vida calentando aún más (no me malinterpreten, soy fanático de ambos, y he leído la mayoría de sus libros). En este caso, Anderson recogió algunos de los comentarios de Norvig y los citó erróneamente en un artículo titulado: “El fin de la teoría: el diluvio de datos hace obsoleto el método científico”.

El artículo explica varios ejemplos de cómo la abundancia de datos ayuda a las personas y a las empresas a tomar decisiones sin siquiera tener que entender el significado de los datos en sí. Como Norvig mismo señala en su refutación, Anderson tiene algunos puntos correctos, pero va más allá para tratar de hacerlos. Y el resultado es un conjunto de declaraciones falsas, comenzando por el título: el diluvio de datos no hace que el método científico quede obsoleto. Yo diría que es más bien al revés.

Datos sin un enfoque sólido = ruido

Entonces, ¿estoy tratando de señalar que la revolución de Big Data es solo una exageración? De ninguna manera. Tener más datos, tanto en términos de más ejemplos como de más características, es una bendición. La disponibilidad de datos permite más y mejores conocimientos y aplicaciones. De hecho, más datos permiten mejores enfoques. Más que eso, requiere mejores enfoques.

En resumen, debemos descartar las voces simplistas que proclaman la inutilidad de la teoría o los modelos, o el triunfo de los datos sobre estos. Tanto como se necesitan datos, también se necesitan buenos modelos y teorías que los expliquen. Pero, en general, lo que necesitamos son buenos enfoques que nos ayuden a comprender cómo interpretar los datos, los modelos y las limitaciones de ambos para producir el mejor resultado posible.

En otras palabras, los datos son importantes. Pero, los datos sin un enfoque de sonido se convierten en ruido.

( Nota : esta respuesta se basa en una publicación que publiqué anteriormente en mi blog: ¿más datos o mejores modelos?)

Actualización 01/2017

Recientemente escribí otra respuesta muy relacionada: la respuesta de Xavier Amatriain a In AI, ¿son los datos más importantes que los algoritmos? Ese aborda la diferencia entre AI y ML, pero también representa una actualización de este, ya que estoy hablando de los recientes avances de Deep Learning. Pensé que tendría sentido copiar aquí esa sección en particular:

En los enfoques modernos de Deep Learning, ¿los datos son más importantes que los algoritmos?

Bueno, de nuevo, sí y no. Es cierto que estos enfoques son muy “hambrientos de datos”. Sin entrar en muchos detalles, los algoritmos de aprendizaje profundo tienen muchos parámetros que deben ajustarse y, por lo tanto, necesitan una gran cantidad de datos para obtener modelos algo generalizables. Entonces, en ese sentido, tener una gran cantidad de datos es clave para obtener buenos conjuntos de capacitación para esos enfoques.

De hecho, algunos han explicado que existe una relación directa entre la aparición de grandes conjuntos de datos públicos como Imagenet y los avances de investigaciones recientes. Sin embargo, tenga en cuenta que esto resalta que, al menos en algunos dominios, la existencia de conjuntos de datos públicos hace que los datos sean menos una ventaja competitiva.

Fei-fei Li , directora del laboratorio de IA de Stanford

Además, lo interesante de algunos de esos algoritmos y enfoques es que a veces pueden ser “pre-entrenados” por el propietario del conjunto de datos y luego aplicados por muchos usuarios. En estos casos, los datos tienden a ser menos necesarios. Una manera fácil de entender esto es lo siguiente: si tiene que entrenar un modelo para traducir del inglés al español, todo lo que necesita hacer es reunir un gran conjunto de datos y entrenar el modelo una vez. El modelo en sí lleva toda la información, por lo que cualquiera que pueda obtenerla ya no necesita los datos originales. Por ejemplo, el famoso modelo Googlenet de 22 capas está disponible para descargar en diferentes modelos (por ejemplo, el modelo Keras).

Entonces, una vez más, incluso para estas aplicaciones ávidas de datos, la respuesta no siempre es clara: es necesario tener grandes cantidades de datos para aprovechar los últimos avances. Dicho esto, si está tratando de impulsar el estado del arte y encontrar aplicaciones muy concretas, sí, necesitará tener datos internos que pueda aprovechar para entrenar su nuevo enfoque de aprendizaje profundo.

Xavier tiene una excelente respuesta desde un punto de vista empírico. Aquí está mi intento de respuesta desde un punto de vista teórico.

Desde un punto de vista de regresión pura y si tiene una muestra verdadera, el tamaño de los datos más allá de un punto no importa. Hay un valor decreciente al agregar observaciones desde un punto de vista de error cuadrático medio.

Pero, grandes conjuntos de datos pueden ayudar en las siguientes situaciones.
1. Subconjunto de datos por alumno base: la mayoría de los procedimientos de LD funcionan en la aplicación de un alumno base (como la función de pérdida MSE) en un subconjunto de datos. Por lo tanto, las necesidades agregadas de un conjunto de datos más grande aumentan si tiene muchos alumnos de base. es decir, si 10,000 observaciones fueron suficientes para la regresión y ahora tienes 10 estudiantes base, necesitarás 100,000 observaciones porque cada estudiante tomará 10,000. En el árbol de decisión, debe observar la cantidad de observaciones disponibles en cada nodo. Por lo tanto, si tiene un conjunto de datos grande, puede crear un árbol muy profundo y luego podarlo más tarde para evitar el sobreajuste.

2. Muestras verdaderas representativas: a menudo, las muestras que obtiene no son verdaderas muestras representativas. Y obtener el universo de datos garantiza que, de forma predeterminada, obtendrá un espacio de muestra verdaderamente representativo. Específicamente en la minería de texto, es difícil obtener una muestra verdadera que cubra todos los casos. Por lo tanto, no me sorprende que los resultados de Peter Norvig en la respuesta de Xaviers se basaran en la minería de texto para la web. Y, en el conjunto de datos de Netflix, no hay mucha diferencia con respecto al gran conjunto de datos porque probablemente no tenga muchas variables y 10,000 calificaciones o 100,000 calificaciones le dan la misma muestra.

[Asumo que esto está en contexto de algoritmos de aprendizaje].

Sí. Más datos supera a mejores algoritmos.
Analicemos esto paso a paso:
En el aprendizaje automático, los datos lo son todo.

El aprendizaje se trata de generalizar de una muestra a una población .

Cuanto más grande sea la muestra, mejores serán las generalizaciones que puede lograr. Estadísticamente, veamos por qué esto es cierto.
Considere, por ejemplo, una muestra [matemática] X = \ {x_1, x_2, \ ldots, x_n \} [/ matemática] de tamaño [matemática] n [/ matemática] y suponga que estamos tratando de estimar la media de población [matemáticas] \ mu [/ matemáticas] con el estimador [matemáticas] \ mu ‘= \ frac {1} {n} \ cdot \ sum_ {i = 1} ^ {n} x_i [/ ​​matemáticas]. Entonces, el error estándar de este estimador es inversamente proporcional a [matemática] n [/ matemática]. Además, tener un valor mayor de [matemáticas] n [/ matemáticas] conduce a un intervalo de confianza más estricto para la estimación.
Dado que el aprendizaje [al menos para un problema de clasificación binaria, afaik] se puede incluir fácilmente en el problema de estimar la probabilidad de una u otra clase, estas reglas se aplican directamente. Puede echar un vistazo a los límites de la Unión, la desigualdad de Hoeffding y la Dimensión VC para una mejor comprensión de esto. De las desigualdades se deducirá que más datos conducen a un mejor comportamiento de generalización.

Permítanme escribir la desigualdad aquí, en aras de la explicación adicional:
[math] \ mathbb {P} [| E_ {out} – E_ {in} | \ geq \ epsilon] \ leq t_h (n, \ epsilon) [/ math]. Tenga en cuenta que [math] E_ {out} \ textit {y} E_ {in} [/ math] son ​​los errores en la población ( error de generalización ) y la muestra ( error de entrenamiento ) respectivamente y [math] h [/ math] es el conjunto de hipótesis [el conjunto de todas las funciones posibles bajo el modelo definido; por ejemplo, todas las funciones lineales] bajo consideración.
Cuando tiene una gran cantidad de datos, es fácil reducir el término de la mano derecha a un número muy pequeño, y dado que [math] n [/ math] es muy grande, [math] \ epsilon [/ math] para diferentes Los modelos se pueden llevar a valores casi exactamente similares, lo que lleva a un rendimiento similar en todos los algoritmos.

En pocas palabras, aumentar la cantidad de datos mejora el error de generalización de cada algoritmo. Pero, para grandes cantidades de datos, las mejoras comienzan a ser insignificantes. Y a menos que el algoritmo sea muy malo, todos se establecerán a un cierto nivel de precisión.

Y, por supuesto, la respuesta no estaría completa sin este gráfico [Soure: Página en lancs.ac.uk]

Además, vaya a Más datos generalmente supera mejores algoritmos y En Aprendizaje automático, Qué es mejor: Más datos o mejores algoritmos.

Mi posición es que más datos superan a los mejores algoritmos. Por supuesto, supongo que todos los datos son representativos de la población y que no se trata solo de ruido [francamente, si es ruido, nada funcionará en eso] .

No, realmente depende del patrón que intente modelar y de cómo sus datos realmente lo representen.

Si los datos representan bien su señal pero la señal es muy compleja o no lineal, no necesita más datos, necesita un mejor modelo.

Si los datos están sucios / ruidosos y el patrón es muy simple, un algoritmo simple puede funcionar, pero necesita más datos para tener un mejor conjunto para aprender.

Existe una gran literatura sobre el submuestreo y cómo afecta la precisión de los modelos. Es posible que se sorprenda al ver que, en muchos casos, menos datos proporcionan un modelo muy similar.

Más datos son clave cuando su señal es muy compleja, pero también significa que necesita un modelo complejo para extraer esta señal …

También los modelos complejos (gbm, aprendizaje profundo …) necesitan muchos datos para evitar el sobreajuste.

Como consejo, el aprendizaje automático es un campo muy experimental, no se plantee hipótesis, realice las pruebas y valide sus resultados de forma cruzada, ¡esta es la única verdad!

Respuesta corta: claramente depende de la aplicación

El aprendizaje automático es un campo extremadamente amplio. La definición que más me gusta es la del Prof. Abu-Mostafa.

El aprendizaje automático se aplica a cualquier situación en la que hay datos que estamos tratando de entender y una función objetivo que no podemos precisar matemáticamente. El objetivo del aprendizaje automático es aproximar o descubrir esta función objetivo.

Según esta definición, no todas las áreas del aprendizaje automático están asociadas con “big data”. De hecho, una de las áreas más interesantes y recientes está relacionada con el sentido de los datos pequeños, es decir, la detección comprimida.

Hay un pequeño subconjunto de dominios de aplicación donde estamos inundados de datos. Los ejemplos están relacionados con la publicidad en línea, las redes sociales, la biología computacional, etc. En tales casos, la investigación de ML se ha centrado en gran medida en formas de manejar efectivamente grandes conjuntos de datos en lugar de encontrar el modelo óptimo con garantías demostrables. Esto tiene sentido, incluso si tiene un algoritmo para encontrar excelentes modelos y demostrar muy buenas propiedades, simplemente se volvería intratable. Por otro lado, arrojar suficientes datos incluso a algoritmos subóptimos tenderá a producir buenos resultados en la práctica. Siempre existe una compensación de este tipo, y la dirección en la que se procede depende en gran medida de lo que exige la aplicación.

En resumen, más datos siempre son mejores, uno debe tratar de recopilarlos siempre que el costo de adquisición de datos no sea demasiado alto. Los mejores algoritmos (en sentido estadístico o teórico) no siempre son mejores, si no se pueden usar. Sin embargo, mejores algoritmos (en requisitos computacionales) que pueden coincidir con las propiedades estadísticas del estado de la técnica pueden ganar una fortuna.

Más datos aumentan la probabilidad de que contenga información útil, lo cual es ventajoso. Sin embargo, no todos los datos son siempre útiles.

Un buen ejemplo son los datos de flujo de clics utilizados por las plataformas de comercio electrónico donde se monitorean las acciones de un usuario. Dichos datos incluyen áreas de la página en las que se hace clic, posiciones del cursor y componentes de la página web visibles. Esta es una gran cantidad de datos que ingresan rápidamente, pero solo una fracción es útil para predecir las características y preferencias de un usuario. El resto es ruido.

Piense por qué existen las técnicas de selección variable. ¿Por qué existe la reducción de dimensionalidad? Todos los datos casi nunca se usan en el análisis. Las funciones disponibles deben afectar significativamente el valor de la variable de respuesta. Las muestras deben representar datos de ejemplo del mundo real que tienen una buena posibilidad de ser encontrados en el futuro. Entrenar su sistema para predecir eventos que nunca suceden perjudica más de lo que ayuda.

Antigua pregunta. Cuántos datos son suficientes. Solo he visto respuestas en la negación.

Aquí hay un ejemplo simple. Para dibujar una superficie discriminante lineal simple, solo necesita conocer dos puntos EN esa línea. ¿Qué harías con más datos?

Tener datos es bastante útil si los datos varían en función de lo que la máquina necesita aprender. También puede hacer particiones de los datos como diferentes conjuntos de entrenamiento y luego hacer una validación para cada combinación.

De hecho, “más” datos tienen otros problemas como sobreentrenamiento / sobreajuste (ver aquí: sobreajuste)

Más datos en principio, es bueno. Pero en realidad es importante tener el tipo correcto de datos. El muestreo de datos de entrenamiento de su dominio objetivo real siempre es importante. Incluso dentro de un dominio, importa cómo muestreas. Aquí hay un ejemplo de reconocimiento de voz:

  • Yi Wu, Rong Zhang y Alexander Rudnicky Selección de datos para reconocimiento de voz. Actas de ASRU , Kyoto, Japón, diciembre de 2007.

Quizás la forma correcta de expresarlo es que las opciones de modelado y el enfoque de muestreo de datos importan conjuntamente. Para tomar las decisiones correctas, asegúrese de comprender realmente tanto su dominio como su modelado.

¡Esto depende de los datos realmente! En realidad, es demostrable que más datos serán mejores. Para los vecinos más cercanos, por ejemplo, este es precisamente el caso, y por qué se considera un “alumno basado en la memoria” o un clasificador consistente.

Pero, en general, depende en gran medida de lo fácil que sea tomar una muestra de la población, y si incluso lo hizo correctamente. A veces, el ruido es mucho mayor que la señal, por ejemplo, una medición fisiológica como EEG o fMRI. Entonces, el modelo de ruido que elija (es decir, el diseño de su algoritmo) es un componente importante. En este ejemplo, el modelo de ruido es el sesgo que introduce. Entonces, como otros han dicho con gran detalle, esta pregunta es otra forma de discutir el equilibrio de sesgo-varianza.

Los algoritmos son necesarios para el aprendizaje automático pero no son suficientes. Más datos realistas que se consumen y procesan (con los algoritmos correctos), más sería el aprendizaje (útil).

No. La calidad de los datos siempre ganará. Grandes cantidades de datos inexactos producirán resultados inexactos.

Si solo los algoritmos supieran más de lo que estaban buscando, entonces los datos serían menos importantes. Pero por ahora, todavía dependemos de todos los diferentes tipos de conjuntos de datos.