RNN против CNN на высоком уровне


53

Я думал о рекуррентных нейронных сетях (RNN) и их разновидностях, а также о сверточных нейронных сетях (CNN) и их разновидностях.

Будут ли справедливы эти два момента, чтобы сказать:

  • Используйте CNN, чтобы разбить компонент (например, изображение) на подкомпоненты (например, объект на изображении, например, контур объекта на изображении и т. Д.)
  • Используйте RNN для создания комбинаций подкомпонентов (подписи к изображениям, генерация текста, языковой перевод и т. Д.)

Буду признателен, если кто-нибудь захочет указать на неточности в этих заявлениях. Моя цель здесь состоит в том, чтобы получить более ясную основу для использования CNN и RNN.

Ответы:


42

CNN научится распознавать закономерности в пространстве. Итак, как вы говорите, CNN научится распознавать компоненты изображения (например, линии, кривые и т. Д.), А затем научится комбинировать эти компоненты для распознавания более крупных структур (например, граней, объектов и т. Д.).

Можно сказать, что в общих чертах RNN также научится распознавать шаблоны во времени. Поэтому RNN, который обучен переводу текста, может узнать, что «собака» должна переводиться по-другому, если перед ней стоит слово «горячий».

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

Я также должен отметить, что когда я говорю здесь «время» и «пространство», это не должно восприниматься слишком буквально. Например, вы можете запустить RNN на одном изображении для подписи к изображению, и значение «время» будет просто порядком, в котором обрабатываются разные части изображения. Таким образом, объекты, которые были обработаны изначально, будут сообщать заголовки объектов, которые будут обработаны позже.


3
Вы можете получить хорошую интуицию для отличий модели RNN от karpathy.github.io/assets/rnn/diags.jpeg - сильно скопированного рисунка. CNN вместе с MLP и другими нерекурсивными моделями реализуют только один-к-один модельный случай.
Нил Слэйтер

@NeilSlater Я даже знаю оригинальную статью об этом изображении, но никогда не смог извлечь из нее ничего полезного. Пожалуйста, не могли бы вы уточнить, что вы узнали из изображения?
Привет, Ангел,

2
@ Hi-Angel: изображение визуализирует возможные отношения между последовательностями и отдельными объектами, которые могут быть отображены моделью. Если вы уже хорошо понимаете перестановки, то вы можете ничего не получить от них. Причина, по которой изображение появляется в статье, заключается в том, что он демонстрирует относительную гибкость RNN: RNN может применяться ко всем различным типам показанных проблем (например, он может использоваться в задачах языкового перевода, которые соответствуют 4-му пункту), в то время как Сеть прямой связи применяется только к проблемам, соответствующим первому изображению.
Нил Слэйтер


23

Разница между CNN и RNN заключается в следующем:

CNN:

  1. CNN принимает вход фиксированного размера и генерирует выход фиксированного размера.

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

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

  4. CNN идеальны для обработки изображений и видео.

РНН:

  1. RNN может обрабатывать произвольные длины ввода / вывода.

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

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

  4. RNN идеально подходят для анализа текста и речи.



CNN без плотных слоев могут принимать входные данные произвольного размера.
Микаэль Руссон

1

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

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

Например, в случае применения обоих к естественному языку, CNN хороши в извлечении локальных и позиционно-инвариантных функций, но он не захватывает семантические зависимости на большие расстояния. Это просто рассмотреть локальные ключевые фразы.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.