В чем разница между нейронной сетью, системой глубокого обучения и сетью глубокого убеждения?


23

В чем разница между нейронной сетью, системой глубокого обучения и сетью глубокого убеждения?

Насколько я помню, ваша базовая нейронная сеть представляет собой 3-х уровневую штуку, и я описал Deep Belief Systems как нейронные сети, расположенные друг над другом.

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


может быть, вы имеете в виду «глубокое обучение»? см., например, новости / ссылки для глубокого обучения
vzn

Система Deep Belief, это термин, с которым я столкнулся, они могут быть или не быть синонимами (поиск Google подбрасывает статьи для системы Deep Belief)
Линдон Уайт

Deep Belief Network - каноническое название, потому что оно происходит от Deep Boltzmann Network (и ее можно спутать с системой распространения убеждений, которая совершенно иная, поскольку речь идет о байесовских сетях и вероятностной теории принятия решений).
Габорист

@gaborous Deep Belief Network - правильное название (документ, который я представлял мне несколько лет назад, должен был содержать опечатку). но что касается того, что происходит от глубоких сетей Больцмана, само это имя неканонично (AFAIK, рад видеть цитату). DBN происходят из сетей сигмовидной веры и стековых RBM. Я не думаю, что термин Deep Boltzmann Network используется когда-либо. С другой стороны, Deep Boltzmann Machine - это используемый термин, но Deep Boltzmann Machines были созданы после Deep Belief Networks
Линдон Уайт

@Oxinabox Вы правы, я сделал опечатку, это Deep Boltzmann Machines, хотя это действительно должно называться Deep Boltzmann Network (но тогда аббревиатура будет такой же, поэтому, может быть, поэтому). Я не знаю, какая глубокая архитектура была изобретена первой, но машины Больцмана до полуограниченной BM. DBN и DBM действительно имеют одинаковую конструкцию, за исключением того, что базовая сеть, используемая в качестве повторяющегося уровня, представляет собой SRBM против BM.
Габорист

Ответы:


10

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

многослойные сети за пределами этого были неосуществимы / эффективны с помощью предыдущих методов обучения. аналогичный прорыв произошел в 2006 году тремя разными исследователями Хинтоном, Ле Каном и Бенжио, которые смогли обучить гораздо больше слоев. Важной проблемой в этой области было распознавание почерка.

Термин «сеть глубоких убеждений», по-видимому, зародился в статье 2006 года Хинтона, касающейся байесовских сетей , которые имеют тесные концептуальные / теоретические связи / аналогии с нейронными сетями. «Алгоритм быстрого обучения для сетей глубоких убеждений»

см слайд 17, в частности, этой презентации глубоких нейронных сетей

таким образом, область глубокого обучения всего лишь ~ ½ десятилетия и подвергается быстрым исследованиям и разработкам. Google, Facebook, Yahoo имеют все объявленные инициативы, основанные на глубоком обучении, и исследования и разработки продолжаются.


веб-сайт, посвященный глубокому обучению исследователей в этой области
vzn

14

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

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

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

Базовая нейронная сеть, такая как Adaline или Perceptron (без скрытого слоя) Граница линейного решения

Большой шаг был сделан, когда были изобретены мелкие нейронные сети: вместо двудольного графа мы используем трехсторонний граф: входной «слой», выходной «слой» и один «скрытый слой» между ними. Благодаря скрытому слою, сеть теперь может принимать нелинейные решения и решать такие проблемы, как канонический XOR.

Xor нейронная сеть Xor нейронная сеть пример путей активации Xor границы решения сети

Обратите внимание, что «неглубокий» термин был придуман ретроспективно, когда были изобретены глубокие нейронные сети (также называемые n-слойными нейронными сетями). Это должно противопоставить нейронные сети только с одним скрытым слоем, с глубокими нейронными сетями с n скрытыми слоями . Как вы можете догадаться, использование большего количества скрытых слоев позволяет выбирать более сложные наборы данных, поскольку имеется больше слоев для модуляции решения (т. Е. Вы увеличиваете размерность границы своего решения, что может привести к переобучению).

