Статья: Настройка, обучение и тестирование сверточной нейронной сети в задаче тематической обработки спутниковых изображений

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

НАСТРОЙКА, ОБУЧЕНИЕ И ТЕСТИРОВАНИЕ СВЕРТОЧНОЙ НЕЙРОННОЙ СЕТИ В ЗАДАЧЕ ТЕМАТИЧЕСКОЙ ОБРАБОТКИ СПУТНИКОВЫХ ИЗОБРАЖЕНИЙ

М.О. Кучма 1,2,

В.В. Воронин 1, д-р техн. наук,

В.Д. Блощинский 1,2

1Тихоокеанский государственный университет, Хабаровск),

2( Дальневосточный центр ФГБУ "НИЦ "Планета", Хабаровск)

Рассматривается алгоритм, основанный на сверточной нейронной сети, которая обнаруживает облачные образования и снежный покров на спутниковых снимках с помощью текстур. При этом в качестве входных данных используются мультиспектральные спутниковые изображения, полученные с многозонного сканирующего прибора, используемого для гидрометеорологического обеспечения и установленного на российском спутнике «Электро-Л № 2». Разработанный алгоритм позволяет создавать маски облачности и снежного покрова для области, ограниченной значениями зенитного угла Солнца в диапазоне от 0 до 80 градусов для дневного времени. Точность алгоритма оценивалась с помощью показателей машинного обучения. Предлагаемый алгоритм полностью автоматический и работает в любое время года в дневное время.

Ключевые слова: нейронные сети, обучение, тестирование, текстура, дистанционное зондирование, «Электро-Л», «МСУ-ГС».

Введение

В настоящее время в области дистанционного зондирования Земли все большее распространение получают методы текстурного анализа данных, включающие применение нейронных сетей [1, 2]. Последние исследования по данному вопросу показывают, что машинное обучение может успешно применяться для задач классификации подстилающей поверхности на спутниковых изображениях, а также для детектирования облачности [3, 4].

Для решения задачи [5] детектирования снежного покрова и облачных образований с помощью нейронных сетей по данным прибора МСУ-ГС космического аппарата (КА) ”Электро-Л” №2 используется текстурный метод [6]. Для этого метода была создана обучающая выборка [7] по спутниковым данным в виде изображений. Данная спутниковая информация доступна в Дальневосточном центре ФГБУ «Научно-исследовательский центр космической гидрометеорологии «Планета» (далее - «НИЦ «Планета»).

Обучающая выборка (ОБ) для классификации набиралась с использованием данных КА «Электро-Л» № 2 в период с марта 2018 г. по март 2019 г., с пространственным разрешением пикселя 4 км. В рамках решения поставленной задачи специалистами вручную было отобрано около 112 тысяч текстур [8], каждая из которых относилась к одному из трех классов: облачность, снег и чистая земля/чистая вода. Пример текстур показан на рис. 1.

сверточная нейронная сеть алгоритм машинное обучение

Рис. 1. Пример текстур: (а, б) земля; (в, г) вода; (д, е) облачность; (ж, з) снег.

Основные характеристики прибора МСУ-ГС КА "Электро-Л" №2 показаны в табл. 1.

Таблица 1

№ канала

Спектральный

диапазон, мкм

Разрешение

№ канала

Спектральный

диапазон, мкм

Разрешение

1

0.5 - 0.65

6

7.5 - 8.5

2

0.65 - 0.8

1 км

7

8.2 - 9.2

3

0.8 - 0.9

8

9.2 - 10.2

4 км

4

3.5 - 4.01

4 км

9

10.2 - 11.2

5

5.7 - 7.0

10

11.2 - 12.5

После того, как ОВ была набрана, сохраненные пиксели выбирались в качестве центра текстуры для обучения нейронной сети. Каждая текстура состояла из данных 5 спектральных каналов спутникового прибора: три в видимом спектре и два в инфракрасном. Данные по трем каналам видимого были скорректированы с использованием зенитного угла Солнца путем деления значений излучения (количества солнечной энергии, отраженной от поверхности Земли в определенной области) в каналах на косинус угла для каждого пикселя. Зенитный угол был добавлен ввиду того, что значения яркости в спутниковых каналах физически зависят от угла, под которым солнце освещает рассматриваемый участок [9]. Эта информация позволяет нейронной сети сводить на нет различия в значениях яркости при изменении положения Солнца. Инфракрасные каналы остались без изменений, поскольку они содержат информацию о температуре в кельвинах.

Последующие операции аугментации - зеркальное отражение и поворот каждой текстуры на 30° - позволили увеличить объем выборки до 890 тысяч. Для обучения и тестирования нейронной сети все данные были линейно нормализованы в диапазоне от 0 до 1. Нормализация проводилась отдельно по каждому каналу данных со спутника, в качестве 0 и 1 выбиралось соответствующее минимальное и максимальное значение по каждому параметру из всей обучающей выборки.

Обучение нейронной сети

Процесс обучения нейронной сети заключается в итерационной перенастройке весовых коэффициентов у нейронов заданным алгоритмом оптимизации. Обучение проходит по алгоритму обратного распространения ошибки, согласно которому на каждом шаге с зафиксированными весами нейронов вычисляется реакция сети на поданные данные, от входного слоя к выходному. Далее по полученной реакции определяется ошибка выходного слоя, называемая функцией потерь, которая при обратном проходе сети изменяет весовые коэффициенты каждого нейрона по методу градиентного спуска. В качестве функции потерь выбрана кросс-энтропия, так как она хорошо зарекомендовала себя при многоклассовой классификации [10]. Данная функция задается следующим выражением:

где C - количество прогнозируемых классов; p(C) - желаемая вероятность для каждого класса; q(C) - фактическая вероятность для каждого класса.

В качестве алгоритма оптимизации был выбран алгоритм Adam (adaptive moment estimation), в котором сочетаются идеи сохранения инерции и масштабирования градиента. Суть инерции заключается в использовании значений градиентов предыдущих итераций обучения для частичного «смягчения» быстрого изменения градиента на каждой итерации. Идея масштабирования заключается в выборе шага обучения каждого параметра в отдельности, основываясь на «истории» прошлых градиентов для данного параметра. Это реализуется за счет деления каждого элемента в градиенте на квадратный корень суммы квадратов прошлых соответствующих элементов. По сравнению с другими методами оптимизации такое сочетание позволяет достичь более высокого быстродействия в поиске оптимальных значений параметров [11].

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

Архитектура нейронной сети

В качестве решения поставленной задачи рассматривались уже существующие архитектуры нейронных сетей, модифицированные для работы с отобранными текстурами, которые хорошо зарекомендовали себя в области компьютерного зрения, в частности, VGG-16 и AlexNet [12,13]. В ходе экспериментов было выявлено, что такие архитектуры либо не могли обучиться различать представленные классы (VGG-16), либо имели малые показатели метрик машинного обучения. В качестве метрик машинного обучения в данной задаче рассматриваются следующие: точность (precision) (2), полнота (recall) (3) и f-Mepa(F) (4), которая является гармоническим средним между точностью и полнотой.

где TP, FP и FN - количество соответственно истинно-положительных, ложно-положительных и ложно-отрицательных решений.

Стоит также отметить, что идея transfer learning и fine-tuning предварительно обученных нейросетей VGG-16 и AlexNet применительно к данным дистанционного зондирования не рассматривалась в этой работе, поскольку сети имеют входные данные в формате RGB. Это означает, что на вход можно подавать данные только по трем каналам, что не соответствует нашей идее обнаружения облаков и снежного покрова с использованием данных пяти спутниковых каналов. Поэтому был рассмотрен подход к полноценному обучению этих сетей, были немного изменены их слои, чтобы можно было обучить их на подготовленных данных с пятью каналами. Однако даже в этом случае точность обнаружения в результате обучения AlexNet и VGG-16 оказалась довольно низкой (показатель F имел значения меньше 84%). Авторами было решено разработать собственную архитектуру для решения проблемы.

Первая версия архитектуры содержит следующие слои: Input; Conv2D [14]; MaxPooling [15]; FC; ReLU, tanh и Softmax; Dropout [16]. Эта модель предназначена для работы с текстурами размером 31*31 пиксель, и ее структура показана на рис. 2. Такой размер текстуры был выбран потому, что он показал хорошие результаты при работе над аналогичной задачей [17].

Рис. 2. Первая версия архитектуры рассматриваемого нейросетевого классификатора.

Рассмотрим каждый слой подробнее. Input - входные данные (текстуры) с указанием размерности. Conv2D - сверточный слой, который имеет ядро свертки - матрицу весов. Ядро, «двигаясь» по изображению, поэлементно выполняет операцию умножения с частью данных, над которой находится, формируя сигнал активации. Такая процедура выполняется для каждой локации, над которой проходит ядро, формируя таким образом карту признаков, передающуюся следующим слоям. MaxPooling - сверточный слой, который по принципу действия очень похож на Conv2D, но с тем отличием, что при «движении» происходит не операция умножения, а из части данных выбирается только максимальное значение. Этот слой был разработан для сжатия карт объектов в результате сверточной операции. Кроме того, данный слой позволяет уменьшить зависимость от смещения объектов на изображении. Dropout - слой регуляризации, который предназначен для снижения вероятности переобучения нейронных сетей. Алгоритм работы состоит в прореживании, суть которого заключается в том, что при обучении часть нейронов исключается из сети, тем самым обнуляя несущие ими признаки. FC (Fully connected) - полносвязный слой, который представляется как слой обычного многослойного перцептрона. Он состоит из нейронов, каждый из которых соединен со всеми нейронами на предыдущем слое. Основной целью слоя является классификация при помощи создания модели сложной нелинейной функции. ReLU, tanh и Softmax - функции активации, необходимые для формирования выходного сигнала нейронов. Он получается при преобразовании функцией активации взвешенной суммы входных сигналов нейрона. Для активации выходных нейронов сверточных слоев применяется функция ReLU. Ее основные преимущества - отсутствие ресурсоемких операций, отсутствие затухание градиента при обучении, быстрое обучение. Для активации выходных нейронов полносвязных слоев используется функция активации - гиперболический тангенс (tanh), имеющая следующие преимущества: область значений лежит в диапазоне [-1; 1], простое вычисление производной. Для последних слоев, дающих результат классификации в виде прогноза класса, используется функция активации Softmax.

Для этой архитектуры оценка F на тестовой выборке составила 93,56%. Для дополнительной оценки качества нейронной сети были построены маски облаков и снежного покрова для нескольких полигонов.

На следующем этапе проводился эксперимент по определению размера входных текстур. Этот эксперимент продемонстрировал, что самые высокие значения метрик в тестовом наборе данных достигаются, когда входные текстуры имеют размер 11x11 пикселей. С уменьшением размера входной текстуры архитектура нейронной сети была немного изменена. Это необходимо, потому что после трех-четырех операций свертки размер последующих слоев уменьшился до 1x1x5 и дальнейшая свертка не имела смысла. Принимая это во внимание, архитектура, представленная ранее, была переработана для нового размера входных данных, как показано на рис. 3. При использовании новой архитектуры оценка F для набора данных проверки составила 98,52%. По сравнению с предыдущей версией количество ложных отнесений облаков к снегу и земли к облакам существенно уменьшилось.

Помимо того, скорость расчета масок резко снизилась из-за уменьшения размерности входных данных и сокращения количества слоев нейронной сети.

Рис. 3. Вторая версия архитектуры рассматриваемого нейросетевого классификатора.

Затем был добавлен слой Batch normalization (нормализация пакетов), который основан на нормализации вывода уровня активации и делает обучение нейронной сети более устойчивым [18]. Также были удалены слои MaxPooling, поскольку слой сжимает текстуру, а в данной работе классификация всегда выполняется только для центрального пикселя текстуры и текстуры изначально имеют небольшую размерность. По этим причинам данный слой был удален из окончательной версии архитектуры. На основе результатов вычисленных статистических коэффициентов была выбрана архитектура классификатора нейронной сети, представленная на рис. 4, поскольку у нее были самые высокие значения показателей.

Рис. 4. Третья версия архитектуры рассматриваемого нейросетевого классификатора.

Архитектура содержит четыре блока свертки (Conv2D), что связано с размером входного сетевого уровня 11 X 11. Каждый блок включает сверточный уровень, уровень активации (ReLU) и Batch normalization. Впоследствии два FC слоя разделяются слоем регуляризации (dropout), среди которых размер выходного слоя последнего слоя соответствует количеству классов. Оценка F этой архитектуры для тестовой выборки составила 99,67%. Кроме того, для этой нейронной сети была проведена fine-tuning. Были заморожены первые два уровня, а скорость обучения снижена в 100 раз. Оценка F на тестовой выборке немного увеличилась - до 99,68%. Количество ложных классификаций холодной земли, как облаков или снега и облаков у береговой линии, уменьшилось. Примеры визуального изменения результатов классификации спутниковых снимков по трем вариантам нейронных сетей представлены на рис. 5.