В эпоху обилия спутниковых изображений классификация земного покрова стала бесценным инструментом, используемым в моделировании качества воды, вырубке лесов и исследованиях климата, росте городов и сельскохозяйственных исследованиях с развивающейся экономикой.

Я увлечен анализом и классификацией изображений (особенно в том, что касается анализа спутниковых изображений для получения экономических данных для стран с развивающейся экономикой), поэтому я подумал, что было бы полезно написать немного о некоторых из наиболее распространенных методы классификации пикселей, используемые в дистанционном зондировании.

Обзор

Наиболее распространенный вариант использования дистанционного зондирования - это что-то вроде того, с учетом области интереса (AOI), какие компоненты AOI являются фермами, ледниками, городской территорией или чем-то еще?

Проблема в том, что масштаб спутниковых изображений (до недавнего времени) был таким, что объектная форма большинства классов также не была представлена ​​в масштабе спутниковых изображений (вид здания сверху и информация о его краях и форма может быть сжата до доли пикселя), или в классах, которые достаточно велики, чтобы отображаться в виде фигур на спутниковых изображениях (ледники, леса, озера), сама форма могла бы меньше сказать о классе объекта, который она ограничивает, и подробнее о топографии местности.

ПРИМЕЧАНИЕ. Как показано на панели из трех изображений, можно значительно улучшить точность классификации выходных данных, просто увеличив разрешение входных данных. В последние годы такие поставщики изображений, как Digital Globe, Planet и Airbus сделали коммерческий доступ к изображениям субметрового разрешения. В этом масштабе имеет смысл применять стандартные методы анализа обнаружения объектов. Я скоро напишу обзор методов обнаружения объектов.

Прежде чем углубиться, ознакомьтесь с этим обзорным изображением различных методов классификации, используемых в дистанционном зондировании. Я нашел базовую версию этой диаграммы в виде слайд-шоу, плавающего в Интернете, и, хотя мне кажется, что я не могу найти в Интернете ее исчерпывающий источник, благодарим Эврена Бакилана из Стамбульского технического университета.

Классификация максимального правдоподобия (также известная как дискриминантный анализ в дистанционном зондировании)

Технически классификация максимального правдоподобия - это статистический метод, а не алгоритм машинного обучения.

На практике MLC представляет собой трехэтапный процесс. Во-первых, необходимо определить параметры каждого класса, представленного данными (обычно стандартное отклонение, сигма и среднее значение, мю). Возможно, у вас уже есть эти параметры для каждого класса, или вам может потребоваться их вычислить (что, кстати, можно легко вычислить с помощью оценки максимального правдоподобия).

Во-вторых, учитывая точку выборки данных (вектор признаков «x»), вычислите плотность вероятности этого вектора признаков для каждого класса (используя соответствующие параметры каждого класса).

Примечание. Для ясности это первое уравнение классификатора максимального правдоподобия упрощено и не предполагает корреляции между функциями.

Наконец, найдите max всех вычисленных плотностей вероятности для каждого класса. Класс, описанный какими бы параметрами ни приводил к максимальной вероятности, является прогнозируемым классом точки данных.

По сути, классификатор максимального правдоподобия может быть описан в псевдокоде как:

params_of_most_likely_class_label = argmax(x|params_of_indivdual_classes)

Если вам интересно, вот полная версия MLC, которая, вероятно, очень похожа на то, что на самом деле реализовано в программном обеспечении дистанционного зондирования.

Поскольку MLC требует знаний об основных распределениях данных, это параметрическая модель.

Это выходит за рамки данной статьи, но если вам интересно узнать о непараметрическом статистическом методе, прочтите Технику окна Парзена.

Для справки, мне очень нравится это видео, демонстрирующее, как MLC работает для классификации.

Интересно, что в одной статье 2013 года утверждается, что полиномиальная логистическая регрессия дает такую ​​же эффективность классификации, как и MLC, а также предлагает возможность включать в модели как непрерывные , так и категориальные переменные. Кроме того, в отличие от MLC, полиномиальная логистическая регрессия не является параметрической и, следовательно, не имеет требований к базовому распределению данных.

Деревья решений

