Деконволюционная Нейронная Сеть

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

вычислительных ресурсов на обучение и вычисления сети.

Сверточные нейронные сети страдают от описанных выше недостатков в меньшей степени.

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

глубокий наклон ).

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

Таким образом, идея сверточных нейронных сетей заключается в чередовании сверточных слоев.

слои свертки ) и слои субдискретизации (англ.

слои субдискретизации , слои субдискретизации).

[6]

Деконволюционная нейронная сеть

Рисунок 1. Архитектура сверточной нейронной сети Ключевым моментом в понимании сверточных нейронных сетей является понятие так называемых «общих» весов, т.е.

некоторые нейроны некоторого рассматриваемого слоя нейронной сети могут использовать одни и те же весовые коэффициенты.

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

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

Слои нейронной сети, построенные таким образом, называются сверточными слоями.

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

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

Что именно влияет на качество распознавания образов при обучении сверточных нейронных сетей? Озадачившись этим вопросом, мы наткнулись на статью Мэтью Сейлера ( Мэтью Зейлер ).

Он разработал концепцию и технологию Деконволюционные нейронные сети ( ДНН ), чтобы понять и проанализировать работу сверточных нейронных сетей.

В статье Мэтью Сейлера предлагается технология Деконволюционная нейронная сеть s, который строит иерархические представления изображения (рис.

2) с учетом фильтров и параметров, полученных в ходе обучения.

Си-Эн-Эн (Фигура 2).

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

Каждый уровень иерархии может формировать более сложные функции на основе функций уровней, расположенных в иерархии ниже.



Деконволюционная нейронная сеть

Рисунок 2. Виды изображений Основное различие между Си-Эн-Эн И ДНН это в Си-Эн-Эн Входной сигнал подвергается нескольким уровням свертки и субдискретизации.

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

3).

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

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

Понимание операции свертки требует интерпретации поведения карт объектов в промежуточных слоях.

Чтобы изучить сверточную нейронную сеть, ДНН прикрепляется к каждому из ее слоев, как показано на рис.

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

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

Затем последовательно выполняем следующие операции: (I) разделение, (II) ректификация и (III) фильтрация.

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

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



Деконволюционная нейронная сеть

Рис.

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

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

В ДНН Операция разъединения использует изменения в наборе переменных, размещенных на слое выше, в соответствующих местах слоя, который в данный момент обрабатывается (см.

рисунок 2).

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

Операция фильтрации: сверточная нейронная сеть использует фильтры, полученные в процессе обучения сети, для свертки карт объектов из предыдущего слоя.

Чтобы понять, какие фильтры были применены к изображению, deconnet использует транспонированные версии тех же фильтров.

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

Си-Эн-Эн .

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

4) взвешиваются в соответствии с их вкладом в карту объектов.

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

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



Деконволюционная нейронная сеть

Рис.

4. Структуры изображений.

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

Это связано с тем, что элементы в картах объектов связаны друг с другом через фильтры.

Один элемент на карте может влиять на другие элементы, расположенные далеко от этого элемента, а это означает, что минимизация может занять очень много времени.

Преимущества использования ДНН : 1) концептуально простые схемы обучения.

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

Это большое преимущество, поскольку происходит более полное понимание процессов, происходящих во время тренировки.

Си-Эн-Эн .

3) представления (рис.

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

Они, идеи, получаются в процессе обучения Си-Эн-Эн ; 4) подход с использованием ДНН на основе метода поиска глобального минимума, а также использования фильтров, полученных при обучении Си-Эн-Эн и предназначен для минимизации плохо обусловленных затрат, возникающих при сверточном подходе.

В рецензируемой статье также представлены результаты экспериментов, проведенных Мэтью Сейлером.

Сеть, которую он предложил на конкурсе ImageNet 2013 , показал лучший результат при решении задачи классификации изображений, ошибка составила всего 14,8%.

Классификация объектов по 1000 категориям.

Обучающий набор состоял из 1,2 миллиона изображений, а тестовый набор — из 150 тысяч изображений.

Для каждого тестового изображения алгоритм распознавания должен выдать 5 меток классов в порядке убывания их достоверности.

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

Использование 5 меток призвано исключить «наказание» алгоритма в случае, когда он распознает на изображении объекты других классов, которые могут быть представлены неявно[1].

Подробное описание конкурса ImageNet 2013. Здесь .

Результаты работы Нейронные сети деконволюции показаны на рисунке 5.

Деконволюционная нейронная сеть

Рис 5. Результаты работы ДНН Sailer планирует дальнейшее развитие технологии ДНН в следующих направлениях: 1) улучшение классификации изображений в ДНН.

ДНН сети были введены для того, чтобы понять особенности процесса обучения сверточных сетей.

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

Дальнейшая работа связана с классификацией исходных изображений, поэтому можно сказать, что будет применен шаблонный метод. Изображения будут классифицироваться в зависимости от класса, к которому принадлежит объект. 2) масштабирование ДНН .

Методы вывода, используемые в ДНН , по своей сути медленны, поскольку требуют многих итераций.

Также следует изучить методы численной аппроксимации, основанные на прямой связи.

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

3) улучшение сверточных моделей для обнаружения нескольких объектов на изображении.

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

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

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

