Сети глубокого убеждения против сверточных нейронных сетей

Я новичок в области нейронных сетей, и я хотел бы знать разницу между Deep Belief Networks и Convolutional Networks. Кроме того, существует ли Глубокая Сверточная Сеть, которая представляет собой комбинацию Глубоких Верований и Сверточных Нейронных Сетей?

Это то, что я собрал до сих пор. Пожалуйста, поправьте меня, если я ошибаюсь.

Для решения проблемы классификации изображений сети Deep Belief имеют много уровней, каждый из которых обучается с использованием жадной послойной стратегии. Например, если мой размер изображения 50 х 50, и я хочу глубокую сеть с 4 слоями, а именно

  1. Входной слой
  2. Скрытый слой 1 (HL1)
  3. Скрытый слой 2 (HL2)
  4. Выходной слой

Мой входной слой будет иметь 50 x 50 = 2500 нейронов, HL1 = 1000 нейронов (скажем), HL2 = 100 нейронов (скажем) и выходной слой = 10 нейронов, чтобы тренировать веса (W1) между входным слоем и HL1, I используйте АвтоЭнкодер (2500 - 1000 - 2500) и изучите W1 размером 2500 x 1000 (это обучение без контроля). Затем я передаю все изображения через первые скрытые слои, чтобы получить набор функций, а затем использую другой автокодер ( 1000 - 100 - 1000), чтобы получить следующий набор функций, и, наконец, использую слой softmax (100 - 10) для классификации. (только изучение весов последнего слоя (HL2 - Выход, который является слоем softmax) является обучением под наблюдением).

(Я мог бы использовать RBM вместо автоэнкодера).

Если бы та же проблема была решена с помощью сверточных нейронных сетей, то для входных изображений 50x50 я бы разработал сеть, используя только 7 x 7 патчей (скажем). Мои слои будут

  1. Входной слой (7 х 7 = 49 нейронов)
  2. HL1 (25 нейронов для 25 различных функций) - (слой свертки)
  3. Слой пула
  4. Выходной слой (Softmax)

А для изучения весов я беру 7 x 7 патчей из изображений размером 50 x 50 и перевожу их через сверточный слой, поэтому у меня будет 25 различных карт объектов размером (50 - 7 + 1) x (50 - 7) + 1) = 44 х 44.

Затем я использую окно, скажем, 11x11 для объединения рук, поэтому получаю 25 карт характеристик размером (4 x 4) для вывода слоя объединения. Я использую эти карты характеристик для классификации.

При изучении весов я не использую мудрую стратегию слоев, как в Deep Belief Networks (обучение без учителя), но вместо этого использую контролируемое обучение и изучаю весы всех слоев одновременно. Это правильно или есть другой способ узнать вес?

Что я понял правильно?

Поэтому, если я хочу использовать DBN для классификации изображений, я должен изменить размер всех своих изображений до определенного размера (скажем, 200x200) и иметь столько нейронов во входном слое, тогда как в случае CNN я тренируюсь только на меньшем участке ввод (скажем, 10 x 10 для изображения размером 200x200) и свертывание изученных весов по всему изображению?

Предоставляют ли DBN лучшие результаты, чем CNN, или это чисто зависит от набора данных?

Благодарю вас.

2 ответа

Решение

Вообще говоря, DBN - это генеративные нейронные сети, которые объединяют ограниченные машины Больцмана (RBM) . Вы можете думать о RBM как о генеративных автоэнкодерах; если вы хотите глубокую сеть убеждений, вы должны составлять RBM, а не простые автоэнкодеры, как Хинтон и его ученик Yeh доказали, что объединение RBM приводит к сигмовидным сетям убеждений.

Сверточные нейронные сети показали себя лучше, чем DBN, в современной литературе по эталонным наборам данных компьютерного зрения, таким как MNIST. Если набор данных не является компьютерным зрением, то DBN могут определенно работать лучше. Теоретически, DBN должны быть лучшими моделями, но в настоящий момент очень трудно точно оценить совместные вероятности. Вы можете быть заинтересованы в Ли и др. Al (2009) работает над Convolutional Deep Belief Networks, которая пытается объединить их.

Я постараюсь объяснить ситуацию через обучение обуви.

Если вы используете DBN для изучения этих изображений, это плохая вещь, которая случится в вашем алгоритме обучения

  • там будут ботинки в разных местах.

  • все нейроны будут пытаться выучить не только туфли, но и место туфель на изображениях, потому что у них не будет понятия "локальный патч изображения" внутри весов.

  • DBN имеет смысл, если все ваши изображения выровнены с помощью размера, перевода и поворота.

Идея сверточных сетей заключается в том, что существует концепция, называемая распределением веса. Если я попытаюсь расширить эту концепцию "распределения веса"

  • сначала вы посмотрели на патчи 7x7, и, в соответствии с вашим примером - в качестве примера 3 ваших нейронов в первом слое вы можете сказать, что они изучили "переднюю", "заднюю" и "верхнюю" части обуви, так как они будет выглядеть одинаково для патча 7x7 через все ботинки.

    • Обычно идея состоит в том, чтобы иметь несколько слоев свертки один за другим, чтобы изучить

      • линии / края в первом слое,
      • дуги, углы во втором слое,
      • более высокие понятия в более высоких слоях, такие как обувь спереди, глаз в лицо, колесо в машине или прямоугольники, конусы, треугольники как примитивные, но все же комбинации предыдущих уровней.
    • Вы можете думать об этих трех разных вещах, которые я вам сказал, как о трех разных нейронах. И такие области / нейроны на ваших изображениях будут срабатывать, когда в какой-то части изображения есть туфли.

    • Объединение в пул будет защищать ваши более высокие активации при одновременной выборке ваших изображений и создании пространства меньшего размера, чтобы сделать вещи в вычислительном отношении проще и выполнимыми.

    • Таким образом, на последнем слое, когда вы смотрите на свой 25X4x4, другими словами, 400-мерный вектор, если где-то на рисунке есть ботинок, ваши "нейроны обуви" будут активны, тогда как нейроны не-обуви будут близки к нулю.

    • И чтобы понять, какие нейроны предназначены для обуви, а какие нет, вы поместите этот 400-мерный вектор в другой контролируемый классификатор (это может быть что-нибудь вроде multi-class-SVM или, как вы сказали, soft-max-layer)

Я могу посоветовать вам взглянуть на статью Фукусимы 1980 года, чтобы понять, что я пытаюсь сказать о неизменности перевода и линии -> дуга -> полукруг -> обувная передняя часть -> обувная идея ( http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf). Даже просто глядя на изображения на бумаге, вы получите некоторое представление.

Другие вопросы по тегам