¿Cuál es la mejor manera de crear un conjunto de capacitación para el aprendizaje automático?

Los datos de entrenamiento deben estar lo más cerca posible de los datos reales que espera ver. Debes evitar usar un subconjunto sesgado de posibles ejemplos de entrenamiento porque entonces tu clasificador entrenado probablemente funcionará mal en el resto del espacio de entrada.
La cantidad de datos que necesita depende de la complejidad del concepto que la máquina está tratando de aprender.

  • Idealmente, use un conjunto de datos grande y previamente etiquetado. Por ejemplo, si intentaba predecir el clima, sería excelente utilizar datos de entrenamiento históricos que ya estaban etiquetados.
    También puede encontrar una amplia variedad de conjuntos de datos etiquetados aquí: http://archive.ics.uci.edu/ml/da…
  • Si esto no es posible, el siguiente mejor enfoque sería etiquetar los datos a mano. Para la clasificación de la escritura a mano, por ejemplo, podría tomar muchas muestras de texto escrito a mano y tener una etiqueta humana.
    La desventaja de este enfoque es que lleva mucho tiempo. Podrías externalizar esto a un servicio similar a Mechanical Turk o construir un juego que produzca ejemplos de entrenamiento etiquetados, si vale la pena el esfuerzo.
  • Si el algoritmo interactúa con los usuarios, podría recopilar comentarios de los usuarios (por ejemplo, ¿se aceptó o rechazó la ‘recomendación’ aprendida por la máquina?) Para desarrollar aún más su conjunto de datos de capacitación, si su política de privacidad le permite hacerlo.

Es difícil entrar más en detalles porque no sé exactamente qué tipo de datos está tratando de recopilar. ¿Puedes dar más detalles sobre la situación?

En mi humilde opinión, la creación del conjunto de entrenamiento (TS) está muy poco apreciada en el art. Con demasiada frecuencia para un proyecto de Machine Learning (ML), los costos de tiempo, dinero y esfuerzo para recopilar y etiquetar los datos se consideran más importantes que el valor de tener un TS “bueno”.

Si eres Google, entonces tienes los recursos para guardarlo todo y la potencia de cálculo para usar ML para entrenar en todo (menos el conjunto de prueba y validación).

De lo contrario, tienes que hacer algunas compensaciones.

He tenido éxito en la práctica, aunque creo que algunos pueden palidecer por las consecuencias teóricas …

Para ser sincero, soy el primero en admitir que mi enfoque es un completo fracaso con las técnicas bayesianas porque destruye las probabilidades anteriores.

Un descubrimiento que hice fue que las etiquetas incorrectas tienen un efecto negativo en el modelo: se necesitan entre 5 y 10 etiquetas correctas para deshacer los efectos de una etiqueta incorrecta. Para mí, la precisión de la etiqueta es primordial, aunque muchos algoritmos de ML pueden tratar hasta cierto punto con etiquetas incorrectas.

En primer lugar, trato de hacer que el etiquetado de los datos sea lo más preciso y coherente posible. Desafortunadamente, eso significaba que tenía que juzgar la mayor parte de mí mismo hasta tener una buena idea de cómo deberían establecerse mis criterios. Luego tuve que explicárselo a los trabajadores dispuestos y competentes. Además, tendría sesiones de retroalimentación para revisar las pautas en caso de que me haya perdido algo. Subcontratar a los jueces es una idea terrible, ya que pierdes el control de este proceso.

En segundo lugar, después de construir un modelo, escaneé las predicciones incorrectas en el TS original e intenté ver si esto era el resultado de una mala etiqueta. Si no, entonces trataría de ver el ejemplo mal predicho para ver si había algo inusual al respecto. A menudo, me encontré con nuevas ideas de características. Más importante aún, encontraría ejemplos de adición que son similares pero diferentes.

Tercero, siempre ejecuto un modelo Tree porque la importancia variable se extrae fácilmente. Miro las variables más importantes y trato de entender cómo funcionan. Luego busco activamente encontrar ejemplos adicionales que funcionen en contra de la función. Esto ayuda a evitar que ML confíe demasiado en una función. Es bueno hacer esto con frecuencia porque los modelos Tree son inestables, lo que ayuda a descubrir nuevas características y ejemplos de TS. Por supuesto, este enfoque supone un grupo cada vez mayor de datos para construir su TS, lo que podría no ser el caso.

Cuarto, arrojo ejemplos que están en el límite. Es decir, si no puedo determinar claramente en qué clase cae un ejemplo, entonces creo que un algoritmo ML también tendrá problemas con él. Por otro lado, si da un ejemplo ambiguo, una etiqueta definitiva, está “creando” información para que ML aprenda que realmente no existe. Creo que un buen algoritmo de ML hará una buena estimación de dónde está el límite de decisión, incluso si no hay puntos en el límite de decisión.

La justificación de mi enfoque es que está estratificando los datos para asegurarse de tener un TS representativo en lugar de uno bien muestreado. Le brinda cobertura para casos raros, que algunos casos de LA tienden a ignorar, ya que hay muy poca información.

Parte de la razón por la que voy a hacer muchos problemas, es que ML no es mágico. No creará un modelo basado en características que no tiene con datos que no tiene.

More Interesting

¿Cuáles son los mejores software de aprendizaje automático de código abierto para reconocimiento facial?

¿Es más fácil construir un vehículo autónomo que un sistema de traducción automática a nivel humano?

¿Cuál es la diferencia entre regresión, clasificación y agrupamiento en el aprendizaje automático?

¿Qué hace la capa en línea y la capa de línea cercana del sistema Netflix para recomendación?

¿A qué tipo de personalización en Machine Learning se refería Andrew Ng en su artículo de Harvard Business Review sobre las capacidades de IA?

¿Qué has aprendido haciendo investigación?

¿Cómo se aplica la validación cruzada a la regresión logística? Quiero evaluar la precisión de un modelo de regresión logística en un conjunto de datos.

¿Necesita saber la teoría de la medida para hacer investigación de aprendizaje automático?

¿Por qué la pérdida logística es una mejor métrica para la clasificación probabilística que RMSD?

¿Cómo soluciona un máximo A posterior el problema de sobreajuste en una estimación de máxima verosimilitud?

¿Cuáles son las ideas principales detrás de los principales algoritmos de clasificación de búsqueda?

¿Por qué Intel Xeon Phi no se usa mucho para acelerar el entrenamiento de aprendizaje profundo?

Si ya hemos conocido una función, ¿podemos generar una red neuronal para la inferencia, sin pasar por el proceso de capacitación que consume tiempo y energía?

¿Cómo puedo comenzar a usar métodos de "generalización apilada" en Python para las competencias de Kaggle?

Cómo comenzar una investigación independiente en aprendizaje profundo