Яка різниця між згортковими нейронними мережами, обмеженими машинами Больцмана і автокодерами?


123

Останнім часом я читав про глибоке навчання, і мене бентежить термін (або, скажімо, технології). Яка різниця між

  • Конволюційні нейронні мережі (CNN),
  • Машини з обмеженим набором Больцмана (RBM) та
  • Авто-кодери?

Відповіді:


237

Autoencoder - це проста тришарова нейронна мережа, де вихідні блоки безпосередньо підключені назад до одиниць введення . Наприклад, у такій мережі:

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

output[i]має край назад input[i]для кожного i. Зазвичай кількість прихованих одиниць набагато менша за кількість видимих ​​(вхід / вихід). В результаті, коли ви передаєте дані через таку мережу, вона спочатку стискає (кодує) вхідний вектор, щоб «поміститися» у менші уявлення, а потім намагається відновити (декодувати) його назад. Завдання навчання полягає в тому, щоб мінімізувати помилку або реконструкцію, тобто знайти найбільш ефективне компактне подання (кодування) для вхідних даних.

RBM поділяє подібну ідею, але використовує стохастичний підхід. Замість детермінованих (наприклад, логістичних чи ReLU) він використовує стохастичні одиниці з особливим (як правило, двійковим гауссовим) розподілом. Процедура навчання складається з декількох етапів відбору проб Гіббса (розповсюдження: зразки прихованих обчислень, видимість; реконструкція: вибірка вибірок, заданих прихованими; повтор) та коригування ваг, щоб мінімізувати помилку відновлення.

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

Інтуїція, що стоїть за RBM, полягає в тому, що є деякі видимі випадкові змінні (наприклад, огляди фільмів від різних користувачів) та деякі приховані змінні (наприклад, фільми жанрів чи інші внутрішні особливості), а завдання тренінгу - з’ясувати, як насправді ці два набори змінних пов'язані між собою (докладніше про цей приклад можна знайти тут ).

Конволюційні нейронні мережі дещо схожі на ці два, але замість вивчення єдиної глобальної вагової матриці між двома шарами вони спрямовані на пошук набору локально пов'язаних нейронів. CNN в основному використовуються для розпізнавання зображень. Їх назва походить від оператора "згортка" або просто "фільтрувати". Коротше кажучи, фільтри - це простий спосіб виконати складну операцію за допомогою простої зміни ядра згортки. Застосуйте ядро ​​розмитості Гаусса, і ви згладите його. Застосуйте ядро ​​Canny, і ви побачите всі краї. Застосуйте ядро ​​Gabor, щоб отримати функції градієнта.

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

(зображення звідси )

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

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

Усі три моделі мають свої плюси та мінуси використання, але, мабуть, найважливішими властивостями є:

  1. Автокодекси найпростіші. Вони інтуїтивно зрозумілі, прості в реалізації та обґрунтування (наприклад, набагато простіше знайти хороші мета-параметри для них, ніж для RBM).
  2. УЗМ є генеративними. Тобто, на відміну від автокодер, які лише дискримінують одні вектори даних на користь інших, МПУ можуть також генерувати нові дані із заданим об'єднаним розподілом. Вони також вважаються більш багатими функціями та гнучкими.
  3. CNN - це дуже специфічна модель, яка в основному використовується для дуже конкретного завдання (хоча і досить популярного завдання). Більшість алгоритмів вищого рівня в розпізнаванні зображень якимось чином базуються на CNN сьогодні, але поза цією нішею вони навряд чи застосовні (наприклад, що є причиною використання згортки для аналізу перегляду фільмів?).

UPD.

Зменшення розмірності

nnxxmmm<nmнайважливіші компоненти потім використовуються як нова основа. Кожен з цих компонентів може розглядатися як функція високого рівня, що описує вектори даних краще, ніж оригінальні осі.

nm

Глибокі архітектури

mc1..cmx=i=1mwici

nmmk

Але ви не просто додаєте нові шари. На кожному шарі ви намагаєтеся дізнатись якнайкраще представлення даних із попереднього:

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

На зображенні вище є приклад такої глибокої мережі. Починаємо зі звичайних пікселів, продовжуємо з простих фільтрів, потім з елементами обличчя і, нарешті, закінчуємо цілими гранями! У цьому суть глибокого навчання .

Тепер зауважимо, що в цьому прикладі ми працювали з даними зображень і послідовно займали все більші та більші площі просторово близьких пікселів. Це не схоже? Так, тому що це приклад глибокої згорткової мережі. Нехай це базується на автокодерах або УЗМ, він використовує згортку, щоб підкреслити важливість місцевості. Ось чому CNN дещо відрізняються від автокодер і RBM.

Класифікація

Жодна із згаданих тут моделей сама по собі не працює як алгоритми класифікації. Натомість вони використовуються для попередньої перевірки - вивчення перетворень із низькорівневого та важкого для споживання уявлення (як пікселі) у високого рівня. Після того, як глибока (або, можливо, не така глибока) мережа перевірена, вхідні вектори перетворюються для кращого представлення, і отримані вектори, нарешті, переходять до реального класифікатора (наприклад, SVM або логістична регресія). На зображенні вище це означає, що в самому низу є ще один компонент, який насправді робить класифікацію.


3
@ffriend Дуже коротке і чітке пояснення. На ці теми написано багато, але ваш інструктаж є фантастичним. "RockTheStar" Якщо ви хочете більш детального пояснення, ви можете прочитати цю книгу на 100 сторінок Йошуа Бенджо (www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)
Javierfdr

що б ви використали для прогнозування послідовностей подій?
скан

2
@skan: подивіться на RNN . Зокрема, LSTM зараз досить популярний. Ви також можете задати окреме запитання з більш детальною інформацією, щоб отримати кваліфіковану відповідь, оскільки RNN - це не зовсім моя область знань.
подруга

15

Всі ці архітектури можна інтерпретувати як нейронні мережі. Основна відмінність AutoEncoder від Convolutional Network - рівень мережевої проводки. Конволюційні мережі в значній мірі є провідними. Операція згортання в значній мірі локальна в області зображення, що означає набагато більшу кількість одиниць у кількості підключень у нейронній мережі. Операція об'єднання (підсимуляція) в області зображення також є провідним набором нейронних з'єднань в нейронній області. Такі топологічні обмеження в структурі мережі. Враховуючи такі обмеження, навчання CNN вивчає найкращі ваги для цієї операції згортання (на практиці існує кілька фільтрів). CNN зазвичай використовуються для зображень та мовних завдань, де згорткові обмеження є хорошим припущенням.

Навпаки, автокодери майже нічого не вказують про топологію мережі. Вони набагато загальніші. Ідея полягає у тому, щоб знайти хорошу нейронну трансформацію для відновлення введення. Вони складаються з кодера (проектує вхід у прихований шар) та декодера (відновлює прихований шар для виведення). Прихований шар засвоює набір прихованих ознак або прихованих факторів. Лінійні автокодери охоплюють те саме підпростір, що і PCA. Враховуючи набір даних, вони дізнаються кількість баз для пояснення основної структури даних.

ОРМ також є нейронною мережею. Але інтерпретація мережі зовсім інша. МБР інтерпретують мережу як не подачу, а двосторонній графік, де ідея полягає у спільному розподілі ймовірностей прихованих та вхідних змінних. Вони розглядаються як графічна модель. Пам'ятайте, що і AutoEncoder, і CNN вивчають детерміновану функцію. З іншого боку, МПУ - це генеративна модель. Він може генерувати зразки з вивчених прихованих уявлень. Існують різні алгоритми для підготовки КВМ. Однак, наприкінці дня, вивчивши ПЗМ, ви можете використовувати його мережеві ваги, щоб інтерпретувати його як мережу подачі даних.


6

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

Тим не менш, набагато важче показати цю рівноцінність, ніж просто повірити, що вони різні звірі. Дійсно, мені важко знайти багато подібності серед трьох, як тільки я починаю пильно придивлятися.

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


1

Я не можу сказати вам багато про RBM, але autoencoder та CNN - це два різні речі. Автоенкодер - це нейронна мережа, яка навчається без нагляду. Мета автокодера - знайти більш компактне подання даних шляхом вивчення кодера, який перетворює дані у відповідне їх компактне подання, та декодера, який реконструює вихідні дані. Частина кодер автоінкодерів (і спочатку RBM) використовувалася для вивчення хороших початкових ваг більш глибокої архітектури, але є й інші програми. По суті, автокодер вивчає кластеризацію даних. На відміну від цього, термін CNN відноситься до типу нейронної мережі, яка використовує оператор згортки (часто 2D згортку, коли він використовується для завдань обробки зображень) для отримання функцій з даних. У процесі обробки зображень фільтри, які переплітаються із зображеннями, навчаються автоматично для вирішення заданої задачі, наприклад, завдання класифікації. Незалежно від того, чи є критерієм навчання регресія / класифікація (контрольована) чи реконструкція (непідконтрольна), це не пов'язане з ідеєю згортків як альтернативи афінним перетворенням. Ви також можете мати CNN-автокодер.


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