Hay 3 ideas que me han resultado muy útiles en la práctica.
1) Uso de la complejidad de Rademacher como medida de rendimiento.
El mejor artículo es:
- ¿La IA está impulsando los mercados financieros?
- Cómo entrenar una red neuronal que aprende una operación de mapeo particular
- ¿Cuáles son los libros de aprendizaje automático más efectivos para programadores competitivos experimentados que no tienen conocimiento del aprendizaje automático?
- Inteligencia artificial: ¿por qué el aprendizaje profundo solo despegó en la década de 2010 y no antes?
- ¿Hay AI que pueda analizar JSON para un nombre de campo anidado particular?
http://pages.cs.wisc.edu/~jerryz…
Pero básicamente esto significa, aleatorizar las etiquetas en un conjunto de datos.
Suponga que alguien le proporciona un conjunto de datos y sospecha que las etiquetas son ruidosas o simplemente erróneas. Lo que hago es crear primero un modelo simple que funcione. Digamos, un modelo de bolsa de palabras para clasificar texto. Luego, agregue algo de ruido aleatorio a las etiquetas. En principio, el modelo debería degradar el rendimiento y debería rastrear la aleatoriedad añadida. Si no es así, puede usar esto para estimar el ruido en sus etiquetas.
2) La idea de réplicas para probar el aprendizaje transductivo.
Aquí, la idea proviene de Vapnik, a saber, que si puedes ‘crear’ una réplica de tus datos, entonces puedes probar la parte inductiva del teorema de VC probando primero la parte transductiva.
Entonces, en un sentido práctico, si desea hacer un aprendizaje transductivo o semi-supervisado, ¿necesita tener una forma de medir la calidad de su réplica? En otras palabras, si desea aprender de los datos no etiquetados, debe asegurarse de que sus datos no etiquetados tengan las mismas “propiedades estadísticas” que los datos etiquetados.
En una SVM transductiva, generalmente se supone que los datos no etiquetados tienen, en realidad, la misma fracción de datos etiquetados positivamente que el conjunto de datos etiquetados. (es decir, el parámetro T-SVM R) Pero también hay otras métricas, como ejecutar un algoritmo no supervisado para ‘predecir’ las etiquetas y luego verificar la métrica de la silueta
sklearn.metrics.silhouette_score – documentación de scikit-learn 0.17.1
o agregando un regularizador a la TSVM que implementa una métrica de agrupación no supervisada.
3) Saber si los límites de VC se escalan como 1 / N o 1 / sqrt (N)
Esto se explica mejor en el formalismo LUPI
SVM + / LUPI: Aprendizaje utilizando información privilegiada
Básicamente, la idea práctica es que si puede estimar la “confianza” de una etiqueta, puede agregar esto al modelo como un “peso de instancia”. En estos días, las buenas implementaciones de modelos como Random Forests y SVM permiten pesos de instancia. Por ejemplo, sklearn permite esto.
Por supuesto, tienes que estimar los pesos; He hecho esto con éxito usando algunas técnicas inteligentes de búsqueda de cuadrícula.