Pregunta

¡Gracias de antemano por leer mi pregunta!

He estado usando CNN para clasificar el texto usando Keras y TF. Mis datos son cadenas "Leí las noticias" o "Leí noticias de aprendizaje automático" y mis etiquetas son etiquetas: ciencia de datos, reportero, niño ...

Mis problemas es que cada texto puede tener múltiples etiquetas adjuntas. ¿Cómo debo construir mi objetivo de tal manera que pueda capturar cada una de esas múltiples salidas?

Description, Tag "I read the news", Child "I read the news", Reporter "I read machine learning news", Data Science "I read machine learning news", Reporter

¿Fue útil?

Solución

Los CNN (generalmente) usan Softmax como función de activación en la última capa, lo que proporciona una distribución de probabilidad sobre todas las etiquetas posibles. Utiliza algún tipo de función de pérdida para optimizar la etiqueta CNN para generar la etiqueta "correcta" para una muestra novedosa.

La función de pérdida utilizada en dicho caso es la pérdida de entropía cruzada o la divergencia de KL que mide cuán cerca están las dos distribuciones. Para la clasificación multiclase (diferente de su caso, donde cada ejemplo de entrada puede tener solo una etiqueta), la distribución deseada es (0, 0, ...., 1, ..., 0) donde aparece 1 en la posición de la etiqueta real . La función de pérdida penaliza la distribución que está "lejos" de esta distribución.

Para su caso, puede codificar su salida como (0, 0, 1, 0, ... 1, ...), así que en dónde coloca las posiciones de las etiquetas asociadas con su entrada y usa la divergencia KL como función de pérdida y optimice su CNN para minimizar la pérdida.

Licenciado bajo: CC-BY-SA con atribución
scroll top