Багатошаровий перцептрон проти глибокої нейронної мережі


16

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

Отже, питання є. Чи "багатошаровий перцептрон" те саме, що і "глибока нейронна мережа"? Якщо так, то чому використовується ця термінологія? Здається, це зайве заплутане. Крім того, припускаючи, що термінологія дещо взаємозамінна, я бачив термінологію "багатошаровий персептрон" лише тоді, коли посилався на мережу подачі вперед, що складається з повністю пов'язаних шарів (ніяких згорткових шарів або періодичних з'єднань). Наскільки широка ця термінологія? Чи можна було б використовувати термін "багатошаровий перцептрон", посилаючись на, наприклад, мережу "Початок"? Як щодо повторюваної мережі з використанням модулів LSTM, що використовуються в NLP?


1
Глибока нейронна мережа = нейронна мережа з> 1 прихованим шаром, MLP потрапляє до цієї категорії.
Тім

його просто ребрендинг. MLP були скасовані в 90-х і витіснені SVM, тому потрібно назвати це щось інше в 2000-х. припущення полягає в тому, що dnn має більше шарів, але не така велика різниця, наприклад, Le Net [MLP / CNN] (1998) 2 згортка 2 повністю пов'язана. alexnet = DNN (2012) 5 згорткових і 3 повністю пов'язаних.
seanv507

SVM засновані на підйомі градієнта, ANN - на градієнтному спуску, тому вони дійсно не витіснили ANN. SVM були перепродані та їх занадто багато, оскільки студенти нічого не знали про ANN. Щоб запустити SVM, студенти просто схопили R-пакети і були закінчені. Але для ANN вам потрібен цілий семестр, щоб зрозуміти їх з точки зору числових методів, а не з точки зору інтерпретаційної мови (тобто, плескання коду разом).
JoleT

Відповіді:


21

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

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

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

Отже, щоб відповісти на запитання,

питання в тому. Чи "багатошаровий перцептрон" те саме, що і "глибока нейронна мережа"?

MLP є підмножиною DNN. Тоді як DNN може мати петлі, а MLP завжди подається вперед, тобто

Багатошаровий перцептрон (MLP) - це кінцевий ациклічний графік

чому використовується ця термінологія?

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

Наскільки широка ця термінологія? Чи можна було б використовувати термін "багатошаровий перцептрон", посилаючись на, наприклад, мережу "Початок"? Як щодо повторюваної мережі з використанням модулів LSTM, що використовуються в NLP?

Так, так, створення, згорнута мережа, перезавантаження тощо - це все MLP, оскільки між цими з'єднаннями немає циклу. Навіть якщо є з'єднання ярликів, які пропускають шари, поки воно знаходиться в напрямку вперед, це можна назвати багатошаровим перцептроном. Але LSTM, або ванільні RNN тощо мають циклічні з'єднання, отже, їх не можна назвати MLP, а є підмножиною DNN.

Це моє розуміння речей. Будь ласка, виправте мене, якщо я помиляюся.

Довідкові посилання:

/cs/53521/what-is-difference-between-multilayer-perceptron-and-multilayer-neural-network

https://en.wikipedia.org/wiki/Multilayer_perceptron

https://en.wikipedia.org/wiki/Perceptron

http://ml.informatik.uni-freiburg.de/former/_media/teaching/ss10/05_mlps.printer.pdf


1
просто з цікавості: я вважав, що логістична регресія є регресійною технікою, оскільки ви оцінюєте ймовірність членства в 1 класі замість членства в класі. Як такий, мені не здається класифікаційною технікою (дослідник / аналітик повинен визначитися з можливістю відключення ймовірності для класифікації на основі логістичної регресії).
IWS

@IWS ти маєш рацію. Різні користувачі на цьому сайті неодноразово зазначали, що логістична регресія є моделлю для (умовної) оцінки ймовірності, а не класифікатором. Дивіться, наприклад, тут .
DeltaIV

1
Відредаговано відповідь для виправлення Наприклад, "логістична регресія" є класифікаційною технікою і не повинна називатися "регресією", якщо так сказати . Посилання, на яке поділився @DeltaIV, дає зрозуміти, чому це регресія, а не класифікатор.
m1cro1ce

8

Хороше запитання: зауважте, що у галузі глибокого навчання речі не завжди є настільки чіткими та чітко визначеними, як у статистичному навчанні (також тому, що існує велика галас), тому не сподівайтеся на те, що визначення буде настільки суворим, як у математиці. У будь-якому випадку багатошаровий персептрон - це специфічна нейронна мережа архітектури, що передається вперед, де ви складаєте кілька повністю пов'язаних шарів (таким чином, шарів згортання взагалі немає), де функції активації прихованих одиниць часто є сигмоїдними або тангами. Вузли вихідного шару зазвичай мають функції активації програмного забезпечення (для класифікації) або функції лінійної активації (для регресії). Типові архітектури MLP не "глибокі", тобто у нас не так багато прихованих шарів. Зазвичай у вас є, скажімо, від 1 до 5 прихованих шарів. Ці нейронні мережі були поширеними у 80-х роках,

Зараз, під глибокою нейронною мережею ми маємо на увазі мережу, яка має багато шарів (19, 22, 152, ... навіть > 1200 , хоча це, правда, дуже екстремально). Зауважте, що

  • ми не вказали архітектуру мережі, тому це може бути подачею, повторенням тощо.
  • ми не вказали природу з'єднань, тому ми могли б мати повністю з'єднані шари, звивисті шари, повторність тощо.
  • «багато» шарів, правда, не є чітким визначенням.

