[#] Deconvolutional Neural Network
habrabot(difrex,1) — All
2015-03-24 17:30:03


Использование классических нейронных сетей для распознавания изображений затруднено, как правило, большой размерностью вектора входных значений нейронной сети, большим количеством нейронов в промежуточных слоях и, как следствие, большими затратами вычислительных ресурсов на обучение и вычисление сети. Сверточным нейронным сетям в меньшей степени присущи описанные выше недостатки. Свёрточная нейронная сеть (англ. [_convolutional neural network_][1], _CNN_) — специальная архитектура искусственных нейронных сетей, предложенная Яном Лекуном и нацеленная на эффективное распознавание изображений, входит в состав технологий глубокого обучения (англ. [_deep leaning_][2]). Эта технология построена по аналогии с принципами работы [зрительной коры][3] головного мозга, в которой были открыты так называемые простые клетки, реагирующие на прямые линии под разными углами, и сложные клетки, реакция которых связана с активацией определённого набора простых клеток. Таким образом, идея сверточных нейронных сетей заключается в чередовании сверточных слоев (англ. _convolution layers_) и субдискретизирующих слоев (англ. _subsampling layers_, слоёв подвыборки).[6] ![image][4] Рис 1. Архитектура сверточной нейронной сети Ключевым моментом в понимании сверточных нейронных сетей является понятие так называемых «разделяемых» весов, т.е. часть нейронов некоторого рассматриваемого слоя нейронной сети может использовать одни и те же весовые коэффициенты. Нейроны, использующие одни и те же веса, объединяются в карты признаков (_feature maps_), а каждый нейрон карты признаков связан с частью нейронов предыдущего слоя. При вычислении сети получается, что каждый нейрон выполняет свертку ([операцию конволюции][5]) некоторой области предыдущего слоя (определяемой множеством нейронов, связанных с данным нейроном). Слои нейронной сети, построенные описанным образом, называются сверточными слоями. Помимо, сверточных слоев в сверточной нейронной сети могут быть слои субдискретизации (выполняющие функции уменьшения размерности пространства карт признаков) и полносвязные слои (выходной слой, как правило, всегда полносвязный). Все три вида слоев могут чередоваться в произвольном порядке, что позволяет составлять карты признаков из карт признаков, а это на практике означает способность распознавания сложных иерархий признаков [3]. Что же именно влияет на качество распознавания образов при обучении сверточных нейронных сетей? Озадачившись данным вопросом, наткнулись на статью Мэттью Зайлера ([_Matthew Zeiler_][6]). [Читать дальше →][7]

[1]: http://en.wikipedia.org/wiki/Convolutional_neural_network
[2]: http://en.wikipedia.org/wiki/Deep_learning
[3]: https://ru.wikipedia.org/wiki/%D0%97%D1%80%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BA%D0%BE%D1%80%D0%B0
[4]: https://hsto.org/files/96d/f26/8f5/96df268f5ede4c9687e6d2999510af19.png
[5]: http://en.wikipedia.org/wiki/Convolution
[6]: http://www.matthewzeiler.com/
[7]: http://habrahabr.ru/post/253859/#habracut