Самокеро́ване навча́ння (СКН, англ.self-supervised learning, SSL) — це парадигма машинного навчання для обробки даних нижчої якості, а не для покращення кінцевих результатів. Самокероване навчання точніше імітує те, як вчаться класифікувати об'єкти люди.[1]
Типовий метод СКН ґрунтується на штучній нейронній мережі або іншій моделі, як-от перелік рішень[en].[2] Модель навчається у два етапи. По-перше, завдання розв'язується на основі допоміжної або зачіпкової задачі класифікування з використанням псевдоміток, які допомагають встановити початковий стан параметрів моделі.[3][4] По-друге, фактичне завдання виконується з керованим або некерованим навчанням.[5][6][7] До інших допоміжних завдань належать доповнювання замаскованих вхідних образів (пауз тиші в мовленні або замаскованих чорним частин зображення).
Для задачі бінарного класифікування тренувальні дані можливо розділити на позитивні та негативні приклади. Позитивні приклади — це ті, які відповідають меті. Наприклад, якщо ви вчитеся розпізнавати птахів, то позитивні тренувальні дані — це ті зображення, що містять птахів. Негативні приклади — ті, що не містять.[9]
Контрастове самокероване навчання
Контрастове самокероване навчання (англ.contrastive self-supervised learning) використовує як позитивні, так і негативні приклади. Функція втрат контрастового навчання мінімізує відстань із позитивними зразками, водночас максимізуючи відстань із негативними.[9]
Неконтрастове самокероване навчання
Неконтрастове самокероване навчання (НКСКН, англ.non-contrastive self-supervised learning, NCSSL) використовує лише позитивні приклади. Всупереч очікуванням, НКСКН збігається до корисного локального мінімуму, замість досягати тривіального розв'язку з нульовими втратами. Для прикладу бінарного класифікування воно навчилося би тривіально класифікувати кожен приклад як позитивний. Для ефективного НКСКН потрібен додатковий передбачувач з інтерактивного боку, який не має зворотного поширення з цільового боку.[9]
Порівняння з іншими видами машинного навчання
СКН належить до методів керованого навчання, оскільки мета полягає у породженні класифікованого виходу із входу. Проте водночас воно не вимагає явного використання мічених пар входів-виходів. Натомість кореляції, вбудовані в ці метадані, та знання предметної області присутні в даних входу, виділяються з даних неявно й автономно. Ці керівні сигнали, породжені з даних, можливо відтак використовувати для тренування.[1]
СКН подібне до некерованого навчання тим, що не потребує міток у зразках даних. Проте, на відміну від некерованого навчання, воно не здійснюється з використанням притаманних структур даних.
Тренування автокодувальника за своєю суттю становить самокерований процес, оскільки образ на виході повинен стати оптимальною відбудовою власне образу на вході. Проте в сучасному жаргоні термін «самокероване» став асоціюватися із завданнями класифікування, які ґрунтуються на постановці тренування із зачіпковим завданням (англ.pretext task). Вона включає розробку (людиною) такого зачіпкового завдання (завдань), на відміну від випадку повністю самодостатнього тренування автокодувальника.[11]
У навчанні з підкріпленням самокероване навчання з поєднання втрат може створювати абстрактні подання, де у стисненому вигляді зберігається лише найважливіша інформація про стан.[12]
Приклади
Самокероване навчання особливо підходить для розпізнавання мовлення. Наприклад, Facebook розробила самокерований алгоритм wav2vec для розпізнавання мовлення за допомогою двох глибоких згорткових нейронних мереж, які будуються одна з одної.[8]
GPT-3OpenAI — це авторегресійна мовна модель, яку можливо використовувати в обробці мови. Її можливо використовувати, серед іншого, для перекладу текстів та відповідей на питання.[14]
Bootstrap Your Own Latent («натягни своє власне латентне», BYOL) — це НКСКН, яке дало чудові результати в ImageNet[en], а також в еталонних передавальних та напівкерованих перевірках.[15]