У меня есть модель тегов последовательности, которая предсказывает тег для каждого слова во входной последовательности (по сути, называется распознаванием сущностей)Структура модели: слой вложений → BiLSTM → CRF
Таким образом, по сути BiLSTM изучает нелинейные комбинации функций на основе вложений токена и использует их для вывода ненормализованных оценок для каждого возможного тега на каждом временном шаге. Классификатор CRF затем изучает, как выбрать лучшую последовательность тегов, учитывая эту информацию.
Мой CRF является экземпляром CRF keras_contrib, который реализует CRF с линейной цепью (как и tenorflow.contrib.crf). Таким образом, он рассматривает вероятности перехода тега от одного тега к следующему, но не максимизирует глобальную последовательность тегов (как это сделал бы общий CRF).
Функция активации по умолчанию - «линейная». У меня вопрос: почему он линейный и какую разницу будут иметь другие активации?
Т.е. линейен ли он, потому что его решения сводятся к предсказанию вероятности тега y t данный тег y -1 (который может быть сформулирован как задача линейной регрессии)? Или это линейно по какой-то другой причине, например, предоставляя пользователю гибкость в применении CRF там, где им нравится, и сами выбирают наиболее подходящую функцию активации?
Для моей проблемы, действительно ли я должен использовать активацию softmax? У меня уже есть отдельная модель с похожей, но другой структурой: Embeddings → BiLSTM → Dense with softmax. Поэтому, если бы я использовал Softmax-активацию в CRF с линейной цепью (т. Е. В слое Embeddings → BiLSTM → CRF, о котором я упоминал в начале этого поста), это звучит так, как если бы он был почти идентичен этой отдельной модели, за исключением возможностииспользовать вероятности перехода от y t-1 до y t .