Уровень агрегации в двунаправленных LSTM

Я использую двунаправленный LSTM в настройке «многие к одному» (задача анализа настроений) с tflearn. Я хочу понять, как tflearn агрегирует представления из прямого и обратного слоев LSTM перед отправкой на уровень softmax для получения вероятностного вывода? Например, на следующей диаграмме, как обычно реализуются concat и агрегатные слои?

введите здесь описание изображения

Есть ли какая-либо документация по этому поводу?

Благодарю вас!


person user7009553    schedule 20.07.2017    source источник


Ответы (1)


При использовании двунаправленного RNN от tflearn выходные данные объединяются, как показано на выше рисунок. Таким образом, каждый из выходных данных будет в два раза больше входного размера встраивания. Параметр по умолчанию возвращает только последний вывод последовательности, поэтому, если вы хотите использовать всю последовательность, вам нужно установить return_seq=True, а затем передать последовательность на уровень агрегации, например Merge.

person vijay m    schedule 23.07.2017
comment
Спасибо за ваш ответ. Мне было интересно, почему они не используют слой агрегации в своем примере двунаправленного анализа настроений, показанном ниже. github.com/tflearn/tflearn/blob/master/examples/ нлп/ - person user7009553; 24.07.2017
comment
Как я уже сказал в своем ответе, настройка по умолчанию bidirectional_rnn возвращает только последний вывод последовательности (выход word3 на вашем рисунке). Поскольку этот слой зависит от двух последних слоев, только этот вывод подходит для классификации. Теперь остальные 2 выхода игнорируются, возможности для агрегирования нет. - person vijay m; 24.07.2017