Пришло время нам поговорить про секс self-supervised learning.
Ну, вы помните, что обычный супервайзд лернинг, это когда вы засовывайте в нейросеть картинки зайчаток и котяток, говорите где кто (размеченные данные), и повторяете это много раз. В итоге, нейросеть сама будет различать зайчаток и котяток даже на новых изображениях которые ей раньше не показывали.
Но для этого нужно чтобы кто-то сначала эти данные руками разметил, и так для каждой картинки, для каждой задачи. И их нужно не 100, а 100 тысяч. Не очень удобно, не так ли? Поэтому рисерчеры начали думать как тренировать сетки на неразмеченных данных, которых много, и которые свободно валяются по всему интернету.
Давайте посмотрим как это можно сделать. Для уточнения, мы никак не узнаем где котятки, а где зайчатки без указания, но мы можем обучить сеть понимать формы, образы, и то, что все белое пушистое это что-то одно, а пятнистое хвостатое — что-то другое. Тогда дело останется только за наименованием. Причем использовать для верификации можно только информацию с самого изображения (отсюда self-supervised).
- Внезапно, изображение можно просто повернуть, и просить алгоритм указать правильную ориентацию. Это не так легко седлать наугад. Чтобы справиться, алгоритму нужно научиться различать формы, цвета, ключевые объекты, и помнить их правильное положение. А так как мы знаем правильный ответ, мы можем указывать на ошибки.
- Так же изображение можно обесцветить, и заставить алгоритм его раскрашивать. У нас есть цветная версия поэтому мы можем карать и поощрять, а алгоритму опять же придется научиться различать объекты для того чтобы окрашивать их ближе к правде, а не рандомно.
- Можно вырезать куски изображения, перемешать их, и заставить алгоритм их сопоставлять как пазл. Сделать это правильно, опять же, проще когда алгоритм видит не просто шум, а какие-то структуры и знает какие между ними отношения.
- Для текста работает то же самое. Чтобы обучить алгоритм связи между словами можно брать два слова или два предложения и спрашивать могут ли они идти друг за другом. Так как мы сами их выбираем мы знаем правильный ответ, хоть и не делали никакой ручной разметки.
- Самая популярная механика которая используется в BERT и GPT-3: берем предложение, убираем из него одно слово (мы знаем какое), просим нейросеть предсказать какое слово там должно стоять (или какое должно идти следующим в случае GPT). Для того чтобы это сделать нейросети нужно научиться понимать зависимости между словами. Заметьте, что это понимание из серии "это слово часто хорошо подходит под этот контекст" а не "тут по смыслу должно стоять это слово".
- По аналогии можно вырезать кусок изображения и попросить GAN его сгенерировать.
...
Надеюсь вы поняли общую механику. Тут наверняка можно придумать еще много чего, соль в использовании той семантической информации которая уже содержится в самом изображении/тексте. И главное, что после такой пре-тренировки, вам не нужно будет много примеров чтобы на них учить нейросеть различать базовые формы/объекты, вам будет достаточно всего нескольких примеров чтобы привязать конкретный лейбл к конкретному образу который нейросеть уже знает.
#ликбез
@ai_newz
Ну, вы помните, что обычный супервайзд лернинг, это когда вы засовывайте в нейросеть картинки зайчаток и котяток, говорите где кто (размеченные данные), и повторяете это много раз. В итоге, нейросеть сама будет различать зайчаток и котяток даже на новых изображениях которые ей раньше не показывали.
Но для этого нужно чтобы кто-то сначала эти данные руками разметил, и так для каждой картинки, для каждой задачи. И их нужно не 100, а 100 тысяч. Не очень удобно, не так ли? Поэтому рисерчеры начали думать как тренировать сетки на неразмеченных данных, которых много, и которые свободно валяются по всему интернету.
Давайте посмотрим как это можно сделать. Для уточнения, мы никак не узнаем где котятки, а где зайчатки без указания, но мы можем обучить сеть понимать формы, образы, и то, что все белое пушистое это что-то одно, а пятнистое хвостатое — что-то другое. Тогда дело останется только за наименованием. Причем использовать для верификации можно только информацию с самого изображения (отсюда self-supervised).
- Внезапно, изображение можно просто повернуть, и просить алгоритм указать правильную ориентацию. Это не так легко седлать наугад. Чтобы справиться, алгоритму нужно научиться различать формы, цвета, ключевые объекты, и помнить их правильное положение. А так как мы знаем правильный ответ, мы можем указывать на ошибки.
- Так же изображение можно обесцветить, и заставить алгоритм его раскрашивать. У нас есть цветная версия поэтому мы можем карать и поощрять, а алгоритму опять же придется научиться различать объекты для того чтобы окрашивать их ближе к правде, а не рандомно.
- Можно вырезать куски изображения, перемешать их, и заставить алгоритм их сопоставлять как пазл. Сделать это правильно, опять же, проще когда алгоритм видит не просто шум, а какие-то структуры и знает какие между ними отношения.
- Для текста работает то же самое. Чтобы обучить алгоритм связи между словами можно брать два слова или два предложения и спрашивать могут ли они идти друг за другом. Так как мы сами их выбираем мы знаем правильный ответ, хоть и не делали никакой ручной разметки.
- Самая популярная механика которая используется в BERT и GPT-3: берем предложение, убираем из него одно слово (мы знаем какое), просим нейросеть предсказать какое слово там должно стоять (или какое должно идти следующим в случае GPT). Для того чтобы это сделать нейросети нужно научиться понимать зависимости между словами. Заметьте, что это понимание из серии "это слово часто хорошо подходит под этот контекст" а не "тут по смыслу должно стоять это слово".
- По аналогии можно вырезать кусок изображения и попросить GAN его сгенерировать.
...
Надеюсь вы поняли общую механику. Тут наверняка можно придумать еще много чего, соль в использовании той семантической информации которая уже содержится в самом изображении/тексте. И главное, что после такой пре-тренировки, вам не нужно будет много примеров чтобы на них учить нейросеть различать базовые формы/объекты, вам будет достаточно всего нескольких примеров чтобы привязать конкретный лейбл к конкретному образу который нейросеть уже знает.
#ликбез
@ai_newz