Что делают полностью связанные слои в CNN?

19

Я понимаю сверточный и объединяющий слои, но я не вижу причины для полностью связанного слоя в CNN. Почему предыдущий слой напрямую не связан с выходным слоем?

Джефф
источник

Ответы:

31

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

По существу, сверточные слои предоставляют значимое, низкоразмерное и несколько инвариантное пространство признаков, а полностью связанный слой изучает (возможно, нелинейную) функцию в этом пространстве.

ПРИМЕЧАНИЕ. Преобразовать слои FC в слои Conv тривиально. Преобразование этих верхних слоев FC в слои Conv может быть полезным, как описано на этой странице.

jamesmf
источник
Спасибо за ваш ответ, Джеймс. Итак, мы изучаем веса между связанными слоями с обратным распространением, это правильно?
Джефф
Да, ошибка распространяется обратно через полностью связанный слой на сверточный и объединяющий уровни.
jamesmf
Ok. Таким образом, назначение fc-слоя можно представить как нелинейный PCA, он исправляет «хорошие» функции и уменьшает других, изучая полный набор весов.
Джефф
1
В основном это позволяет вам нелинейное сочетание функций. Все функции могут быть хорошими (при условии, что у вас нет «мертвых» функций), но комбинации этих функций могут быть даже лучше.
jamesmf
@jamesmf: Что такое мертвая функция? а о каких сочетаниях функций вы говорите? что вы подразумеваете под нелинейной комбинацией? Обязательно ли использование полностью связанного слоя в cnn? или его можно заменить без какого-либо вреда для точности? Заранее большое спасибо. Я был бы признателен, если бы вы могли дать интуицию по вопросам, которые я задавал.
Рика
4

Я нашел этот ответ Анил-Шарма на Quora полезным.

Мы можем разделить всю сеть (для классификации) на две части:

  • Выделение признаков : В обычных алгоритмах классификации, как SVMs, мы использовали для извлечения объектов из данных , чтобы сделать классификацию работы. Сверточные слои служат той же цели извлечения признаков. CNN фиксируют лучшее представление данных, и, следовательно, нам не нужно заниматься проектированием объектов.

  • Классификация : после извлечения признаков нам нужно классифицировать данные по различным классам, это можно сделать с помощью полностью подключенной (FC) нейронной сети. Вместо полностью связанных слоев мы также можем использовать обычный классификатор, такой как SVM. Но мы обычно добавляем слои FC, чтобы сделать модель непрерывной для обучения.

rocksyne
источник