Введение в методы обучения без учителя (Unsupervised Learning) для создания литологических карт
1. Введение: Проблема субъективности в геологическом картировании
Традиционный процесс создания геологической карты базируется на визуальной интерпретации. Геолог-дешифровщик смотрит на синтезированное изображение (RGB), различает цвета и текстуры, и вручную обрисовывает полигоны: «Здесь, кажется, гранит, а здесь — осадочные породы».
Этот подход имеет три фундаментальных уязвимости:
- Субъективность: Границы между литологическими разностями часто размыты (градиентны). Где один геолог проведет контакт, другой сместит его на 500 метров.
- Спектральная ограниченность: Человек оперирует только тремя каналами (Red, Green, Blue) одновременно. Спутник ASTER передает 14 каналов, WorldView-3 — 16. Мозг человека физически не может воспринимать 14-мерное пространство.
- Трудоемкость: Ручная векторизация участка в 1000 кв. км занимает недели.
GeoJet Exploration переходит к парадигме Автоматизированного Кластерного Анализа. Это применение алгоритмов машинного обучения без учителя (Unsupervised Classification), которые группируют пиксели изображения исключительно на основе их спектральной статистики, без предварительных гипотез о геологии.
Мы позволяем данным «говорить самим за себя». Алгоритм находит естественные группы пикселей (кластеры), обладающие уникальными спектральными сигнатурами, а геолог затем присваивает этим кластерам геологические имена. Это превращает картирование из искусства рисования в строгую математическую процедуру.
2. Математическая физика кластеризации
Чтобы понять, как компьютер разделяет базальты и риолиты, нужно представить спутниковый снимок не как картинку, а как матрицу данных.
2.1. Многомерное признаковое пространство (Feature Space)
Каждый пиксель снимка характеризуется вектором яркости. Если мы используем данные Sentinel-2 (10 каналов), то каждый пиксель — это точка в 10-мерном пространстве.
- Ось X — яркость в синем канале.
- Ось Y — яркость в зеленом.
- Ось Z — яркость в ближнем ИК (NIR).
- …и так далее до 10-го измерения.
В этом пространстве пиксели, принадлежащие к одной породе (например, гранитам), будут группироваться в «облако» (кластер). Пиксели воды будут в другом углу пространства, пиксели растительности — в третьем. Задача алгоритма — найти эти облака и провести между ними разделяющие гиперплоскости.
2.2. Метрики близости: Как измерить «похожесть»?
Ключевой вопрос кластеризации: как определить, что пиксель А похож на пиксель Б? Мы используем две основные метрики:
- Евклидово расстояние (Euclidean Distance): Это прямая линия между двумя точками в многомерном пространстве.
- Формула (словами): Корень квадратный из суммы квадратов разностей яркостей по каждому каналу.
- Применение: Хорошо работает, когда яркость является важным признаком (например, разделение светлых известняков и темных сланцев).
- Недостаток: Чувствительно к теням. Теневая часть скалы будет иметь большое евклидово расстояние от освещенной части той же скалы, и алгоритм ошибочно отнесет их к разным классам.
- Спектральный угол (Spectral Angle Mapper — SAM): Это угол между двумя векторами, выходящими из начала координат.
- Физический смысл: Угол определяет форму спектральной кривой, игнорируя ее амплитуду (яркость).
- Преимущество: Освещенный гранит и гранит в тени имеют разную яркость (длину вектора), но одинаковую форму спектра (направление вектора). Угол между ними равен нулю. SAM идеально подходит для горных районов с резким рельефом.
[ТЕХНИЧЕСКИЙ НЮАНС] В системе VEDART RS мы часто используем гибридный подход: сначала нормализуем векторы яркости на единичную сферу (убираем влияние рельефа), а затем применяем Евклидово расстояние. Это дает точность SAM при скорости вычисления Евклида.
3. Алгоритмическое ядро: K-Means vs ISODATA
В индустриальной практике мы используем два основных итеративных алгоритма. Рассмотрим их механику «под капотом».
3.1. Алгоритм K-Means (К-средних)
Это жесткий алгоритм, требующий от геолога заранее задать количество классов (K).
Алгоритм:
- Инициализация: Компьютер случайным образом бросает в многомерное облако точек K центроидов (центров будущих классов).
- Присвоение: Каждый пиксель изображения проверяется: к какому центроиду он ближе всего? Пиксель окрашивается в цвет этого центроида.
- Пересчет: Вычисляется среднее арифметическое положение всех пикселей, попавших в класс. Центроид перемещается в этот новый центр масс.
- Итерация: Шаги 2 и 3 повторяются до тех пор, пока центроиды не перестанут двигаться (сходимость алгоритма).
- Плюсы: Быстрый, понятный. Идеален, когда мы точно знаем, что ищем (например, разделить сцену строго на 3 класса: лес, вода, камень).
- Минусы: Если мы задали K=5, а реальных типов пород на снимке 10, алгоритм принудительно «слепит» разные породы в один класс, создавая «химеру».
3.2. ISODATA (Iterative Self-Organizing Data Analysis Technique)
Это интеллектуальная эволюция K-Means. Это динамический алгоритм, который может сам менять количество классов в процессе работы.
Особенности логики:
- Расщепление (Splitting): Если дисперсия (разброс) внутри одного кластера слишком велика (то есть в кластер попали непохожие пиксели), алгоритм автоматически расщепляет его на два.
- Слияние (Merging): Если расстояние между центрами двух кластеров меньше заданного порога (кластеры статистически неразличимы), алгоритм сливает их в один.
- Удаление: Если в кластер попало слишком мало пикселей (шум), он удаляется.
[СОВЕТ ЭКСПЕРТА] Для первичного анализа новой площади (Greenfield) всегда используйте ISODATA. Задайте широкий диапазон: от 10 до 20 классов. Пусть алгоритм сам найдет оптимальную структуру данных. K-Means используйте только для финальной «полировки», когда количество литологических единиц уже известно.
4. Технологический процесс (Workflow) обработки
В GeoJet Exploration мы применяем строгий протокол кластерного анализа, состоящий из 5 этапов.
Этап 1: Подготовка данных и удаление корреляции
Сырые данные (Raw Bands) часто сильно коррелируют. Запускать кластеризацию на коррелированных каналах неэффективно — это увеличивает вычислительную нагрузку без прироста информации.
- Решение: Мы часто подаем на вход кластеризатора не исходные каналы, а Главные Компоненты (PC1, PC2, PC3…) или MNF-трансформанты. Это ортогонализированное пространство, где кластеры разделяются наиболее четко.
Этап 2: Маскирование нецелевых объектов
Нет смысла тратить ресурсы на классификацию облаков или воды. Мы создаем бинарную маску (Mask) и исключаем эти пиксели из расчета. Статистика считается только по «полезным» пикселям (Land pixels).
Этап 3: Запуск итераций (The Crunch)
На типичной сцене Landsat (185×185 км) около 40 миллионов пикселей. Алгоритм ISODATA делает 10–20 итераций пересчета расстояний для каждого пикселя. На рабочих станциях с GPU-ускорением (CUDA) это занимает от 15 до 40 минут.
- Результат: Растровый файл, где каждый пиксель имеет значение от 1 до N (номер класса). Это еще не геологическая карта, это спектральная карта.
Этап 4: Пост-обработка (Sieving and Clumping)
Сырой результат кластеризации страдает эффектом «Соль и перец» (Salt-and-Pepper noise) — множество одиночных пикселей другого класса внутри массивного тела.
- Sieving (Просеивание): Алгоритм ищет изолированные группы пикселей (меньше, например, 5 штук) и перекрашивает их в цвет окружающего большинства.
- Smoothing (Сглаживание): Применение фильтра большинства (Majority Filter, окно 3×3 или 5×5) для выравнивания границ и придания им «картографического» вида.
Этап 5: Интерпретация и перекодировка (Labeling)
Самый ответственный этап. Геолог накладывает полученную карту классов на исходный снимок (RGB) и начинает «присваивать имена».
- Класс №1 (Красный): Совпадает с выходами известняков. Присваиваем имя «Карбонаты».
- Класс №2 (Зеленый) и Класс №5 (Синий): Оба попадают на область гранитов. Видимо, это граниты разной степени выветривания. Объединяем их в один класс «Гранитоиды».
- Класс №7: Совпадает с тенями от облаков. Помечаем как «Unclassified».
5. Кейс-стади: Районирование сложного интрузива (Кольский полуостров)
Задача: Выполнить расчленение крупного (20×20 км) щелочного массива, состоящего из концентрических зон фойяитов, луявритов и уртитов. Визуально на снимке породы выглядят одинаково серыми.
Решение:
- Использованы данные ASTER (VNIR + SWIR + TIR). Всего 14 каналов.
- Применен алгоритм ISODATA. Параметры: Min classes = 10, Max classes = 20, Max Iterations = 20.
- Результат: Алгоритм выделил 16 спектральных классов.
- Анализ:
- Классы 1-4 четко легли на периферийную часть массива (фойяиты).
- Классы 8-10 образовали кольцо внутри массива. Спектральный анализ показал наличие нефелина (уртиты).
- Класс 15 выделился узкими дугами. При наложении на магнитную карту оказалось, что это зоны концентрации титаномагнетита.
- Итог: Автоматическая классификация позволила выявить внутреннюю зональность массива, которую геологи пропускали при маршрутном картировании из-за плохой обнаженности. Время работы: 2 дня. Традиционный метод: 2 месяца полевых работ.
6. Глубинный анализ: Спектральные vs Информационные классы
Инженер должен понимать фундаментальное различие между тем, что находит машина, и тем, что нужно человеку.
- Спектральный класс (Spectral Class): Группа пикселей с одинаковой статистикой яркости.
- Пример: «Темный влажный гранит северного склона» и «Светлый сухой гранит южного склона» — это ДВА разных спектральных класса. Для машины они чужие.
- Информационный класс (Information Class): Геологическая сущность.
- Пример: Геологу нужно, чтобы и северный, и южный склоны назывались просто «Гранит».
Проблема: Отношение «Спектральный класс» к «Информационному классу» — это Many-to-One (Многие к одному). Геолог должен вручную объединить 5-6 спектральных классов (тени, освещенные склоны, выветрелые участки), чтобы получить один литологический полигон. Обратная ситуация (One-to-Many) — это катастрофа. Если один спектральный класс включает в себя и гранит, и песчаник (потому что они случайно совпали по цвету), разделить их постфактум невозможно. В этом случае нужно возвращаться назад и добавлять новые каналы (например, тепловые) или менять параметры алгоритма.
7. Интеграция с VEDART RS: Supervised refinement
В экосистеме GeoJet Exploration мы часто используем гибридный подход. Мы начинаем с кластеризации без учителя (Unsupervised) для быстрой оценки гетерогенности площади.
Затем, получив кластерную карту, мы выбираем наиболее репрезентативные участки каждого кластера и используем их как Обучающую выборку (Training Data) для более мощных алгоритмов классификации с учителем (Supervised Learning), таких как:
- Support Vector Machine (SVM): Метод опорных векторов, который строит оптимальные разделяющие гиперплоскости сложной формы.
- Random Forest: Ансамбль деревьев решений, который отлично справляется с зашумленными данными и позволяет оценить «важность переменных» (какой канал спутника внес наибольший вклад в разделение пород).
Кластеризация здесь выступает как инструмент генерации обучающей выборки. Это решает проблему «холодного старта», когда у нас нет наземных данных для обучения нейросети. Мы используем статистику самого снимка для самообучения системы.
8. Заключение: Объективность против Интуиции
Кластерный анализ не заменяет геолога. Он заменяет рутину. Он снимает с человека задачу перебора миллионов пикселей и поиска оттенков серого. Алгоритм предоставляет специалисту карту спектральной неоднородности территории. Это каркас, на который геолог натягивает свои знания о генезисе, тектонике и стратиграфии.
Преимущество кластерного подхода для Индустриального Партнера:
- Воспроизводимость: Если вы запустите алгоритм завтра на тех же данных, вы получите тот же результат. Ручная карта зависит от настроения геолога и освещенности в кабинете.
- Детализация: Алгоритм не ленится. Он выделит дайку шириной 2 пикселя (60 метров) в самом дальнем углу снимка, которую глаз человека пропустил бы.
- Скорость: Экспресс-оценка лицензионной площади (License Area Evaluation) выполняется за часы, а не недели.
FAQ: Технический блиц
Вопрос 1: Сколько классов (кластеров) лучше задавать? Ответ: Правило большого пальца: задавайте в 2-3 раза больше классов, чем ожидаемое количество геологических пород. Если вы ожидаете найти 5 пород, ставьте 15 классов. Легче потом объединить избыточные классы, чем пытаться разделить смешанные.
Вопрос 2: Работает ли это для поиска золота? Ответ: Косвенно. Золото часто приурочено к зонам гидротермальных изменений (кварц, серицит, каолинит). Эти зоны имеют уникальный спектр. Кластеризация выделит их в отдельный класс (например, «Класс №12»). Если вы проверите один пиксель из Класса №12 и найдете там изменения, то с высокой вероятностью весь Класс №12 представляет интерес.
Вопрос 3: В чем отличие от классификации нейросетями (Deep Learning/CNN)? Ответ: Кластеризация (K-Means/ISODATA) работает с пикселем как отдельной единицей. Сверточные нейросети (CNN) работают с контекстом (паттернами, текстурами, формами). CNN мощнее, но требуют огромной размеченной базы данных для обучения. Кластеризация работает «здесь и сейчас» без учителя, что делает её незаменимой на ранних стадиях разведки (Greenfield) в неизученных регионах.