[4] Изучив его статью, мы решили провести исследование по ДНН .

Мэтью Сейлер разработал Набор инструментов деконволюционной сети Для Матлаб .

И мы сразу столкнулись с проблемой - нетривиальной задачей установки этого Ящик для инструментов .

После успешной установки мы решили поделиться этими навыками с командой Хабра.

Итак, перейдем к процессу установки.

Набор инструментов деконволюционной сети установлен на компьютер со следующими техническими характеристиками: • Виндовс 7 64х Матлаб b2014a Начнем с подготовки программного обеспечения, которое необходимо установить: 1) Windows SDK , при установке необходимо снять галочки с пунктов Компиляторы Visual C++ Microsoft Visual С++ 2010 Если оно уже установлено на вашем компьютере ПРОТИВ 2010 перераспределяемый х64 или ПРОТИВ 2010 перераспределяемый x86, то его придется удалить.

Завершаем процесс установки Windows SDK и установить пластырь 2) После этого скачиваем и устанавливаем ПРОТИВ 2010 3) Также для установки этого набора инструментов необходимо установить мкк компилятор, в нашем случае это Компилятор Intel C++ Composer XE 2011 .

4) Б Матлаб команда набора номера

 mbuild -setup
и будет выбран автоматически SDK 7.1 .

То же самое происходит с

 mex –setup
Если компилятор был успешно установлен, теперь вы можете приступить к сборке набора инструментов.

Подготовка программного обеспечения завершена.

Начнем процесс компиляции.

1) Загрузите набор инструментов с www.matthewzeiler.com/software/DeconvNetToolbox/DeconvNetToolbox.zip и распаковать 2) Б Матлаб перейдите в каталог, где находится распакованный набор инструментов, и запустите файл "setupDeconvNetToolbox.m" 3) Заходим в папку Пулинг Toolbox .

Откройте файл compilemex.m. В этот файл необходимо внести ряд изменений, поскольку он написан для Linux. Необходимо прописать пути в MEXOPTS_PATH К Матлаб , к библиотекам, расположенным в папке с компилятором для 64-битной системы, а также к заголовочным файлам компилятора и ВизуалСтудио 2010 .

4) Сделаем еще несколько изменений, они выглядят вот так

 exec_string = strcat({'mex '},MEXOPTS_PATH,{' '},{IPP_INCLUDE_PATH},{' '}, {IPP_LIB64_PATH},{' '},{IPP_LIB_PATH},{' '},{'-liomp5mt  -lippiemerged -lippimerged  -lippcore  -lippsemerged   -lippsmerged -lippi ipp_conv2.cpp'});
 eval(exec_string{1});
То же самое нужно сделать и с остальными скомпилированными файлами.

( Пример ) 5) Также мы внесем изменения в mexopts.sh Там же нужно прописать пути к 64 и 32 битному компилятору.

( Пример ) 6) Теперь переходим в каталог Набор инструментов свертки IPP 7) Заходим в папку МЕКСИКА и запустите файл complimex.m , здесь тоже нужно написать то же, что и в пункте 4, и отдельно добавить пути к ipp_lib И ipp_include .

(Пример) Матлаб скажет, что его нет библиотеки , их необходимо разместить в c:\Program Files (x86)\Intel\ComposerXE-2011\ipp\lib\intel64\ 8) Аналогично шагу 5 вносим изменения

exec_string = strcat({'mex '},MEXOPTS_PATH,{' '},{'-liomp5mt max_pool.cpp'}); eval(exec_string{1});

( Пример ) Запускаем файл, если все сработало правильно, продолжаем.

9) Заходим в папку графический интерфейс 10) Откройте файл gui.m , здесь нужно указать путь к папке с распакованным Деконволюционный набор инструментов , для меня это выглядит так

START_DATASET_DIRECTORY = 'C:/My_projects/DeconvNetToolbox/DeconvNetToolbox'; START_RESULTS_DIRECTORY = 'C:/My_projects/DeconvNetToolbox/DeconvNetToolbox';

( Пример ) 11) Запустите файл gui.m .

Это сработало? Закрываемся и идем дальше.

12) Теперь в папке, куда был скачан Toolbox, создайте папку Полученные результаты , а в ней папка температура .

Теперь запускаем из папки Результатыgui.m, Появляется графический интерфейс, в котором задаются параметры, в правом нижнем углу «Сохранить результаты» выставляется равным 1, и нажимаете « Сохранять «В результате этих действий в справочнике графический интерфейс файл будет сгенерирован gui_has_set_the_params.mat с параметрами демо-модели ДНН сеть, предложенная Мэтью Сэйлером.

13) Теперь можно приступить к обучению полученной модели, вызвав скрипт поездВсе.

м.

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

Теперь вы можете начать свое исследование! Результатам исследования будет посвящена отдельная статья.

Библиография: 1) habrahabr.ru/company/nordavind/blog/206342 2) habrahabr.ru/company/synesis/blog/238129 3) habrahabr.ru/post/229851 4) www.matthewzeiler.com/pubs 5) geektimes.ru/post/74326 6) nordavind.ru/node/550 Теги: #деконволюция #распознавание изображений #нейронные сети #Меттью Зейлер #деконволюция #Алгоритмы #обработка изображений #компиляторы

Вместе с данным постом часто просматривают: