Структура сверточных нейронных сетей принципиально многослойная. Работа сверточной нейронной сети обычно интерпретируется как переход от конкретных особенностей изображения к более абстрактным деталям и далее к еще более абстрактным деталям вплоть до выделения понятий высокого уровня. При этом сеть самонастраивается и вырабатывает необходимую иерархию абстрактных признаков (последовательности карт признаков), фильтруя маловажные детали и выделяя существенное. Примером классической сверточной нейронной сети является сеть VGG16 (рисунок 2.6).
Рисунок 2.6 – Структура классической сети VGG16
Сеть VGG-16 имеет 16 слоев и способна работать с изображениями достаточно большого формата 224×224 пикселя. В своей стандартной топологии эта сеть способна работать с датасетом изображений ImageNet, содержащим более 15 млн изображений, разбитых на 22000 категорий.
Рекуррентные нейронные сети отличаются от многослойных сетей тем, что могут использовать свою внутреннюю память для обработки последовательностей произвольной длины. Благодаря направленной последовательности связей между элементами рекуррентных сетей они применимы в таких задачах, где нечто целостное разбито на сегменты, например, распознавание рукописного текста или распознавание речи.
2.7. Обучение искусственных нейронных сетей
Для работы с нейронными сетями требуется их обучение под конкретную задачу. В частности, для решения задачи распознавания объектов на изображении требуется обучение сети по специально подготовленному набору данных, который содержит изображения всех классов распознаваемых объектов, сгруппированных в соответствующие разделы. Такой тип данных носит название датасет (набор данных, Data set).
Существует большое количество уже собранных и подготовленных датасетов для решения различных задач с использованием нейронных сетей (не только для задач распознавания объектов). Более того, существуют уже заранее обученные под решение конкретной задачи нейронные сети, которые можно взять в готовом виде. Но перечень таких сетей и датасетов не очень большой, и в общем случае перед разработчиком может стоять задача выбора конфигурации нейронной сети под конкретную задачу и создание соответствующей базы данных (датасета) для ее обучения.
Формирование датасета является наиболее трудоемкой частью процесса разработки, поэтому в первую очередь нужно проверить возможное наличие похожего датасета на доступных ресурсах. На этом ресурсе имеется более 50000 свободно распространяемых датасетов и более 400000 примеров реализаций нейронных сетей. В ряде случаев имеющиеся датасеты можно объединять, модифицировать и дополнять.