Традиційно моделі глибокого навчання для геопросторових завдань використовували бекбони, попередньо навчені на ImageNet як відправну точку. Хоча це було ефективно, існує критичне обмеження: бекбони ImageNet навчені на позначених наборах зображень природних сцен (наприклад, тварини, об'єкти та пейзажі), які дуже відрізняються від геопросторових зображень за текстурами, патернами та спектральною інформацією. Ця різниця між доменами обмежує їх ефективність для геопросторових завдань, починаючи від семантичної сегментації до виявлення об'єктів та класифікації.
Геопросторові завдання штучного інтелекту, такі як класифікація сільськогосподарських культур, традиційно використовували бекбони, попередньо навчені на ImageNet
Навчання без нагляду (Self-Supervised Learning, SSL), яке використовує геопросторові зображення, пропонує альтернативу традиційній стратегії попереднього навчання на ImageNet для геопросторових завдань штучного інтелекту. Використовуючи велику кількість незавершених віддалено сенсорних даних, методи SSL, такі як SimCLR, MoCo (Momentum Contrast), вчать представленню ознак, які більш адаптовані до різноманітних геопросторових завдань. Наші нещодавні експерименти були спрямовані на перевірку цієї гіпотези: чи можуть бекбони, навчені за допомогою SSL (на незавершених супутникових зображеннях), працювати краще — або хоча б так само добре — як бекбони, попередньо навчені на ImageNet, для геопросторових завдань? Результати, що зосереджуються на семантичній сегментації, дають потужний аргумент на користь використання бекбонів, навчених за допомогою SSL, у геопросторових робочих процесах.
Чому варто використовувати навчання без нагляду?
Навчання без нагляду передбачає тренування моделей на незавершених даних, створюючи псевдо-мітки за допомогою попередніх завдань (наприклад, контрастне навчання). Для геопросторових даних, де створення позначених наборів даних є дорогим і часозатратним процесом, SSL є надзвичайно корисним завдяки:
- Багатству незавершених даних: Спутникові, аерофотографічні та дронові зображення доступні в великих кількостях, але рідко супроводжуються мітками.
- Доменним особливостям: Методи SSL, що навчаються безпосередньо на геопросторових зображеннях, можуть вивчати ознаки, які узгоджуються з патернами конкретної області, такими як рослинність, межі покриття земель та спектральні варіації.
SimCLR і MoCo — це дві популярні техніки для навчання без нагляду. Детальніше про них у наступному розділі.
Навчання без міток: розуміння SimCLR та MoCo
SimCLR (Simple Contrastive Learning of Visual Representations) — це фреймворк для навчання без нагляду, який використовує контраст між розширеними варіантами зображень для вивчення візуальних представлень. Він створює два розширених варіанти кожного зображення, кодує їх у вектор ознак за допомогою нейронної мережі та відображає ці ознаки у контрастний простір через проекційний блок. Модель потім застосовує контрастну втрату для максимізації схожості між позитивними парами (видів одного зображення) та мінімізації схожості з негативними парами (видів інших зображень у партії). Однак SimCLR вимагає великих розмірів партії, щоб забезпечити достатню кількість негативних зразків, що робить його обчислювально дорогим.
Анімована візуалізація SimCLR
MoCo, з іншого боку, використовує двоєдиний кодувальник і словник (у вигляді черги), щоб ефективно обробляти контрастне завдання. Кожне вхідне зображення двічі розширюється для створення запиту та ключа. Запит обробляється через кодувальник запиту, в той час як ключ проходить через кодувальник ключа з оновленням моментуму, забезпечуючи стабільні представлення ознак з часом. Позитивні пари формуються між запитом і ключовими векторами того самого зображення, в той час як негативи вибираються з словника, що зберігає попередні вектори ключів. Після кожної ітерації найстаріші записи в словнику замінюються новими векторами ключів, підтримуючи різноманітний і динамічний пул негативів. Сам кодувальник ключа оновлюється за допомогою механізму моментуму, де він поступово успадковує параметри кодувальника запиту.
Контрастна втрата потім застосовується для того, щоб наблизити позитивні пари і відштовхнути негативні, роблячи MoCo енергоефективним і ефективним навіть при менших розмірах партії.
Анімована візуалізація MoCo
Проект експерименту: Глибоке занурення
Ми оцінили продуктивність геопросторових SSL-бекбонів (MoCo) порівняно з бекбонами, попередньо навченими на ImageNet, для семантичної сегментації, використовуючи набір даних L7Irish, який надає маски для оцінки хмарності для зображень Landsat 7, та набір даних L8Biome, який пропонує маски хмар для зображень Landsat 8. Обидва набори даних містять багатоспектральні супутникові зображення з вручну анотованими класами хмар. Набори даних мають 5 класів хмар: заповнення, тінь хмари, чисте, тонка хмара та хмара, і були попередньо оброблені в єдиний формат для зручності використання.
Для бекбонів ми використовували:
- ResNet-18 та ResNet-50, ініціалізовані за допомогою одного з варіантів:
- Попереднє навчання на ImageNet: Навчання на даних природних зображень.
- Попереднє навчання на геопросторових даних (MoCo): Навчання в умовах самонавчання за допомогою незавершених геопросторових зображень.
Бекбон з ImageNet був отриманий за допомогою бібліотеки Torchvision, а геопросторовий бекбон був отриманий з TorchGeo, бібліотеки PyTorch, яка надає набори даних, семплери, трансформації та попередньо навчені моделі спеціально для геопросторових даних.
Основною метрикою для оцінки продуктивності семантичної сегментації був середній інтерсекційний коефіцієнт (mIoU) для відповідних класів. Однак основною метою було продемонструвати потенціал геопросторових SSL-бекбонів для будь-якого загального завдання для геопросторового штучного інтелекту. У цьому блозі ми будемо називати бекбони, попередньо навчені на великих геопросторових даних за допомогою методів MoCo та SimCLR, як «Геопросторовий MoCo» та «Геопросторовий SimCLR» відповідно.
Результати та спостереження
Продуктивність на семантичній сегментації (10 епох)
Після 10 епох геопросторові бекбони MoCo продемонстрували порівнянну або кращу продуктивність порівняно з бекбонами, попередньо навченими на ImageNet.
Таблиця 1: Порівняння результатів після тренування всіх моделей протягом 10 епох
Ключове спостереження:
- Геопросторові бекбони MoCo краще підходять для геопросторових зображень, ймовірно, завдяки здатності захоплювати узагальнені ознаки з незавершених геопросторових даних.
- Результати показують, що бекбони, попередньо навчені за допомогою Geospatial MoCo, конвергують значно швидше, ніж бекбони, попередньо навчені на ImageNet.
Розширене навчання до 100 епох
Після розширеного навчання геопросторові бекбони MoCo все одно зберігали перевагу в продуктивності або паритет із бекбонами, попередньо навченими на ImageNet.
Таблиця 2: Порівняння результатів після тренування всіх моделей протягом 100 епох
Ключове спостереження:
- Для довших тренувальних періодів різниця між геопросторовими бекбонами MoCo та бекбонами, попередньо навченими на ImageNet, зменшується трохи, але не зникає, підкреслюючи узагальненість Geospatial MoCo навіть при значному доопрацюванні.
Відповідність з результатами в літературі
Щоб підтвердити наші висновки, ми звернулися до результатів, опублікованих у оригінальній статті, де досліджували навчання без нагляду для геопросторових завдань. У статті Geospatial MoCo стабільно перевершував як бекбони, попередньо навчені на ImageNet, так і бекбони, попередньо навчені на Geospatial SimCLR для різних наборів даних та метрик. Наприклад, Geospatial MoCo показав вищі значення mIoU та точності для наборів даних L7Irish та L8Biome, підтверджуючи свою стійкість у вивченні доменно-специфічних геопросторових ознак.
Зважаючи на перевагу Geospatial MoCo над Geospatial SimCLR у початкових експериментах, ми обмежили нашу оцінку порівнянням Geospatial MoCo з попереднім навчанням на ImageNet.
Тенденції, спостережені в наших експериментах, такі як здатність Geospatial MoCo перевершувати бекбони ImageNet у геопросторових завданнях, добре узгоджуються з висновками з цієї статті. Така паралель у висновках зміцнює позицію Geospatial MoCo як надійної альтернативи для ініціалізації геопросторових моделей.
Використання геопросторових бекбонів в arcgis.learn
Наші експерименти з геопросторовими бекбонами MoCo за допомогою бібліотеки TorchGeo показують, що самонавчання (self-supervised learning) — це не лише життєздатна альтернатива попередньому навчанню на ImageNet, але й потенційно майбутнє геопросторового глибокого навчання. Ми інтегрували ці бекбони з бібліотекою arcgis.learn, і їх можна використовувати як альтернативу бекбонам ImageNet для досягнення кращої продуктивності в багатьох випадках.
У наведеному нижче прикладі ми використаємо ResNet-18 від torchgeo, навчений на RGB-даних Sentinel-2 за допомогою MoCo, як бекбон для FasterRCNN для виявлення басейнів.
Необхідні імпорти
from arcgis.learn import prepare_data, FasterRCNN
Експорт та підготовка тренувальних даних
Інструмент Export Training Data for Deep Learning з форматом метаданих Export Tiles
використовується для експорту тренувальних даних для моделі. Дивіться цей приклад блокноту для отримання більш детальної інформації щодо експорту даних для виявлення об'єктів.
data = prepare_data(path, batch_size=4, chip_size=256)
Візуалізація тренувальних зразків
data.show_batch()
Графіки тренувальних зразків
Перелік підтримуваних бекбонів TorchGeo
Ви можете перерахувати всі підтримувані бекбони TorchGeo за допомогою наступного фрагмента коду:
backbone_list = FasterRCNN.torchgeo_backbones()
print(backbone_list)
Список усіх підтримуваних бекбонів TorchGeo
Ми бачимо, що TorchGeo надає кілька геопросторових бекбонів, попередньо навчених на даних Sentinel, Landsat та fMoW, для різних комбінацій спектрів та використання різних методів самонавчання (SSL). Ми можемо вибрати відповідний бекбон для доопрацювання нашої моделі в залежності від завдання та доступних зображень.
Ініціалізація моделі FasterRCNN
Тут ми використовуватимемо «hf:resnet18sentinel2rgb_moco» для нашого прикладу, оскільки ми використовуємо RGB-зображення з високою роздільною здатністю. Аргумент «backbone» може бути використаний для вказання
model = FasterRCNN(data, backbone='hf:resnet18_sentinel2_rgb_moco')
Навчання моделі
Щоб натренувати модель, використовуйте метод fit()
, який використовує такі аргументи:
- epochs — кількість циклів навчання на даних.
- lr — швидкість навчання, яка буде використана для тренування моделі.
- tensorboard — моніторинг продуктивності моделі під час навчання, допомагає виявити оптимальні гіперпараметри.
model.fit(epochs=10, lr=1e-4, tensorboard=True)
Логи тренування
Візуалізація результатів та виведення середньої точності
Метод «show_results()» можна використовувати для візуалізації результатів натренованої моделі.
model.show_results()
Результати натренованої моделі
Вивести середній показник точності моделі можна за допомогою наступного фрагмента коду:
print(model.average_precision_score())
Середній показник точності натренованої моделі
Збереження моделі
Коли метрики та втрати задовільняють вимоги, натреновану модель можна зберегти у форматі пакету глибокого навчання (.dlpk), який оптимізовано для масштабованого інференсу.
Це стандартний формат, що використовується для розгортання моделей глибокого навчання на платформі ArcGIS. Метод save() використовується для цього, і за замовчуванням модель буде збережена в підкаталозі в директорії з тренувальними даними.
model.save('fasterrcnn_moco_trained_model')
Висновок
У цьому пості ви побачили, як самонавчені геопросторові бекбони можуть служити потужною альтернативою бекбонам, попередньо навченим на ImageNet, для завдань GeoAI. Ви можете використовувати бекбони torchgeo, які надаються через модуль arcgis.learn бібліотеки ArcGIS API for Python
, як альтернативу традиційно використовуваним бекбонам, попередньо навченим на ImageNet.
Прийнявши геопросторові бекбони, навчені за допомогою SSL, ми можемо:
- Зменшити залежність від мічених датасетів.
- Досягти кращої або порівнянної продуктивності на завданнях GeoAI.
- Відкрити потенціал величезних, ще не використаних пулів немічених геопросторових даних.
Якщо ви працюєте в сфері геопросторового ШІ, ми рекомендуємо вам експериментувати з попередньо навченими геопросторовими SSL-бекбонами, такими як MoCo і SimCLR. Незалежно від того, чи працюєте ви з семантичним сегментуванням, виявленням об'єктів чи будь-яким іншим завданням, ці бекбони можуть надати вашим моделям перевагу, яку вони потребують.
Перекладено з: Exploring Self-Supervised Geospatial Backbones for GeoAI tasks