Многослойный Персептрон
Первой моделью глубокого обучения был многослойный персептрон. Данная модель была первоначально вдохновлена нейронными системами. МП - это тип моделей машинного обучения, которые применяют последовательность нелинейных преобразований к входным данным.
Математически МП с L слоями можно описать следующими уравнениями:
(1)
где - множество обучаемых параметров для каждого слоя - это входной вектор, является выходом в сеть и - нелинейные функции активации в слое .
Общие нелинейные функции активации для скрытых единиц измерения :
гиперболический тангенс
(2)
и выпрямленный линейный блок (ВЛб)
(3)
Обратите внимание на важность функции активации: без неё вся система была бы стеком линейных операций и могла бы быть эквивалентно записана как одна матрица. Выбор функции активации является целиком эмпирическим вопросом. Если сеть очень глубокая, активации ReLU вероятны, поскольку они уменьшают вероятность исчезновения градиента.
Сверточные Нейронные Сети
Сверточные нейронные сети (СНС) являются естественным продолжением МП для обработки данных, которое имеет известную сетчатую топологию. [3] СНС используют пространственную корреляцию сигнала, чтобы ограничить архитектуру более разумным способом. Их архитектура, несколько вдохновленная биологической визуальной системой, обладает двумя ключевыми свойствами, которые делают их чрезвычайно полезными для приложений изображений: пространственно разделяемые веса и пространственное объединение. Такого рода сети изучают особенности, инвариантные к сдвигу, т. е. фильтры, которые полезны для всего изображения. Слои объединения отвечают за снижение чувствительности выходных данных к незначительному сдвигу входных данных и искажениям.
Типичная сверточная сеть состоит из нескольких этапов. Выходные данные каждого этапа состоят из набора двумерных массивов, называемых картами объектов. Каждая карта объектов является результатом одного сверточного фильтра, примененного к полному изображению. Точечная нелинейная функция активации всегда следует за сверточным слоем.
В более общем виде сверточная сеть может быть записана как:
(4)
где - множество параметров, поддающихся обучению, как и в - входное изображение (с цветовыми каналами, высотой H пикселей и шириной W пикселей), (с размером ) выходных векторов размерности (каждый вектор представляет собой нелинейное кодирование окна ввода), является нелинейностью в слое и - это функция (опциональная) объединения в слое .
Основное различие между МП и CНС заключается в матрицах параметров : в МП матрицы могут принимать любую общую форму, в то время как в СНС эти матрицы являются ограничениями для матриц [6]. Каждый узел массива может быть выражен в качестве дискретной свертки времени между ядрами из и предыдущей скрытой единицей (преобразованной через точечную нелинейность и, возможно, объединенной). Точнее,
(5)
где это компонент карты объектов .
Из приведенного выше математического описания базовая сверточная нейронная сеть может рассматриваться как стек из трех различных компонентов (см. рисунок 1): [4]
Рисунок 1 – Архитектура типичной сверточной сети для распознавания объектов. Мы представляем один простой блок (состоящий из сверточного, нелинейного и объединяющего слоя) и конечный линейный многоклассовый классификатор.
Сверточный Слой. Входной сигнал каждого слоя – трёхмерный массив с картами особенностей двумерного размера . Каждый компонент обозначается, а карта объектов - . Выход также представляет собой 3D-массив y, соответствующий картам объектов размера. Обучаемый фильтр (и параметр смещения b j) является обучаемым ядром размера и соединяет входную карту объектов xi с выходной картой объектов. Сверточный модуль вычисляется следующим образом:
(6)
где является двумерным дискретным оператором свертки. Каждый фильтр изучает определенный объект в каждом местоположении на входе (следовательно, имеется пространственная инвариантность). Эта свертка может иметь шаг больше 1. В недавней реализации сверточного слоя стало популярным заполнять входной слой так, чтобы выходные данные сверточного слоя имели такое же измерение, как и входные данные.
Уровень Активации. Подобно случаю МП, точечная нелинейность применяется к каждому местоположению ( ) векторных карт.
Слой Объединения. Этот слой отвечает за уменьшение пространственного размера каждой карты объектов своего входного сигнала. Это свойство важно в моделях изображений по трем причинам: (i) модель устойчива к небольшим изменениям в расположении объектов в предыдущих слоях, (ii) увеличивается восприимчивое поле сети и (iii) оно контролирует емкость модели. Операция объединения может быть применена (опционально) после каждого уровня активации. Мы всегда рассматриваем слои Max pooling, которые состоят из отчетов о максимальном выходе в пределах прямоугольной окрестности. Другие популярные функции объединения включают в себя прямоугольную окрестность, норму прямоугольной окрестности или средневзвешенное значение на основе расстояния от центрального пикселя. Нужно выбирать шаг таким, чтобы слой объединения равнялся размеру ядра (например, слой объединения принимает максимальное значение в каждом окне и смещён на 2, следовательно, происходит уменьшение пространственной размерности функции карты в 2 раза).
Обучение
В этой статье мы кратко объясним, как оценка параметров (обучение) осуществляется в контексте нейронных сетей (тот же принцип применяется к МП, СНС или любому другому типу архитектуры). Различные проблемы сегментации определяются как дискриминационные задачи. Поэтому мы будем рассматривать только обучения для задач, в которых сеть предназначена для моделирования условных вероятностей.
Функция потерь
Как только модель определена, ее структура может быть абстрагирована и сеть может рассматриваться как аппроксиматор функций. В задачах классификации нейронные сети моделируются таким образом, что их выход можно рассматривать как условное распределение цели , учитывая входные и параметры . Эта вероятность может быть смоделирована путем преобразования выходных данных сети (для каждого класса ) функцией softmax:
(7)
где - функция индикатора
В особом случае, когда , функция softmax сводится к логистической регрессии. Поэтому softmax можно рассматривать как обобщение многоклассовой логистической регрессии.
Ниже мы рассмотрим набор данных , где -входное изображение, а -связанная с ним цель (метка). Мы вычисляем мультикатегориальные проблемы, в которых каждая надпись принадлежит к одной из категорий C, . Параметры модели найдены путем максимизации вероятности по данным обучения D относительно параметров :
(8)
где последняя строка предполагает, что обучающий набор выбирается из неизвестного независимого, одинаково распределенного (НОР) распространения. Эквивалентно, эту задачу оптимизации можно рассматривать как минимизацию отрицательной логарифмической вероятности обучающих данных (поскольку функция логарифма монотонна):
(9)
Обратите внимание, что эта проблема минимизации эквивалентна кросс-энтропии реального распределения цели и распределения, генерируемого нейронной сетью. В задачах классификации принято рассматривать однострунное кодирование в целевом распределении. [2] В этом случае проблему минимизации можно переписать следующим образом:
(10)
где - кодирование одной горячей метки примера обучения . Эта проблема не имеет замкнутого решения, и мы применяем итеративный подход для нахождения минимума. То есть параметры сети оцениваются путем минимизации следующей функции потерь (также известной как функция стоимости, целевая функция или критерий):
(11)
Наиболее распространенным методом оптимизации, используемым при машинной обработке, является метод градиентного спуска, который со случайным образом инициализированным набором параметров определяется как:
(12)
Этот метод также известен как метод спуска градиента. В крупных проблемах машинного обучения (например, проблемы сегментации), этот метод может стать практически неэффективным, так как он требует наличия всех данных на каждой итерации. Более того, спуск градиента может быть избыточным, если набор данных содержит аналогичные примеры.
Общим способом решения этой проблемы является рассмотрение стохастического приближения градиента, обычно называемого стохастическим градиентным спуском (СГС). В этом случае для оценки градиента используется случайная обучающая выборка и параметры обновляются следующим образом:
(13)
Чаще всего мы оптимизируем функцию потерь, используя промежуточный между стохастическим и пакетным метод, называемый мини-пакетным градиентным спуском. Этот подход, который использует подмножество обучающих выборок для выполнения каждого обновления параметров, определяется как:
(14)
Существует много различных вариантов этого правила обучения, используемого для уменьшения шума в стохастических направлениях, например, метод импульса, среднего стохастического градиентного спуска, Adagrad [5], Rmsprop и Адама [6]. Другим важным классом алгоритмов являются методы второго порядка, которые используют информацию второй производной функции потерь для улучшения оптимизации. Однако эти методы невозможно вычислить в крупномасштабных задачах, рассматриваемых в статье.
Регуляризация
Нейронные сети содержат большое количество свободных параметров, которые необходимо изучить. Эти модели могут описывать огромный диапазон явлений, но требуют много данных, чтобы избежать переобучения, то есть, когда модель способна достичь хорошей производительности на тренировочных данных, но плохо работает на тестовых данных.
Простейший метод регуляризации называется ранней остановкой. Он состоит, как следует из названия, в том, чтобы остановить обучение, как только ошибка проверки достигает минимальной ошибки.
Распад веса является еще одним очень распространенным методом регуляризации. Он используется для ограничения значений больших весов. Эти методы обычно реализуются путем добавления дополнительных условий для функций сети. В регуляризации к функции стоимости добавляется дополнительный член, который штрафует квадратную величину всех параметров. То есть, для каждого веса в сети, мы добавляем термин к функции потери, где присутствует сила регуляризации. Регуляризация имеет интуитивную интерпретацию сильно штрафующих векторов острого веса и предпочитающих диффузные векторы веса. Другой общей регуляризацией распада веса является регуляризация , которая создает разреженные ограничения на вес. Подобно , регуляризация включает в себя дополнительный термин к стоимости, функцию . Нейроны с регуляризацией в конечном итоге используют только разреженное подмножество их наиболее важных входов и становятся почти инвариантными к “шумным” входам.
Чрезвычайно эффективным методом регуляризации нейронных сетей является отсев [7]. Во время тренировки отсев осуществляется только путем поддержания активности нейрона с определенной вероятностью или его обнулением в противном случае. Его можно интерпретировать как выборку в пределах полной нейронной сети и обновление параметров выбранной сети на основе входных данных. На время теста, мы в идеале хотели бы найти пример среднего значения всех возможных выпадающих сетей. К сожалению, это невозможно для больших значений . Тем не менее, мы можем найти аппроксимацию, используя полную сеть с выходом каждого узла, взвешенным на коэффициент , поэтому ожидаемое значение выхода любого узла такое же, как и на этапах обучения.
Пакетная нормализация [8] - еще один популярный метод регуляризации глубоких сверточных нейронных сетей. [1] Этот метод частично снимает проблему внутреннего ковариантного сдвига в глубоких сетях, то есть обучение глубоких сетей затруднено из-за изменения распределения входных данных каждого слоя во время обучения, как и изменения параметров предыдущего слоя. В СГД обучении каждая активация мини-пакета центрируется в нулевую медиану и единичную дисперсию. Среднее значение и дисперсия измеряются по всей мини-партии, независимо для каждой активации. Пакетная нормализация позволяет нам использовать гораздо более высокие скорости обучения и быть менее осторожными при инициализации.
Вывод
В этой статье мы кратко представили различные аспекты проблемы сегментации изображений. Затем мы представили базовое введение в методы глубокого обучения, наиболее часто используемые для работы с проблемами компьютерного зрения.