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

25

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

Ааднан Фарук А
источник
Скажите мне, в чем заключается точное отличие от глубокого обучения и сверточной нейронной сети? Я кое-что путаю в этих 2 темах
Ямини

Ответы:

33

Глубокое обучение - это ветвь машинного обучения, основанная на глубоких нейронных сетях (DNN), то есть нейронные сети с как минимум 3 или 4 слоями (включая входной и выходной уровни). Но для некоторых людей (особенно нетехнических) любая нейронная сеть квалифицируется как глубокое обучение, независимо от ее глубины. А другие считают 10-слойную нейронную сеть мелкой.

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

Но CNN не одиноки, есть много других архитектур нейронных сетей, включая Рекуррентные нейронные сети (RNN), Автоэнкодеры, Трансформаторы, Сети глубокой веры (DBN = стек ограниченных машин Больцмана, RBM) и многое другое. Они могут быть мелкими или глубокими. Примечание: даже неглубокие RNN могут считаться частью глубокого обучения, поскольку для их обучения требуется развернуть их во времени, что приведет к глубокой сети.

MiniQuark
источник
@MiniQurak. Пожалуйста, поправьте меня, я ошибаюсь. Я понимаю, что CNN - это всего лишь одна из архитектур глубоких сетей, таких как автоэнкодеры, Deep Belief Nets, Recurrent Neural Networks (RNN) ... это правильно?
Ааднан Фарук,
Да, это правильно.
MiniQuark,
тогда мы можем сказать, какая архитектура лучше в зависимости от набора данных? или каковы ключевые факторы?
Ааднан Фарук,
1
CNN отлично подходят для задач распознавания изображений. Они также сияют всякий раз, когда данные имеют некоторую форму иерархической структуры с локальными шаблонами (например, отрезками линий), собранными в большие шаблоны (например, квадраты, треугольники), собранными в более крупные шаблоны (например, дом, плоскость). Это хорошо работает для задач распознавания речи. RNN отлично подходят для временных рядов (например, прогнозирования погоды) и, как правило, для обработки последовательностей данных (например, предложений). Они часто используются для НЛП (обработка естественного языка). Автоэнкодеры не контролируются, они изучают закономерности в данных.
MiniQuark,
1
Хорошо, тогда :)
Firebug
21

В областях адаптивной обработки сигналов / машинного обучения глубокое обучение (DL) является особой методологией, в которой мы можем обучать машины сложным представлениям.

Как правило, они будут иметь формулировку, которая может отобразить ваши входные данные , вплоть до целевой цели , через серию иерархически сложенных (отсюда и «глубоких») операций. , Эти операции обычно являются линейными операциями / проекциями ( ), за которыми следует нелинейность ( ), например:y W i f iИксYWяея

Yзнак равноеN(,,,е2(е1(ИксTW1)W2),,,WN)

В настоящее время в DL существует множество различных архитектур : одна такая архитектура известна как сверточная нейронная сеть (CNN). Другая архитектура известна как многослойный персептрон (MLP) и т. Д. Различные архитектуры пригодны для решения различных типов проблем.

MLP, возможно, является одним из наиболее традиционных типов архитектур DL, которые можно найти, и именно тогда каждый элемент предыдущего уровня подключается к каждому элементу следующего уровня. Это выглядит так:

введите описание изображения здесь

В MLP матрицы кодируют преобразование из одного уровня в другой. (Через матрицу умножить). Например, если у вас есть 10 нейронов в одном слое, соединенном с 20 нейронами следующего, то у вас будет матрица , которая отобразит вход на выход , через: . Каждый столбец в кодирует все ребра, идущие от всех элементов слоя к одному из элементов следующего слоя.W R 10 x 20 v R 10 x 1 u R 1 x 20 u = v T W WWяWр10Икс20vр10Икс1Uр1Икс20Uзнак равноvTWW

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

Это где CNN пришли! Вот как это выглядит:

введите описание изображения здесь

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

Принято считать, что «CNN» относятся к сетям, в которых у нас есть сверточные слои по всей сети, и к MLP в самом конце, поэтому об этом следует помнить.

Тарин Зияе
источник
1
+1 Отличный ответ, я только что узнал о теплицах. ;-)
MiniQuark
@MiniQuark Спасибо! Да, вы можете записать свертку как умножение на матрицу Теплица. :)
Тарин Зияе
@TarinZiyaee и MiniQurak Можете ли вы, ребята, предложить мне какую-нибудь хорошую книгу / журнальную статью / учебник для начинающих, чтобы подробно узнать о глубоком обучении.
Ааднан Фарук,
CNN не обязательно глубокие (-1)
Firebug
7

Глубокое обучение = глубокие искусственные нейронные сети + другие виды глубоких моделей .

Глубокие искусственные нейронные сети = искусственные нейронные сети с более чем одним слоем. (см. минимальное количество слоев в глубокой нейронной сети или в Википедии для дальнейших дискуссий…)

Convolution Neural Network = тип искусственных нейронных сетей

Франк Дернонкур
источник
Честно говоря, Deep Learning также включает в себя «многослойные машины с ядром», и CNN могут быть мелкими. :)
MiniQuark
@MiniQuark да.
Франк Дернонкур
искусственные нейронные сети с более чем одним слоем ..... Я не уверен, что сеть с двумя слоями называется глубокой сетью.
SmallChess
1
@StudentT Может быть, я не работаю в маркетинге;) en.wikipedia.org/w/…
Франк Дернонкур
1
Это должен быть главный ответ, потому что CNN не обязательно являются глубокими, и глубокое обучение касается не только ANN (в обычном смысле).
Firebug
6

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

CNN может быть глубоким или неглубоким; Это зависит от того, следует ли это построение «иерархии объектов», потому что некоторые нейронные сети, включая двухслойные модели , не являются глубокими.

Определение Янна ЛеКуна

Sycorax говорит восстановить Монику
источник
3

Deep learningэто общий термин для обозначения сложной нейронной сети с несколькими слоями. Не существует стандартного определения того, что именно deep. Обычно вы можете думать, что глубокая сеть - это нечто слишком большое для вашего ноутбука и ПК для обучения. Набор данных будет настолько огромным, что вы не сможете разместить его в своей памяти. Вам может понадобиться графический процессор, чтобы ускорить ваше обучение.

Deep больше похоже на маркетинговый термин, чтобы сделать что-то более профессиональным, чем иначе.

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

SmallChess
источник
Я хотел бы возражать против некоторых из этих утверждений: сеть, как правило, считается глубокой, когда в ней имеется более одного скрытого слоя, и большинство людей согласятся с тем, что наличие более 10 скрытых слоев определенно является глубоким. Вполне возможно тренировать глубокие сети на вашем ноутбуке, я делаю это все время. Набор данных не обязательно должен быть огромным, особенно если вы используете обучение переносу (то есть многократное использование слоев из предварительно обученной сети) и / или увеличение данных. Конечно, вокруг слова «глубокий» много шумихи, но есть специальные методы для глубокого изучения, поэтому это не просто ажиотаж. :)
MiniQuark
@MiniQuark С расширением данных ваш набор данных будет по-прежнему большим, просто вы начнете с чего-то небольшого ...
SmallChess
Хороший вопрос, вы правы. Я хотел сказать, что набор данных будет помещаться в память, поскольку вы будете генерировать большую часть данных на лету.
MiniQuark