складність 2/5 Безкоштовно
Data augmentation
Застосовувати до навчальних прикладів випадкові перетворення, що зберігають мітку, щоб модель бачила кожен багатьма способами й не спиралася на випадковості зйомки.
Інтуїція
Ваша навчальна вибірка має 800 фотографій. Кожну з них знято під якимось певним кутом, за якогось певного освітлення, з об’єктом якогось певного розміру. Мережа не має способу знати, які з цих властивостей є об’єктом, а які — обставинами, тож вона радо скористається будь-якою з них, яка передбачає мітку [1, §14.1].
Аугментація забирає цю можливість суперечністю. Покажіть ту саму фотографію віддзеркаленою, обрізаною, освітленішою — щоразу з тією самою міткою — і «об’єкт дивиться ліворуч» перестає бути придатним правилом, бо іноді це не так. Те, що переживає повторювану суперечність, є тим, що справді інваріантне, а це і є те, чого ви хотіли навчити модель [3, §7.4].
Це не більше даних у жодному теоретико-інформаційному сенсі. Кожен піксель прийшов із фотографій, які ви вже мали. Що воно додає — це твердження про те, які перетворення не повинні змінювати відповіді; шматок предметного знання, впорснутий як приклади, а не як архітектура [3, §7.4].
Формальне визначення
D2L: «аугментація зображень породжує схожі, але відмінні навчальні приклади після низки випадкових змін навчальних зображень, тим самим розширюючи розмір навчальної вибірки» [1, §14.1].
Пропонують два механізми, і вони різні. Один — це розширення навчальної вибірки. Другий — цікавий: «випадкові підправляння навчальних прикладів дають моделям менше спиратися на певні атрибути, тим самим поліпшуючи їхню здатність до узагальнення» [1, §14.1].
Менше спиратися на певні атрибути — ось і весь аргумент. Річ не в обсязі, а в усуненні коротких шляхів.
Стандартними операціями є віддзеркалення, кадрування та колір: горизонтальне й вертикальне віддзеркалення, з яких ліво-праве найпоширеніше, випадкове кадрування зі зміною розміру й різними співвідношеннями сторін, а також коригування «яскравості, контрасту, насиченості й відтінку» [1, §14.1.1].
Як це працює
Випадковість є механізмом, а не деталлю реалізації. «Більшість методів аугментації зображень мають певний ступінь випадковості» [1, §14.1.1] — фіксоване віддзеркалення, застосоване до кожного зображення, просто дало б дзеркальний набір даних і не навчило б нічого. Саме те, що модель бачить іншу версію кожної епохи, і спиняє її від чіпляння за будь-яку одну з них.
Воно застосовується лише під час навчання. D2L недвозначний: «щоб дістати певні результати під час прогнозування, ми зазвичай застосовуємо аугментацію зображень лише до навчальних прикладів і не вживаємо аугментації зображень із випадковими операціями під час прогнозування» [1, §14.1.2]. Лишити її увімкненою на висновуванні означає зробити прогнози невідтворюваними — прогоніть те саме зображення двічі й дістанете дві відповіді.
На практиці це складений конвеєр, причеплений до набору даних. Канонічний рецепт класифікації від Torchvision — це рівно той набір, що вище: випадкове кадрування зі зміною розміру, горизонтальне віддзеркалення з імовірністю 0.5, а тоді нормалізація [2, Transforming images] — і ті самі перетворення можна застосувати до обмежувальних рамок і масок разом із зображенням [2, Transforming images], що важить, бо віддзеркалене зображення з невіддзеркаленими рамками є тихо зіпсованими навчальними даними.
Де застосовується
- Кожен вартий уваги прогін навчання в комп’ютерному зорі — аж до того, що рецепт аугментації є частиною того, як порівнюють архітектури: два алгоритми можна порівнювати лише за однакової схеми аугментації [3, §7.4].
- Режими з малими даними, поряд із перенесенням навчання — ці двоє б’ють по тій самій нестачі з різних боків.
- Виявлення й сегментація, де перетворення треба застосувати і до цілей, і до входу [2, Transforming images].
- Аудіо — як розтягування в часі, зсув висоти тону й упорскування шуму: та сама ідея, інші інваріантності.
- Текст, обережніше, бо більшість перетворень речення мітки не зберігають.
Чому і коли
Беріть її щоразу, коли модель більша, ніж виправдовує набір даних, а для глибоких мереж це нормальний випадок.
Обирайте перетворення, питаючи, що не повинно змінювати мітку. Це і є все проєктне рішення, і це предметне знання, а не гіперпараметр.
Не застосовуйте перетворення, якого ваші тестові дані не міститимуть ніколи. Вертикальні віддзеркалення допомагають на супутникових знімках, де «вгору» немає; на вуличних фотографіях вони вчать модель розпізнавати те, чого не буває.
Вимикайте її для оцінювання [1, §14.1.2]. Це найпоширеніша помилка в цій області, і вона робить результати невідтворюваними, а не просто гіршими.
Стежте, чи воно не ламає мітку. Горизонтальне віддзеркалення перетворює 6
на щось, що 6 не є, а фотографію лівої руки — на праву. Розпізнавання символів мусить відрізняти
«b» від «d» і «6» від «9», тож віддзеркалення й повороти на 180° не годяться
[3, §7.4].
Практичний приклад
Властивість, яка робить аугментацію законною, перевірена прямо: масив змінюється, а мітка — ні.
Python 16 рядків Показати код Сховати код
import numpy as np
img = np.arange(36).reshape(6, 6)
row = 2
views = {
"original": img,
"h-flip": np.fliplr(img),
"crop + resize": img[1:4, 1:4].repeat(2, 0).repeat(2, 1),
"brightness": np.rint(np.clip(img * 1.25, 0, 35)).astype(int),
}
for name, a in views.items():
print(f" {name:<15} row {row}: {a[row].tolist()}")
print(f"\n every view differs from the original: "
f"{all(not np.array_equal(img, a) for n, a in views.items() if n != 'original')}")
print(" the label attached to all four : unchanged")Вивід
original row 2: [12, 13, 14, 15, 16, 17]
h-flip row 2: [17, 16, 15, 14, 13, 12]
crop + resize row 2: [13, 13, 14, 14, 15, 15]
brightness row 2: [15, 16, 18, 19, 20, 21]
every view differs from the original: True
the label attached to all four : unchangedЧотири різні масиви, одна мітка. Будь-яке правило, яке мережа могла б вивчити і яке залежить від точних значень пікселів — «позиція 0 рядка 2 дорівнює 12», — спростовують три з чотирьох. Правило, яке залежить від відношень між значеннями, переживає всі чотири.
Зауважте, що руйнує кожне перетворення. Віддзеркалення обертає порядок, тож ліво-праве положення стає непридатним. Кадрування змінює масштаб і дублює значення, тож абсолютний розмір стає непридатним. Зсув яскравості рухає кожне значення на множник, тож абсолютна інтенсивність стає непридатною. Кожне з них закриває конкретний короткий шлях, і обране воно тому, що те, що воно закриває, для мітки справді не має значення.
Ось чому вибір перетворень є предметним знанням, а не ручкою. Додати сюди вертикальне віддзеркалення означало б закрити «яким боком воно вгору» — корисно, якщо для вашої задачі це неістотно, і руйнівно, якщо істотно.
Типові помилки
Лишити аугментацію увімкненою на висновуванні. Прогнози перестають бути відтворюваними [1, §14.1.2], а метрика, обчислена за неї, міряє рандомізовану модель.
Аугментувати зображення, а не мітку. У виявленні та сегментації цілі мусять рухатися з пікселями; torchvision пропускає обидва через те саме перетворення рівно з цієї причини [2, Transforming images].
Перетворення, які змінюють клас. Віддзеркалення на цифрах і тексті, агресивні зсуви відтінку там, де колір і є міткою, кадрування, яке прибирає об’єкт цілком.
Аугментувати до поділу на навчальну й валідаційну. Аугментовані копії того самого вихідного зображення, що лягають по обидва боки, — це витік, і валідаційна оцінка втрачає сенс.
Вважати її замінником даних. Вона зменшує опору на побічні атрибути [1, §14.1]; вона не додає об’єктів, поз чи умов, яких ваша збірка ніколи не містила.
Ще не прочитаноДочитайте сторінку до кінця — і вона вважатиметься прочитаною.
Зберігайте свій прогресЗ доступом назавжди кожна дочитана сторінка позначається, і ви продовжуєте з того місця, де зупинилися, на всіх своїх пристроях.
Відкрити доступПеревірте себе
3 запитання
Кожну відповідь пояснено: який розділ вона перевіряє і з якого джерела.
Джерела
- Dive into Deep Learningbook · звірено 2026-09-05https://d2l.ai/
- Torchvision documentation — Transforming images, videos, boxes and moredocs · звірено 2026-09-05https://docs.pytorch.org/vision/stable/transforms.html
- Deep Learning (2016)bookhttps://www.deeplearningbook.org/