Модель ULMFiT представляет собой «обычный LSTM», который является частным случаем Рекуррентной нейронной сети (RNN).
RNN «съедают» вводимый текст слово за словом (иногда символ за символом), ипосле каждого «укуса» они:
- производят вывод
- обновляют внутреннее скрытое состояние
В классификации текста выходные данные отбрасываются до самогоконец. обновленное скрытое состояние вместо этого добавляется к следующему слову кусаться. После того, как RNN съел последнее слово, вы можете проверить выходной слой (обычно это слой softmax с таким количеством нейронов, что и ваши метки), вычислить потери по отношению к истинной метке, а затем соответствующим образом обновить веса.
Послена этапе обучения, предположим, вы хотите классифицировать новый документ. RNN «съедает» ввод снова и обновляет свое скрытое состояние после каждого слова. Вы игнорируете выходной слой до тех пор, пока не увидите последнее слово: в этот момент максимальный элемент выходного слоя softmax будет вашей предсказанной меткой.
Я нашел особенно полезным это PyTorch tutorial .
![enter image description here](https://i.stack.imgur.com/9JC57.png)