TGTGInsightаналитика telegramLIVE / telegram public index
← DeepSchool
DeepSchool avatar

TGINSIGHT POST

Post #158

@deep_school

DeepSchool

Просмотры4,560Количество просмотров
Опубликован5 апр.05.04.2023, 10:24
Содержимое поста

Содержимое

​​Self- vs Semi- vs Unsupervised learning Вы наверняка слышали следующие термины — supervised ML, unsupervised ML, semi-supervised ML, self-supervised ML. Но чем различаются перечисленные методы? Такой вопрос задали одному из авторов на собеседовании. Давайте наконец-то разберемся с этими терминами! 🔸Supervised machine learning Берем размеченные данные, учим на них модель. Например, классификация изображений, сегментация изображений и в целом любая задача, при которой модель учится только по размеченным данным. 🔸Unsupervised machine learning Берем неразмеченные данные, учим на них модель. Например, кластеризация (KMeans, DBSCAN), понижение размерности (PCA, umap) и, конечно же, автоэнкодеры. 🔸Semi-supervised machine learning Берем размеченные данные и неразмеченные данные, учим на них модель. Например, self-training. Это метод, который можно использовать, если у вас чуть-чуть размеченных и много неразмеченных данных. Сначала обучаем модель на размеченных данных, затем используем обученную модель для разметки большого набора неразмеченных данных. Выбираем из этого большого набора примеры с высокими скорами (и низким лоссом) и обучаем на объединенном наборе данных новую модель. Такой процесс можно сделать в несколько итераций, пока все данные не будут размечены “псевдо-лейблами”. В этой категории стоит также обратить внимание на работу FixMatch — довольно простой для понимания метод. Он легко заводится и иногда выстреливает (особенно вместе с предобучением на какой-нибудь self-supervised задаче). 🔸Self-supervised machine learning Берем неразмеченные данные, генерируем разметку из данных, учим на них модель. Например, в NLP так учится BERT или GPT. Этот метод чаще всего используется для претрейна. Допустим, когда в модель подают повернутые на N градусов картинки и просят ее предсказать угол поворота N. После обучения модели становятся в большей степени адаптированными к вашему домену и к структуре данных, получают более “богатые” фичи. Вообще достаточно много задач решается с помощью данного метода. Например, super-resolution, style transfer (в NLP и в CV) и даже neural architecture search! В каком-то смысле CLiP — тоже self-supervised learning: обучение происходит на тех картинках и подписях к ним, которые собрали скрепером, а далее из этих данных сгенерировали лейблы. Self-supervised learning — очень многообещающий метод предобучения моделей под свой домен (по нашему мнению). Часто бывает так, что ваш домен довольно сильно отличается от домена ImageNet’a, а предобученные на ImageNet’e модели в этом случае являются субоптимальными. Эту проблему можно попытаться решить с помощью self-supervised learning’a на вашем домене. Прелесть self-supervised подходов последних лет заключается не только в том, что они могут забустить вашу метрику, но и в том, что, весьма вероятно, вам потребуется меньше данных для решения ваших задач. Также, как правило, такие методы помогают сети на вашем домене быстрее сходиться. Это экономит время и, как следствие, деньги. Авторы: Ксения Рябинова, Марк Страхов Редактура: Александр Наздрюхин