На концептуальном уровне деревья решений классифицируют во многом так же, как люди, используя особенности точки данных для сужения возможных классификаций. Например, представьте, что нужно классифицировать данные как корова, зебра или страус, и особенности каждой строки данных включают number_of_legs, has_two_eyes и has_stripes.

Дерево решений может сначала посмотреть, является ли number_of_legs 2 или 4. Если 2, то алгоритм знает, что это должен быть страус, и процесс останавливается. Однако, если number_of_legs равно 4, тогда алгоритм должен искать другой признак (столбец), который поможет отличить коров от зебр. В этом примере has_stripes сделает это максимально эффективно, равномерно распределяя оба возможных результата. Если has_stripes равно True, значит, мы знаем, что это зебра. И наоборот, если has_stripes равно False, тогда мы знаем, что это корова.

Но если есть десятки или сотни функций, как дерево решений узнает, что разделит оставшиеся данные с максимальной эффективностью? Один из распространенных способов, с помощью которых деревья решений находят наиболее эффективную функцию для разделения, основан на понятиях энтропии и получения информации (подробнее Теория информации здесь).

Если выборка данных равномерно распределена между всеми классами, энтропия выборки достигает максимума, определенного log(num_of_classes). Фактическое максимальное значение определяется основанием используемого логарифма.

Чтобы дерево решений было максимально эффективным, дерево решений должно быть разделено на оставшиеся функции, которые обеспечат наибольшее снижение энтропии, то есть наибольший прирост информации. наибольший информационный выигрыш был достигнут за счет разделения на has_stripes, потому что каждый из двух выходов имеет энтропию 0 (log(1) = 0). И наоборот, разделение на has_two_eyes было бы бессмысленным, потому что, поскольку и у зебр, и у коров два глаза, мы не можем разделить наши данные, задав этот вопрос - наша полученная информация равна нулю.

Для более глубокого обсуждения механики деревьев решений я рекомендую прочитать эту отличную статью. Кроме того, чтобы узнать больше о математике, ознакомьтесь с этим замечательным произведением.

При дистанционном зондировании каждый пиксель изображения можно рассматривать как набор полос. Некоторые из них могут быть видимыми (синий, зеленый, красный), другие могут быть инфракрасными, микроволновыми или радиоволнами (практически все, что находится в электромагнитном спектре). Если бы вы смотрели на необработанные данные, каждая функция, на которую могло бы разбиться дерево решений, была бы одной из этих разных полос. Однако также часто проводят некоторую предварительную обработку необработанных данных и создают новые функции, такие как Нормализованный индекс разницы растительности (NDVI). Как следует из названия, NDVI обычно используется для определения участков растительности на спутниковом снимке.

Ансамбли деревьев

Несмотря на то, что деревья решений полезны, они часто имеют проблемы с обобщением - они имеют естественную тенденцию переоснащать данные. Одно из решений - использовать лес немного менее специфичных деревьев.

Агрегирование начальной загрузки (упаковка)

Опираясь на Закон больших чисел, мы можем использовать лес классификаторов дерева решений, каждое обучение на подмножестве (часто две трети) исходной обучающей выборки. Подмножества создаются с заменой (это означает, что когда точка данных выбрана для подмножества обучающих данных одного дерева решений, она все еще доступна для выбора для подмножеств обучающих данных другого дерева решений). Затем обычно строятся деревья, каждое из которых обычно получает 1 голос в пользу классификации. Классификация большинства побеждает.

Случайный лес

И единый классификатор дерева решений, и классификатор дерева пакетов учитывают все особенности набора данных. Это может быть дорогостоящим в вычислительном отношении.

Напротив, случайный лес случайным образом выбирает квадратный корень из общего числа функций, используемых для каждого дерева. Лес деревьев решений, каждое из которых имеет немного разные характеристики и растет из немного разных (упакованных) обучающих выборок, затем голосование. Опять же, выигрывает классификация большинства.

Полезно отметить, что вместо получения информации для деревьев в случайном лесу используется несколько иной критерий разделения, известный как индекс Джини. Подробнее о различиях между индексом Джини и алгоритмами сбора информации можно прочитать здесь.

Примечание. В Scikit-Learn оба sklearn.tree.DecisionTreeClassifier() и sklearn.ensemble.RandomForestClassifier() по умолчанию используют индекс Джини.

