Сверточные нейронные сети (ConvNets) являются широко используемыми инструментами для глубокого обучения. Они в частности подходят для изображений как входные параметры, несмотря на то, что они также используются в других приложениях, таких как текст, сигналы и другие непрерывные ответы. Они отличаются от других типов нейронных сетей несколькими способами:
Сверточные нейронные сети вдохновлены биологической структурой зрительной зоны коры головного мозга, которая содержит расположения простых и комплексных ячеек [1]. Эти ячейки, как находят, активируются на основе подобластей поля зрения. Эти подобласти называются восприимчивыми полями. Вдохновленный результатами этого исследования, нейронов в сверточном слое connect к подобластям слоев перед тем слоем вместо того, чтобы быть полностью соединенным как в других типах нейронных сетей. Нейроны безразличны к областям за пределами этих подобластей в изображении.
Эти подобласти могут перекрыться, следовательно нейроны ConvNet производят пространственно коррелируемые результаты, тогда как в других типах нейронных сетей, нейроны не совместно используют связей и производят независимые результаты.
Кроме того, в нейронной сети с полностью соединенными нейронами, количество параметров (веса) может увеличиться быстро как размер входных увеличений. Сверточная нейронная сеть сокращает количество параметров с сокращенным количеством связей, совместно использованных весов и субдискретизации.
ConvNet состоит из нескольких слоев, таких как сверточные слои, макс. объединяющие или объединяющие среднее значение слои и полносвязные слоя.
Нейроны в каждом слое ConvNet располагаются 3-D способом, преобразовывая 3-D вход к 3-D выходу. Например, для входа изображений, первый слой (входной слой) содержит изображения как 3-D входные параметры, с размерностями, являющимися высотой, шириной и цветовыми каналами изображения. Нейроны в первом сверточном слое connect в области этих изображений и преобразовывают их в 3-D выход. Скрытые модули (нейроны) в каждом слое изучают нелинейные комбинации исходных входных параметров, который называется извлечением признаков [2]. Эти изученные функции, также известные как активации, от одного слоя, становятся входными параметрами для следующего слоя. Наконец, изученные функции становятся входными параметрами к классификатору или функции регрессии в конце сети.
Архитектура ConvNet может варьироваться в зависимости от типов и количеств включенных слоев. Типы и количество включенных слоев зависят от конкретного приложения или данных. Например, если у вас есть категориальные ответы, у вас должны быть функция классификации и слой классификации, тогда как, если ваш ответ непрерывен, у вас должен быть слой регрессии в конце сети. Меньшая сеть только с одним или двумя сверточными слоями может быть достаточной, чтобы изучить небольшое количество данных о полутоновом изображении. С другой стороны, для более комплексных данных с миллионами цветных изображений, вам может быть нужна более сложная сеть с несколькими сверточными и полносвязные слоя.
Можно конкатенировать слои сверточной нейронной сети в MATLAB® следующим образом:
layers = [imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer];
После определения слоев вашей сети необходимо задать опции обучения с помощью trainingOptions
функция. Например,
options = trainingOptions('sgdm');
Затем можно обучить сеть с обучающими данными с помощью trainNetwork
функция. Данные, слои и опции обучения становятся входными параметрами к учебной функции. Например,
convnet = trainNetwork(data,layers,options);
Для детального обсуждения слоев ConvNet смотрите, Задают Слои Сверточной нейронной сети. Для подготовки учебных параметров смотрите Настроенные Параметры и Обучите Сверточную нейронную сеть.
[1] Hubel, H. D. и Wiesel, T. N. ''Восприимчивые Поля Одного нейронов в Полосатой Коре CAT''. Журнал Физиологии. Vol 148, стр 574-591, 1959.
[2] Мерфи, K. P. Машинное обучение: вероятностная перспектива. Кембридж, Массачусетс: нажатие MIT, 2012.
trainNetwork
| trainingOptions