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

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

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

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

  • Уровень ввода
  • Скрытый слой 1 (HL1)
  • Скрытый слой 2 (HL2)
  • Уровень вывода

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

(Я мог бы использовать RBM вместо autoencoder).

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

  • Входной уровень (7 x 7 = 49 нейронов)
  • HL1 (25 нейронов для 25 различных функций) - (слой свертки)
  • Объединяющий слой
  • Выходной уровень (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 (Unsupervised Learning), но вместо этого использую контролируемое обучение и одновременно изучаю вес всех слоев. Правильно ли это или есть ли другой способ узнать веса?

Я правильно понял?

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

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

Спасибо.

Ответ 1

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

Сверторные нейронные сети в своей литературе сравниваются с БДН лучше, чем DBN, в базовых наборах данных компьютерного зрения, таких как MNIST. Если набор данных не является компьютерным видением, то DBN могут наиболее определенно работать лучше. Теоретически, DBN должны быть лучшими моделями, но очень сложно оценить совлокальные вероятности точно на данный момент. Вас может заинтересовать Lee et. al (2009) работают над сетями сверкающего глубокого убеждения, которые собираются объединить эти два.

Ответ 2

Я попытаюсь объяснить ситуацию обучением.

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

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

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

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

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

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

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

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

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

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

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

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