32×32+32×10=1344 рік11584ваги. Це мізерний НН за сьогоднішніми мірками. Однак, продовжуючи тренувати його на відповідно великому наборі даних, ви виявляєте, що швидкість конвергенції надзвичайно сповільнилася. Це пов'язано не лише з більшою кількістю ваг, але і з проблемою градієнта, що зникає - зворотне розповсюдження обчислює градієнт функції втрат шляхом множення помилок на кожен шар, і ці невеликі числа стають експоненціально меншими, чим більше доданих шарів. Таким чином, помилки не поширюються (або розповсюджуються дуже повільно) вниз по вашій мережі, і схоже, що помилка на тренувальному наборі перестає зменшуватися з навчальними епохами.

І це була невелика мережа - глибокі згорткові нейронні мережі під назвою AlexNet мали 5 шарів, але ваги 60 мільйонів, і це вважається малим за сьогоднішніми мірками! Коли у вас стільки ваг, то будь-який набір даних "малий" - навіть ImageNet, набір даних зображень, що використовуються для класифікації, має "лише" близько 1 мільйона зображень, таким чином, ризик перевитрати набагато більший, ніж для малої мережі.

Таким чином, глибоке навчання можна розуміти як набір інструментів, які застосовуються на практиці для тренування нейронних мереж з великою кількістю шарів і ваг, досягаючи низької похибки генералізації. Це завдання викликає більше проблем, ніж для менших мереж. Ви напевно можете створити глибокий багатошаровий перцептор і тренувати його - але (крім того, що це не оптимальна архітектура для багатьох завдань, де використовується глибоке навчання сьогодні), ви, ймовірно, будете використовувати інструменти, які відрізняються від тих, які використовувались коли раніше були мережі "неглибокий". Наприклад, ви можете віддати перевагу блокам активації ReLU сигмоподібним або танх, оскільки вони пом’якшують проблему градієнта, що зникає.


Попередня відповідь m1cro1ce говорить про те, що conv-сітка (подібно до початку) також може бути класифікована як MLP, тоді як ви вказуєте, що MLP не може мати звивистих шарів (і, здається, ви маєте на увазі, що вибір функцій активації також впливає на те, що можна назвати MLP чи ні?). Чи є в літературі (або в межах спільноти МЛ) домовленість щодо того, що саме означає MLP і що це не означає? Якщо хтось сказав мені "Я хочу, щоб ти створив MLP для завдання X", що я можу робити?
enumaris

@enumaris вас законодавством не обмежують робити щось. Минулого разу я перевіряв, як було законно створити CNN і назвати його MLP. Я, звичайно, відкидаю такий папір / плакат / що завгодно, але це я, і я не можу говорити за всю спільноту DL, яка не зовсім славиться своїм строгим використанням термінології. У будь-якому випадку, моє визначення: нейронна мережа, що передається вперед, з повністю пов'язаним шаром і принаймні якоюсь функцією нелінійної активації (інакше, незалежно від того, скільки шарів, це завжди еквівалентно лінійній мережі одного шару), це те саме, що ви можете знайти в .. .
DeltaIV

... Вікіпедія . Відзначте рядок у розділі шарів "Оскільки MLP повністю пов'язані [..]". Це виключає CNN. Ви можете знайти те саме визначення (подання вперед, повністю пов'язане, принаймні приховані шари мають нелінійні функції активації) у цій книзі . Щодо функцій активації, я, певно, нічого не маю на увазі. Я щойно сказав, що MLP зазвичай мають функції активації танга або сигмоїди, але це не обов'язково.
DeltaIV

Я хотів би позначити одну з цих 2 відповідей як прийняту відповідь, але оскільки вони дають суперечливі відповіді, я хотів би дізнатися, яка відповідь найчастіше зустрічається в літературі чи серед спільноти ML.
enumaris

@enumaris назва вашого запитання - "Багатошаровий перцептрон проти глибокої нейронної мережі", і ви запитуєте, чи a "multi-layer perceptron" the same thing as a "deep neural network": на це питання детально відповіли, як у моїй, так і у m1cro1ce. Тепер ви задаєте питання "чи CNN є підмножиною MLP?" - на сайтах Stack Exchange розміщена політика одного питання для публікації .
DeltaIV

0

Я хочу додати, що відповідно до того, що я читав з багатьох дописів:

Через DNN існує безліч різних архітектур, таких як MLP (багатошаровий перцептор) і CNN (конволюційні нейронні мережі). Так різний тип DNN призначений для вирішення різних типів проблем.

MLP - класичний тип NN, який використовується для:

  • Табличні набори даних (містять дані у стовпчастому форматі, як у таблиці бази даних).
  • Класифікація / регресія, пробіг прогнозування.

MLP дуже великі і їх можна використовувати, як правило, для того, щоб спиратися на картографування від поставлених до результатів.

Але ви можете спробувати в іншому форматі, наприклад, дані зображення як базові точки порівняння, щоб підтвердити, що інші моделі є більш підходящими.

CNN, призначені для відображення даних зображень у вихідну змінну. використовується для:

  • Дані про зображення,
  • класифікація / прогнозування регресії,

Він добре працює з даними, які мають просторові відносини .

Він традиційно використовується для 2D-даних, але він може бути використаний для 1D-даних, CNN досягає найсучаснішого рівня на деяких 1D pbs.

Спочатку ви повинні "чітко визначити", що ви хочете вирішити як проблему (з якими даними працювати, класифікація / проблема регресії ... тощо), щоб знати, який тип архітектури використовувати.

Ви можете посилатися на ті посилання, які були мені так корисні, щоб зрозуміти більше про ці поняття :).

Сподіваюся, що ця добавка стане корисною: p.

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