В этой домашке будем разбираться с CNN, RNN, а также учиться работать со статьями. Есть вот такая достаточно уже старая, но при этом несложно написанная статья с хорошо описанными экспериментами, в современных реалиях, она конечно не state of the art, но хорошо подойдет для наших целей.
- прочитайте статью https://arxiv.org/pdf/1511.08630.pdf
- мы будем ставить эксперименты на других данных, поэтому, проанализируйте и сделайте препроцессинг на основании вашего анализа и того дизайна экспериментов, который описан в статье, для этого датасета https://www.kaggle.com/clmentbisaillon/fake-and-real-news-dataset?select=Fake.csv
Задача: предсказать категорию новости (там есть дополнительная колонка, не обращаем внимание, что это датасет fakenews, в этом дз нас интересует тематика новости)
3) (5 баллов) реализуйте на pytorch ту архитектуру модели, которую в итоге тестировали авторы (подробное описание есть в статье), таким образом, чтобы это был пайплайн для проведения экспериментов: можно было запускать модель с разными гиперпараметрами, разными способами регуляризации, описанными в статье (в том числе, чтобы можно было вставлять ее в разных местах), паддингом, векторизацией.
4) (2 балла) поставьте эксперименты с разными параметрами и особенностями архитектуры (регуляризация, паддинг, векторизация, драпаут и тд, в статье подробно описан смысл этих операций и что конкретно делали, загуглите как это имплементировано в торче) так как описано в статье (там есть подробное описание в разделе 5.2 Experimental Settings )
5) (2 балла) оцените результаты экспериментов также, как это сделали в статье
6) (1 балл) напишите выводы (это должно быть похоже на раздел Results and Model Analysis только не нужно сравнивать с другими моделями, как это делают авторы статьи, сравнивайте только результаты своих экспериментов, потому что там цифры на других датасетах. Да писать так много тоже не нужно, но у вас и должно получиться меньше потому что не будет сравнения)
Если вы хотите дополнительный балл:
- реализуйте классы для RNN, LSTM и GRU ячейки
- реализуйте класс RNN слоя
Если вы хотите еще один дополнительный балл, то используйте в экспериментах не RNN слой из торча, а свой самочинный слой, с разными типами ячеек (то есть поставьте дополнительные эксперименты не только с LSTM слоем, но и с обычным RNN и GRU слоем)