Открытый курс по ML от ФПМИ МФТИ Были изучены материалы курса, законспектированы лекции, выполнены лабораторные работы. Ниже приведено описание проделанной работы.
Тип | Название | Описание |
---|---|---|
lab | ML Pipeline & SVM | Лабораторная работа состояла из 3-ёх частей. 1. В первой части было выполнено матричное дифференцирование. 2. Во второй части были произведены эксперименты с данными: выполнена предобработка, визуализировано с PCA, построена модель логистической регрессии, оценён ROC-AUC score. Также были протестированы модели RandomForest и Bagging над решающими деревьями, сделана визуализация разделяющих гиперплоскостей от Дерева принятия решений. Оценен Learning curve. 3. В третьей части были произведены эксперименты с SVM классификатором над датасетом make_moons. Использованы различные ядра, построены визуализации, также использованы поиномиальные данные. Решен датасет make_circules. |
lab | DL | Лабораторная работа состояла из 5-и частей 3 основные, 2 опциональные. Были выполнено 2-4 части. (первая часть была выполнена по ходу выполнения assigments). 1. Во второй части я боролся с переобучением сети над датасетом FashionMNIST. Для этого была упрощена структура модели, добавлены Dropout слои. 2. В третьей части Было выполнена генерация стихов на основе Шейкспира. Для этого были предобработаны текстовые данные. Построена простая языковая Seq2Seq модель c LSTM. Произведены эксперименты с температурой SofrMax'a. То же самое было проделано с текстом Евгения Онегина. 3. В четвертой части решалась задача HAR (human activity recognission). Для этого выполнена визуализация PCA c 2 компонентами, сформирован PyTorch датасет. Были произведены различные эксперименты по поводу каким именно образом и с какой инициализацией весов лучше работает LSTM для данной проблемы. Так была отмечена зависимость, что при использовании NLLLoss результаты лучше, чем с CrossEntropyLoss, вероятно из-за числовой стабильности. Accuracy = 0.9. |
assignment | kNN | Реализован класс KNearestNeighbor, классификатор на основе алгоритма ближайших соседей, измерена разница во времени работы алгоритма в зависимости от наличия циклов в имплементации. Произведено сравнение с sklearn kNN. |
assignment | kNN | Реализован класс KNearestNeighbor, классификатор на основе алгоритма ближайших соседей, измерена разница во времени работы алгоритма в зависимости от наличия циклов в имплементации. Произведено сравнение с sklearn kNN. |
assignment | Linear Regression | Решены примеры на матричное дифференцирование. Имплементированы функции ошибок и производных в loss_and_derivatives. Выполнен градиентный спуск c L2 регуляризацией, выполнено сравнение с sklearn. |
assignment | SVM | Имплементирован SVM метод с rbf ядром на основе интерфейса sklearn и градиентной оптимизацией PyTorch (файл) Протестирована работа и произведено сравнение с sklearn SVC. |
assignment | Tree | Имплементированы различные критерии информативности. Также структура дерева , создание сплита и выбор лучшего (файл) Протестирована имплементация, выполнен GridSearch. |
assignment | NN from scratch | Имплементированы различные слои для нейронной сети, такие как Linear, SoftMax, LogSoftMax, BatchNorm, DropOut. Функции активации: ReLU, LeakyReLu, ELU, SoftPlus. Функции потерь: MSE, NLL. Оптимизаторы: SGD Momentum, Adam. (файл) Реализованные модули Протестированы. |
Неделя | Семинар | Описание |
---|---|---|
01_1 | Предобработка данных | Работы с данными в Pandas, работа с пропусками, преобразование нечисловых значений, добавление признаков. |
01_2 | Naive Bias | Naive Bias from Skratch implementation, сравнение с kNN, реализация ядерного сглаживания (KDE), сравнение результатов. |
02_1 | Linear Regression, GD | Линейная регрессия, GD, SGD, несколько сюжетов про числа обусловленности, sklearn pipeline. |
02_2 | Loss Functions, Regularization | Вероятностный взгляд на MSE и регуляризацию, функции потерь. |
03_1 | Logistic Regression with PyTorch | Знакомство с PyTorch, AutoGrad, логистическая регрессия. |
04_1 | SVM | Реализация SVM на основе sklearn и PyTorch. Различные опыты с Sklearn SVC. |
04_2 | SVD | Pictures compression with SVD. |
04_3 | Bias Variance decomposition | Bias Variance разложение, опыты с полиномами разных степеней. |
05_1 | Decision trees | Деревья принятия решений, критерии информативности: Джини, энтропия Шеннона, ошибка классификации. Критерии для регрессии. Визуализации, pruning. |
05_2 | Ensembles | Bootstrap, bagging, RandomForest. Эксперименты с RandomForest из sklearn, влияние гиперпараметров на обобщающую способность, feature importance. |
05_3 | Cross_validation | Кросс-валидация, подбор гиперпараметров. |
06_1 | Gradient Boosting | Градиентный бустинг, зависимость обучения от гиперпараметров. |
08_1 | PyTorch, DataLoaders | Обучение модели в PyTorch, работа с загрущиками данных. |
10_1 | Embeddings, Seq2Seq | Embeddings, RNN, LSTM, генерация имен. |
11_1 | CNN | Own class for CNN training, fine-tuning, Data Augmentation. |