Статья опубликована в рамках: LXI Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 15 января 2018 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ИСПОЛЬЗОВАНИЕ СВЕРТОЧНЫХ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ОБРАБОТКИ ИЗОБРАЖЕНИЙ
В современном мире, когда интернет и информационные технологии занимают все большее место во всех аспектах человеческой жизнедеятельности, популярным направлением для решения задач распознавания образов, принятия решений, кластеризации, прогнозирования, анализа данных, оптимизации является применение искусственных нейронных сетей.
Прототипом для создания нейронных сетей послужили биологические нейронные сети. Элементом такой нейронной сети является модель искусственного нейрона МакКалока-Питтса, которая показана на рисунке 1 [1].
Рисунок 1. Модель нейрона МакКалока-Питтса
У искусственного нейрона есть несколько входов, на эти входы подаются входные сигналы, на рисунке они обозначены как X. Также у нейрона имеется один выход, через который подается сигнал во внешний мир. Каждому входу назначается некоторый вес, на рисунке он обозначен как w. Большой положительный вес усиливает сигнал, а отрицательный вес ослабляет входной сигнал. Выходной сигнал нейрона вычисляется по следующей формуле:
(1)
Входной сигнал нейрона поступающий на каждый вход умножается на вес, затем все это складывается и передается на вход некой нелинейной функции которая называется функцией активации, которая определяет срабатывает нейрон или нет.
Объединение искусственных нейронов в сеть называется нейронной сетью. Смысл нейронной сети заключается в том, что выходной сигнал одного нейрона передается на вход другому нейрону. Сеть может состоять из большого количества нейронов объединённых в слои. Входной слой нейронов получает сигналы от внешнего мира, выходной слой выдает сигналы во внешний мир. Скрытый слой получает сигналы от входного и передает на выходной слой, слой называется скрытым, потому что, все, что там происходит не видно из внешней среды.
Эффективным способом распознавания изображений является использование специальной архитектуры искусственных нейронных сетей [2] – сверточных нейронных сетей. Структура данной сети однонаправленная (без обратных связей), принципиально многослойная.
Работа свёрточной нейронной сети обычно интерпретируется как переход от конкретных особенностей изображения к более абстрактным деталям, и далее к ещё более абстрактным деталям вплоть до выделения понятий высокого уровня. При этом сеть самонастраивается и вырабатывает сама необходимую иерархию абстрактных признаков (последовательности карт признаков), фильтруя маловажные детали и выделяя существенное.
В сверточных нейронных сетях нейрон получает на вход ограниченное число пикселей, как правило, это участки изображения 3 на 3, 5 на 5 пикселей.
Рисунок 2. Иллюстрация подачи значений пикселя на вход нейрона
В этом заключается главное отличие и главный плюс сверточных нейронных сетей перед полно связной, в которой каждый нейрон подключается к каждому пикселю на изображении. Иллюстрация данного утверждения приведена на Рисунке 2.
Следующий нейрон работает со следующим участком изображения, который может частично пересекаться с предыдущим нейроном.
Рисунок 3. Иллюстрация подачи значений пикселя на следующий вход нейрона
Операция, которая выполняется нейроном в этом участке сети, называется сверткой. Наглядно это операция представлена на рисунке 4.
Рисунок 4. Ядро свёртки
Операция свертки заключается в том, что рассматривается необходимый участок изображения, например, 3 на 3 пикселя, и из этого участка необходимо выделить так называемое ядро свертки. Для того чтобы выполнить операцию свертки для участка изображения, берется значение интенсивности пикселя и умножается на соответствующий элемент ядра свертки. Затем все полученные результаты складываются.
Все нейроны сети используют одинаковые ядра свертки для обработки разных участков изображения. Таким образом, происходит поиск некого элемента, который важен в разных участках изображения. Из этого следует, что за счет использования одних и тех же весов в ядрах свертки, мы существенно уменьшаем количество весов, которые нам нужно обучить в процессе обучения.
Все нейроны сети используют одинаковые ядра свертки для обработки разных участков изображения. Таким образом, происходит поиск некого элемента который важен в разных участках изображения. Из этого следует, что за счет использования одних и тех же весов в ядрах свертки, мы существенно уменьшаем количество весов, которые нам нужно обучить в процессе обучения.
Обычно на изображениях нам необходимо распознавать объекты, независимо от того, в каком они масштабе. Например, человеческое лицо на изображении может занимать большую часть изображения или маленькую, но нам важно понять, что на этом изображении находится лицо. Кроме того, на практике важнее понять находится объект на изображении или нет, чем его точное местоположение на этом изображении. Для уменьшения размерности в сверточных нейронных сетях используются так называемые слои подвыборки. Один нейрон слоя подвыборки подключен к нескольким нейронам предыдущего слоя, как правило, к фрагменту нейрона 2 x 2. Значение нейрона на следующем слое определяется значением нейрона на предыдущем слое, для определения значения нейрона используется выбор максимального значения. Таким образом, сверточные нейронные сети состоят из чередующихся слоев свертки и подвыборки соединённых между собой.
Наглядно, что представляет собой архитектура сверточной нейронной сети, можно посмотреть в работе [3] где описана сверточная нейронная сеть для распознавания рукописных букв. Сеть состоит из нескольких слоев нейронов 1,3 - слои свертки, 2 и 4 слои подвыборки. Для того чтобы решить задачу классификации используются еще два полносвязных слоя. Это можно наблюдать на рисунке 4.
Рисунок 4. Архитектура сверточной нейронной сети
Таким образом можно сделать вывод что сверточные нейронные сети учитывают локальные особенности участков изображения, так как анализируют участки изображения, связанные не только по горизонтали, но и по вертикали. Также обучать такие сети гораздо проще, потому что они используют разделяемые веса в сверточных ядрах. Для обучения нейронных сетей используется алгоритм обратного распространения ошибки, но с ограничением на веса, которые должны быть одинаковые.
Список литературы:
- Модель МакКаллока-Питтса [электронный ресурс] – Режим доступа. – URL: http://www.machinelearning.ru/wiki/index.php?title=Модель_МакКаллока-Питтса (дата обращения 21.12.2017)
- Convolutional Neural Networks (LeNet) [электронный ресурс] – Режим доступа. – URL: http://deeplearning.net/tutorial/lenet.html (дата обращения 21.12.2017)
- Backpropagation Applied to Handwritten Zip Code Recognition // JournalNeural Computation 1989. Vol. 1 Issue 4, Pages 541-551
- Лекция “Сверточные нейронные сети”. [электронный ресурс]. – Режим доступа. - URL: https://www.youtube.com/watch?v=52U4BG0ENiM (дата обращения 21.12.2017)
дипломов
Оставить комментарий