Вопрос

Заранее спасибо за чтение моего вопроса!

Я использовал CNN для классификации текста, используя кера и TF. Мои данные - строки «Я читаю новости» или «Я читаю новости машинного обучения», а мои этикетки - теги: наука о данных, репортер, ребенок ...

Мои проблемы состоит в том, что к каждому тексту привязаны несколько метков. Как мне построить свою цель так, чтобы я мог запечатлеть каждый из этих нескольких выходов?

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

Это было полезно?

Решение

CNN (обычно) используйте Softmax в качестве функции активации на последнем уровне, что дает вероятность распределения по всем возможным мечениям. Вы используете какую -то функцию потерь для оптимизации CNN для генерации метки «правильного» для нового образца.

Функция потерь, используемая в таком случае,-это потери поперечной энтропии или KL-дивергентность, которая измеряет, насколько близки два распределения. Для классификации мультиклассной (отличается от вашего случая, где каждый входной пример может иметь только одну метку), желаемое распределение составляет (0, 0, ...., 1, ..., 0), где 1 появляется в положении фактической метки Анкет Функция потерь наказывает распределение, которое «далеко» от этого распределения.

Для вашего случая вы можете кодировать свой вывод как (0, 0, 1, 0, ... 1, ..,) Итак, где вы помещаете их в позиции меток, которые связаны с вашим входом и используйте KL-дивергенцию как Функция потери и оптимизируйте свой CNN, чтобы минимизировать потерю.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top