Многие производственные задачи довольно трудно решить с помощью алгоритмических методов, а некоторые из них, на данный момент, вообще не имеют алгоритмического решения. В таких случаях возможно применение различных архитектур искусственных нейронных сетей.
Искусственные нейронные сети (ИНС) в настоящее время являются объектом активного изучения и разработки. Новые архитектуры нейронных сетей появляются каждый год благодаря огромному количеству возможных вариаций комбинирования имеющихся составных элементов ИНС, параметров, которые определяют настройку конкретной модели, и неиссякаемому энтузиазму исследователей. Гораздо реже появляется что-то принципиально новое. В настоящей статье рассматривается относительно новый элемент для построения ИНС — капсульные слои.
Одними из первых сетей, применяемых для распознавания изображений, были полносвязные нейронные сети (ПНС). В этой архитектуре каждый нейрон одного слоя соединен со всеми нейронами следующего слоя. Несмотря на то что подобная структура широко применяется при обработке различных типов входных данных, на практике этот тип сетей имеет определенные проблемы при распознавании и классификации изображений. Такие сети требуют больших вычислений и склонны к переобучению. Изображение преобразуется в линейную цепочку байт, что приводит к потере части информации. Причем с каждым слоем эта потеря увеличивается. Это приводит к потере топологии изображения, т.е. взаимосвязи между отдельными его частями, что значительно влияет на качество распознавания. Также подобные сети являются неустойчивыми к небольшим пространственным деформациям изображения.
Для решения этой проблемы Яном ЛеКуном [1] была предложена архитектура так называемой свёрточной нейронной сети (СНС). В ней используются свёрточные слои, субдескритизирующие слои и полносвязные слои. В свёрточных слоях осуществляется сканирование входного изображения с помощью набора карт признаков/фильтров для обнаружения признаков низкого уровня: горизонтальных, вертикальных прямых, углов и т.д. В субдискретизирующем слое происходит подвыборка среди найденных на предыдущем слое признаков с целью уменьшения размерности карт предыдущего слоя. Это приводит к фильтрации ненужных деталей и помогает сети не переобучаться. Обычно после прохождения нескольких слоев карта признаков вырождается в вектор или даже скаляр, но в результате мы получаем сотни таких карт признаков. Далее они подаются на вход одного-двух полносвязных слоев, осуществляющих классификацию.