Открытый курс по ML от ФПМИ МФТИ Были изучены материалы курса, законспектированы лекции, выполнены лабораторные работы. Ниже приведено описание проделанной работы.
Тип | Название | Описание |
---|---|---|
lab | NLP | Лабораторная работа состояла из 2-ух частей. 1. В первой части была использована предобученная модель для слов русского и украинского языков. С помощью линейной регрессии было произведено embedding space mapping. Для улучшения качества было произведено ортогональное преобразование векторных пространств на основе SVD. На основе этого было выполнено Unsupervised MT. 2. Во второй части решалась задача нейромашинного перевода. Была произведена обычная работа по препроцессингу текстовых данных. Протестированы разные Encoder-Decoder архитектуры: 1) Простой LSTM encoder-decoder; 2) CNN-encoder LSTM decoder; 3) CNN-encoder с positional encoding, что ожидаемо не принесло улучшения в качество модели; 4) Самую лучшую метрику показала biLSTM модель на основе GloVe весов с механизмом attention. Трекались и отслеживались модели в tensorboard. |
lab | RL | Был реализован Q-learning approximate agent для игры в Atari Breakout с интерфейсов gym (ссылка). Для обработки изображения использовался frame-buffer для отслеживания движения шарика. Использовался replay buffer для ускорения обучения модели. Сам агент представляет собой сверточную сеть. Для препроцессинга изображение было обрезано и сделан перевес в сторону красного канала. Во время обучения также использовалась Target модель для того, чтобы процесс авторегрессии был более стабильным, она обновлялась каждые 5000 шагов. Обучалась модель с advantage (dueling DQN) и без, первая показала score в 53 поинта в среднем за 5 игр. Тренировалась и та и другая около 3-ёх дней. |
assignment | Word vectors | Были имплементированы BoW и TF-IDF (файл) Оба способа векторизации были применены для бинарной классификации текстов, toxic-or-not. TF-IDF показал больший ROC_AUR на тесте, так как он лучше учитывает важность слов. Было произведено сравнение с Naive-Bias и использован GloVe из gensim, они показали результаты хуже, чем первые два метода (ноутбук). |
assignment | Three headed network | Это задание было выполнено в ноутбуке с практическим занятием, где использовалось несколько входов нейронной сети для предсказания З/П по информации из резюме. |
assignment | Fine-tuning | Это задание было выполнено в ноутбуке с практическим занятием, где BERT был fine-tuned для классификации текстов. |
assignment | Conv VAE | Была реализована Conv VAE для CIFAR10. Латентное пространство получилось более однородное. |
Неделя | Семинар | Описание |
---|---|---|
01_1 | Word embeddings | Использована библиотека nltk для предобработки текстовых данных. Визуализированы word emgeddings с помощью UMAP и gensim Word2Vec. С помощью kMeans кластеризованы некоторые фразы. Обучена собственная Word2Vec модель. |
02_1 | CNN for texts | Выполнена стандартная предобработка для текстовых данных. В итоге самостоятельно была создана модель с тремя головами для предсказания З/П по информации из резюме. Для считывания различных данных были использованы CNN для коротких текстовых данных, и LSTM для длинных описаний. |
03_1 | Seq2seq for NMT | Для задачи NMT была создана архитектура Encoder-Decoder. Предобработаны текстовые данные. Обучена модель для перевода с французского на английский язык. Логирование производилось tensorboad'ом. |
03_2 | Attention | На синтетических данных был посчитан attention. |
04_1 | BiLSTM for PoS Tagging | Создана двуслойная biLSTM модель на основе glove embeddings для определения частей речи предложения. Была также сделана biLSTM модель на уровне символов, выходы которой подавались вместе с embedding'ами GloVe в следующую biLSTM, но это не дало прироста в качестве. |
04_2 | Positional encoding | Разобраны формулы PE, явно визуализированы различия при различных частотах и измерениях данных. |
05_1 | BERT | Был использован BERT для классификации текста, fine-tuned логистической регрессией. Также использовано api Transformers. |
06_1 | Question Answering | Был использован готовый Fine-tuned BERT для QA. Также был протестирован RuBERT. Также была выполнена задача Text2Speech для английского языка с помощью Tacotron 2. Для русского языка использовалась готовая обученная модель Silero. |
07_1 | GYM and CE | Знакомство с интерфейсом gym. Реализация метода CrossEntropy для обучения агента в CartPole. Самостоятельная реализация Deep CE метода для LunarLander, использование joblib для ускорения обучения модели. |
08_1 | Q-learning | Реализован Q-learning agent на основании уравнений Беллмана для решения Taxi. Для решения CartPole состояния были дискретизированы. |
09_1 | Appoximate Q-learning | Был написан Agent, который аппроксимирует Q-функцию для выбора действия и улучшения политики. Решена задача CartPole. |
10_1 | Reinforce | Был реализован REINFORCE алгоритм для аппроксимации политики агента (использован log-derivative trick). Самостоятельно был реализован A2C агент для решения Acro-Bot. После нескольких часов обучения и нескольких запусков, модель чему-то научилась. Внутри агента отдельно учились две сети, для ценности действия и в текущий момент и ценности состояния. |
11_1 | RL for Seq2seq | Сначала была обучена модель для транскрипции иврита на английский обычными методами, при помощи CrossEntropy loss. После чего была напрямую дообучена на целевую метрику (расстояние Левенштейна). |
12_1 | Style Transfer | Был произведен Style transfer с одного изображения на другое. За счет того, карты признаков на разной глубине обращают внимание на разные вещи, то за счёт этого можно градиентными методами подобать одно изображение под другое. |
13_1 | Knowledge distillation | Была создана сверточная модель для классификации над CIFAR-10. На эти же данные была обучена меньшая модель, а также дистиллирована другая модель. Вторая показала лучшие результаты. Ошибка рассчитывалась при помощи KL-дивергенции. |
14_1 | Semantic segmentation | Была создана U-net подобная модель (вместо UpPooling использовалась Transposed Conv). Была обучена модель с предобученным backbone сетью resnet. Во втором случае, как и ожидалось, получили лучшее качество. Для аугментаций использовалась библиотека Albumentations. Трекалась модель в W&B. |
15_1 | VAE | Была реализована VAE модель для датасета CIFAR10. KL-Loss считался между нормальным стандартным распределением и тем, что сэмплила модель. Для прокидывания градиентов использовался Reparameterization trick. |