Telegram: @ninachely
Пришла пора поговорить о других методах обучения нейронок: мы будем говорить про те, которые позволяет записать в веса нашей модели какое-то адекватное знание, но при этом будут использовать лишь сырые данные, которые никто до нас специально не обработал и не разметил. Оказывается, что человечество накопило столько гигабайтов данных, что мы можем просто взять, скачать их из интернета, запихнуть в нашу модель, придумать какую-то хитрую задачу, не требующую разметки — тогда есть шанс, что в весах модели будет сохранено какое-то знание, которое будет полезно для других задач с другими данными и разметкой.
Будем говорить о том, какие задачи можно решать с помощью трансформеров.
Обычно нейронка состоит из:
Идея всего self-supervised learning состоит в том, что мы хотим каким-то образом обучить backbone, чтобы он умел извлекать какие-то хорошие признаки
Соответственно: если мы такую задачу решим и backbone у нас будет уже обученный, то дальше мы сможем его дотюнить уже до нашей задачи, либо обучив свою голову под эту задачу, либо целиком зафайньюнить всё — и голову и тело. Мы хотим обучить веса, а архитектура у нас фиксированная. Это также называют pre-training.
Когда на одном из семинаров по зрению мы брали сетку, которая предобучена на ImageNet и потом ее тюнили под наши данные, то это как раз и были pre-training и fine-tuning под нашу задачу.
В нашем случае принципиально одно — то, что мы будем предобучаться будем на неразмеченном датасете — это просто данные, которые мы где-то взяли и никаких меток для каждого объекта в выборке у нас нет.
Обучение эмбеддингов — наш самый первый пример для обучения без разметки. Мы просто взяли текст, придумали какую-то задачу с каким-то там лоссом, который мы оптимизируем. Это как раз был пример задачи, когда мы придумали что-то сами, то есть этой задачи не было исходно в данных — ведь никто не размечал, какие слова являются похожими встречаются вместе, а какие нет. Мы просто увидели структуру данных, поняли что если что-то такое учить, то скорее всего получится что-то адекватное, обучили и действительно получили таким образом работающие эмбеддинги.
Теперь нам тоже нужно будет придумывать какие-то задачи, которые выглядят достаточно адекватно, чтобы на них учиться и модель придумывала из данных что-то новое.
BERT = Bidirectional Encoder Representations from Transformers
Давайте попробуем проанализировать это название: