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 ідеально підходять для обробки зображень та відео.

RNN:

  1. RNN може обробляти довільну довжину вводу / виводу.

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

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

  4. RNN ідеально підходить для аналізу тексту та мови.



CNN без щільних шарів можуть приймати довільні розміри.
Мікаель Руссон

1

Я думаю, що ці два твердження є невірними, оскільки CNN не розбиває компонент на підкомпоненти, а скоріше використовує загальні ваги на всіх там, що перекриваються підкомпонентах (поля, що повертаються), щоб знайти однакову схему. Це не алгоритм розділення і підкорення.

У загальному випадку CNN прагне видобувати локальні та інваріантні по позиції (незалежно від їх положення), а RNN мають тенденцію знаходити різні структури протягом усього часу, навіть якщо вони далекі.

Наприклад, у випадку застосування як до природної мови, CNN добре видобуває локальні та інваріантні риси, але це не охоплює семантичні залежності великого діапазону. Він просто враховує локальні ключові фрази.

Отже, коли результат визначається всім реченням або семантичною залежністю дальнього діапазону, CNN не є ефективним, як показано в цій роботі, де автори порівнювали обидві архітектурні структури на NLP-таках.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.