Обозначение данных с помощью автокодировщиков с прямой связью

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

Обзор проблемы

Представьте себе ситуацию, когда данных много, но данные зашумлены и нет доступа к ссылке. Хорошим примером являются изображения, показанные на рисунке 1. Здесь черные точки на изображении - это шум - значения изображения установлены на 0, и мы предполагаем, что для них нет достоверных данных. Тип данных не ограничивается изображениями и может быть любым, например, картами пациентов с отсутствующей частью данных.

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

Теория резюме

В этом разделе дается краткий обзор нейронных сетей и автокодировщиков.

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

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

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

y = s(Wx + b),

где x - входной вектор для текущего слоя, y - выход текущего слоя, W - матрица весов с W ки = w ки и w ки - это вес связи между x i и y k, b - вектор предубеждений, а s - это функция активации, применяемая поэлементно.

После передачи с прямой связью необходимо оценить целевую функцию и оценить параметры, минимизирующие ее. Обычно используемый метод оптимизации - это оптимизатор Stochastic Gradient Descend (SGD) или Adam.

Автокодировщик

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

Автокодировщик делится на кодировщик - f и декодер g . Целью кодировщика является отображение D-мерного ввода x в более низкое K-мерное пространство признаков, то есть f (x ) = h. Декодер стремится отобразить пространство признаков обратно в исходное пространство, так что входные данные реконструируются, т. Е. g (h) = g (f (x)) = r (x) ~ x, где r (x ) - функция восстановления.

Обучение с отсутствующими значениями

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

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

Алгоритм

Алгоритм состоит из семи этапов (рис. 2). Во-первых, данные предварительно обрабатываются - масштабируются от 0 до 1 и разбиваются на патчи. На следующем этапе патчи проходят через ИНС. Затем вычисляется ошибка для чистых данных, и параметры обновляются. На следующем этапе ошибка валидации вычисляется с использованием маски валидации. Если ИНС достигла локальных минимумов, текущее состояние сети сохраняется. Этот шаг пропускается, если ИНС не находится в минимуме. На следующем шаге обновляются гиперпараметры и данные перетасовываются. Если условие остановки удовлетворяется, то есть достигается максимальная эпоха, выполняется восстановление недостающих данных, в противном случае обучение продолжается.

Полученные результаты

Изображения с низкочастотными компонентами реконструируются лучше, чем с высокочастотными, т.е. более сложные сцены реконструировать сложнее. Реконструкция лучше, когда используются более крупные патчи, т. Е. Сеть имеет больше информации. Худшая реконструкция происходит на краях и углах участков, где пиксели имеют пять или три соседа - в отличие от пикселей в центре участка, где пиксели окружены восемью соседями. Возможное решение - использовать заплатки большего размера и использовать для реконструкции только центральную часть. Работу можно улучшить, используя CNN для работы с изображениями, протестировав их на изображениях RGB и применив к другим типам данных.

Невидимые данные

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