N-слойная нейронная сеть Комплексная нелинейная граница решения с использованием n-слойной глубокой нейронной сети

Вы можете спросить: почему никто раньше не пытался использовать многослойные (глубокие) нейронные сети? На самом деле, они сделали это еще в 1975 году Фукусимой с Cognitron и Neocognitron (что на самом деле является сверточной нейронной сетью, но это уже другая история). Однако проблема заключалась в том, что никто не знал, как эффективно изучать такие сети, большая проблема заключалась в регуляризации . AutoEncoders Хинтона открыли путь, и позже Исправленные Линейные Единицы LeCun исправили проблему навсегда.

Как насчет Deep Beliefs Networks (DBN)? Это просто многослойные полуограниченные машины Больцмана. Таким образом, они являются своего рода глубокой нейронной сетью, но с другим базовым сетевым шаблоном (то есть: слой, этот шаблон повторяется): машины Больцмана отличаются от других сетей тем, что они являются генеративными , то есть обычно они используется, чтобы учиться на ваших данных воспроизводить их («генерировать»), в то время как обычные глубокие нейронные сети используются для разделения ваших данных (путем «границы принятия решения»).

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

На самом деле, чтобы подвести итог, вы можете сказать, что АвтоЭнкодеры являются более простой формой Deep Belief Network. Вот пример DBN, обученного распознавать лица, но НЕ номера, номера автоматически исчезают (это эффект «фиксации» DBN):

Пример Deep Belief Network по распознаванию лиц

Таким образом, в конце концов, DBN и DNN не противоположны: они дополняют друг друга. Например, вы можете представить себе систему, которая распознает рукописные символы, которые сначала передают изображение символа в DBN, чтобы сделать его более стереотипным, а затем подают стереотипное изображение в DNN, который затем выводит, какой символ представляет изображение.

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

Бонус: в отношении сверточных нейронных сетей (CNN) вы найдете множество противоречивых и запутанных утверждений, и обычно вы обнаружите, что это просто глубокие нейронные сети. Тем не менее, кажется, что консенсус заключается в том, чтобы использовать исходное определение неокогнитрона Фукусимы: CNN - это DNN, который вынужден извлекать различные функции на разных иерархических уровнях путем наложения свертки перед активацией (что DNN может делать естественным образом, но заставляя ее установив другую функцию свертки / активации на разных уровнях сети, можно получить лучший результат, по крайней мере, это ставка CNN):

Особенности глубокой нейронной сети Особенности сверточной нейронной сети

И, наконец, более точный график Искусственного интеллекта смотрите здесь .


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

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

3

Глубокие нейронные сети - это нейронные сети, которые имеют относительно высокую глубину. Они являются подклассом нейронных сетей. Идея на самом деле восходит десятилетия и не нова. Новым является то, что мы выяснили, как их тренировать на практике. Причина, по которой он стал очень популярным в последнее время, заключается в том, что их обучение стало возможным, и люди использовали их, чтобы побить современные алгоритмы. DNN требует много данных и вычислительных мощностей, которые были недоступны десятилетия назад. Джефф Хинтон, его ученики и коллеги выяснили, как обучать их на практике за последнее десятилетие, и использовали их, чтобы превзойти современные алгоритмы машинного обучения в нескольких областях, где большинство исследователей отказались от идеи их полного использования в то время.

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

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

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


Я не эксперт по ОД, поэтому возьмите то, что я написал, с недоверием.
Каве

-1

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


Таким образом, оба требуют скрытых слоев? Не могли бы вы сделать несколько скрытых слоев в обычном NN? Это сети Больцмана, вы имели в виду машины Больцмана? Так в чем же разница? Это не отвечает на вопрос (или, возможно, так и есть, но это слишком неясно).
Зло
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.