Хотя в первую очередь сосредоточены на применении случайных лесов, эти две статьи содержат полезное обсуждение классификаторов мешков, деревьев решений и случайных лесов. Примечание. Я размещаю ссылку на главную страницу газеты ElSevier. Я презираю их методы добычи и призываю вас поискать в Интернете (некомпенсированные) исследования, за которые они так дорого берут.

Поддержка векторных машин

Машины опорных векторов отлично подходят для ситуаций, когда у вас ограниченные данные для обучения. И наоборот, SVM плохо масштабируются, когда у вас тонны классов или большой объем обучающих данных. Кроме того, в отличие от других подходов, перечисленных здесь, SVM являются жесткими классификаторами, что означает, что в его стандартной реализации нет понятия нечеткой классификации или доверительных интервалов.

Один сравнительный документ 2014 года предполагает, что SVM классифицируют почвенный покров более точно, чем оценка максимального правдоподобия. Это могло быть связано с непараметрической природой SVM. Интуитивно это имеет смысл - трудно понять, соответствуют ли типы почвенного покрова в данной сцене гауссовскому распределению.

SVM работают, переназначая данные в многомерное пространство, а затем находя лучшую гиперплоскость для разделения классов. Идея состоит в том, чтобы найти гиперплоскость, которая максимизирует разницу между классами. Это видео дает отличный обзор того, как работают SVM.

Бинарный классификатор по своей конструкции, SVM можно сделать так, чтобы он обрабатывал мультиклассовые классификации с помощью нескольких методов. Я кратко рассмотрю два наиболее распространенных метода: один против отдыха и один против одного.

Как я уже упоминал, одним из недостатков SVM является масштабируемость. Потребность в памяти для реализации мультикласса one vs rest составляет O (N²). Это связано с тем, что для каждого отдельного класса новый классификатор обучается на целевом классе и имеет переименованную копию всех оставшихся классов.

Таким образом, более распространенный подход SVM к классификации нескольких классов - один против одного. В этом методе создается новый классификатор для всех возможных пар классов. Этот подход требует обучения большего количества классификаторов, но требует значительно меньше памяти, потому что вам не нужно переименовывать все нецелевые классы как «другие» для каждого классификатора. По-прежнему не очень эффективен, но определенно лучше, чем у остальных.

Большой проблемой при использовании машин опорных векторов является выбор ядра и настройка параметров. В этой статье было обнаружено, что ядра радиальных базисных функций (также известные как ядра Гаусса) несколько более эффективны при классификации почвенного покрова, чем полиномиальные ядра (также часто используемые для классификации почвенно-растительного покрова). Для справки: другие ядра, которые не так часто используются при классификации почвенно-растительного покрова, - это линейные ядра и сигмовидные ядра.

Подробный обзор SVM в дистанционном зондировании можно найти в этой статье.

Нейронные сети

Последнее появление на вечеринке нейронных сетей часто называют универсальными аппроксиматорами функций.

Хотя они могут быть значительно более тщательными в настройке и обучении, нейронные сети могут быть отличным вариантом, если ни один из вышеперечисленных методов не работает с вашей проблемой. Для концептуального обзора того, как нейронные сети используют слои линейных функций для моделирования нелинейных процессов, ознакомьтесь с моей записью XOR.

Поскольку существует множество архитектур нейронных сетей, я не буду здесь вдаваться в подробности. Если вас интересует классификация пикселей с помощью нейронной сети, эта статья станет хорошим обзором.

Интересно, что недавнее исследование предполагает значительное улучшение производительности за счет использования базовой архитектуры сверточной нейронной сети для классификации пикселей с учетом окружающих пикселей.

Дальнейшее чтение

Чтобы узнать больше о методах машинного обучения, используемых в дистанционном зондировании, отличный ресурс Анализ изображений, классификация и обнаружение изменений в дистанционном зондировании: с алгоритмами для ENVI / IDL и Python. Автор, Мортен Канти, имеет активное репо с множеством качественных примеров кода на Python.

Еще одним замечательным ресурсом для этой публикации был Обзор методов и приемов классификации изображений для повышения эффективности классификации »Д. Лу и К. Венга.

Пожалуйста, поделитесь в комментариях, если я сделал какие-либо ошибки или могу обновить или улучшить эту статью. :)