В чем разница между сверточной нейронной сетью и обычной нейронной сетью?


18

Я видел, как эти термины часто встречаются вокруг этого сайта, в частности, в тегах и .

Я знаю, что нейронная сеть - это система, основанная на человеческом мозге. Но в чем разница между сверточной нейронной сетью и обычной нейронной сетью? Один из них намного сложнее и запутаннее других?

Ответы:


23

TLDR: сверточная нейронная сеть является подклассом нейронных сетей, которые имеют по крайней мере один сверточный уровень. Они отлично подходят для захвата локальной информации (например, соседних пикселей на изображении или окружающих слов в тексте), а также для уменьшения сложности модели (более быстрое обучение, требует меньше выборок, снижает вероятность переобучения).

Смотрите следующую диаграмму, изображающую несколько нейронных сети-архитектур , включая глубоководный обычные нервные-сети визуализация.


Нейронные сети (NN) , или, точнее, Искусственные нейронные сети (ANN) , представляют собой класс алгоритмов машинного обучения, которому в последнее время уделяется много внимания (опять же!) Из-за доступности больших данных и средств быстрого вычисления (большая часть глубокого обучения). алгоритмы принципиально разные вариации ИНС).

Класс ANN охватывает несколько архитектур, включая сверточные нейронные сети ( CNN ), рекуррентные нейронные сети ( RNN ), например, LSTM и ГРУ , автоассоциатор и глубокое убеждение сетей . Следовательно, CNN - это всего лишь один из видов ANN.

Вообще говоря, ANN - это совокупность подключенных и настраиваемых единиц (также называемых узлами, нейронами и искусственными нейронами), которые могут передавать сигнал (обычно вещественное число) от единицы к другой. Количество (слоев) модулей, их типы и способ их соединения друг с другом называется сетевой архитектурой.

В частности, CNN имеет один или несколько слоев сверточных единиц. Сверточный блок получает свои входные данные от нескольких блоков с предыдущего слоя, которые вместе создают близость. Поэтому входные единицы (которые образуют небольшую окрестность) делят свои веса.

Сверточные единицы (а также объединяющие единицы) особенно полезны, поскольку:

  • Они уменьшают количество единиц в сети (так как они представляют собой сопоставления «многие к одному» ). Это означает, что нужно изучить меньше параметров, что снижает вероятность переоснащения, поскольку модель будет менее сложной, чем полностью подключенная сеть.
  • Они рассматривают контекст / общую информацию в небольших кварталах. Это будущее очень важно во многих приложениях, таких как обработка / анализ изображений, видео, текста и речи, поскольку соседние входы (например, пиксели, кадры, слова и т. Д.) Обычно несут связанную информацию.

Прочитайте следующие для получения дополнительной информации о (глубоких) CNN:

  1. Классификация ImageNet с глубокими сверточными нейронными сетями
  2. Идти глубже с извилинами

PS ANN это не "система, основанная на человеческом мозге", а скорее класс систем, вдохновленных нейронными связями, которые существуют в мозге животных.


10

Сверточные нейронные сети (CNN) - это нейронные сети с архитектурными ограничениями для уменьшения сложности вычислений и обеспечения трансляционной инвариантности (сеть интерпретирует входные шаблоны независимо от перевода - с точки зрения распознавания изображений: банан - это банан независимо от того, где он находится в образ). У сверточных нейронных сетей есть три важных архитектурных особенности.

Локальное соединение: нейроны в одном слое связаны только с нейронами в следующем слое, которые пространственно близки к ним. Этот дизайн обрезает подавляющее большинство связей между последовательными слоями, но сохраняет те, которые несут наиболее полезную информацию. Сделанное здесь допущение состоит в том, что входные данные имеют пространственное значение, или в примере с компьютерным зрением связь между двумя удаленными пикселями, вероятно, менее значима, чем двумя близкими соседями.

Общие веса: это концепция, которая делает CNN "сверточными". Вынуждая нейроны одного слоя делить веса, прямой проход (подача данных через сеть) становится эквивалентом свертывания фильтра по изображению для создания нового изображения. Затем обучение CNN становится задачей изучения фильтров (решая, какие функции вы должны искать в данных).

Пул и ReLU: CNN имеют две нелинейности: уровни пула и функции ReLU. Слои пула учитывают блок входных данных и просто передают максимальное значение. Это уменьшает размер выходных данных и не требует дополнительных параметров для изучения, поэтому часто используются уровни пула, чтобы регулировать размер сети и поддерживать систему ниже вычислительного предела. Функция ReLU принимает один вход x и возвращает максимум {0, x}. ReLU(x) = argmax(x, 0), Это вводит эффект, аналогичный tanh (x) или sigmoid (x), в виде нелинейностей для увеличения выразительной силы модели.


Дальнейшее чтение

Как уже упоминалось в другом ответе, курс Стэнфорда по CS 231n подробно описывает это. Проверьте это письменное руководство и эту лекцию для получения дополнительной информации. Сообщения в блоге, как этот, и этот также очень полезны.

Если вам все еще интересно, почему у CNN такая структура, как у них, я предлагаю прочитать статью, в которой они были представлены, хотя это довольно долго, и, возможно, проверить это обсуждение между Янн Лекун и Кристофером Мэннингом о врожденных приорах (предположения, которые мы делаем, когда мы проектируем архитектуру модели).


2
"и обеспечить трансляционную инвариантность" Какого черта переводческая инвариантность? Когда вы упоминаете такой загадочный термин, вы должны, по крайней мере, интуитивно определить его.
nbro

1
Ой, я согласен - я добавил в краткое описание.
Джексон Ущура

1
Это лучший ответ для меня, поскольку он точно объясняет, как CNN представляют собой конкретный тип NN. В других ответах не упоминается, что распределение веса навязывается.
Дензилое

5

Сверточная нейронная сеть , которая имеет один сверточные слои. Если общая нейронная сеть, в общем-то, вдохновлена ​​человеческим мозгом (что не очень точно), то сверточная нейронная сеть вдохновлена ​​системой зрительной коры у людей и других животных (что ближе к истине) , Как следует из названия, этот слой применяет свертку с обучаемым фильтром (он же ядро ), в результате сеть изучает шаблоны на изображениях: края, углы, дуги, а затем более сложные фигуры. Сверточная нейронная сеть может содержать и другие слои, обычно объединяющиеся и плотные слои.

Настоятельно рекомендуем учебник CS231n по этому вопросу: он очень подробный и содержит много очень приятных визуализаций.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.