1 прихований шар з 1000 нейронами проти 10 прихованих шарів зі 100 нейронами


13

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

Отже, моє запитання: чи насправді це має значення, якщо ми, наприклад, маємо 1 великий прихований шар з 1000 нейронів проти 10 прихованих шарів із 100 нейронами?

Відповіді:


12

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

  • Велика площа, вища ціна
  • Невелика кількість спалень, нижча ціна

Другий шар може зробити висновок:

  • Велика площа + мала кількість спалень = великі спальні = + - ефект

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

Перевірте цю відповідь


Дуже дякую за вашу відповідь. Просто для уточнення, коли ви пишете "це робить вашу мережу [...]", ви маєте на увазі випадок, коли у мене багато прихованих шарів із меншою кількістю нейронів, а не більше нейронів у меншій кількості шарів?
Стівен Джонсон

@StephenJohnson на жаль, я змінив питання. Я маю на увазі глибоку мережу (кілька шарів).
Thomas W

Приємна відповідь, ще раз дякую. Можливо, я повинен продовжувати це в іншій темі, але ви вважаєте, що такий же спосіб міркувань застосовується і до періодичних нейронних мереж, таких як GRU або LSTM?
Стівен Джонсон

@StephenJohnson Ви маєте на увазі одну багатошарову рекуррентну мережу проти багатошарових рекуррентних мереж чи це маєте на увазі через їх періодичні з'єднання?
Thomas W

Я маю на увазі загалом, через те, що у них є періодичні з'єднання, що дозволяють їм відображати контексти на більші відстані, чи корисні такі мережі від того, щоб бути Deep таким же чином, як звичайна мережа feedforward? Можливо, їх не можна порівняти так, оскільки періодичні мережі зазвичай використовуються, коли використовуються послідовні дані, такі як аудіо.
Стівен Джонсон

4

Є так багато аспектів.

1. Навчання: Навчання глибоких сіток - важка робота через проблему градієнта, що зникає (ззаду вибухає). Тому будувати нейронну сітку 10х100 не рекомендується.

2. Підготовка продуктивності мережі:

  • Втрата інформації: Класичне використання нейронних мереж є проблемою класифікації . Це означає, що ми хочемо отримати від даних чітко визначену інформацію. (Наприклад, чи є обличчя на малюнку чи ні.) Тому зазвичай проблема класифікації має багато вхідних даних і мало вихідних даних, який розмір прихованих шарів зменшується від введення до виводу. Однак ми втрачаємо інформацію, використовуючи менше нейронів пошарово. (Тобто, ми не можемо відтворити оригінальне зображення, грунтуючись на тому, чи є на ньому обличчя чи ні.) Отже, ви повинні знати, що ви втрачаєте інформацію, використовуючи 100 нейронів, якщо розмір вводу (скажімо) 1000.
  • Інформаційна складність: Однак більш глибокі мережі (як згадував Томаш W) можуть отримати більш складну інформацію з вхідних даних. Незважаючи на це, не рекомендується використовувати 10 повністю пов'язаних шарів. Рекомендується використовувати згортки / relu / maxpooling або інші шари. Шари найвищого рівня можуть стискати якусь істотну частину входів. (Наприклад, є якась рядок у певній частині малюнка) Другі шари можуть сказати: У цьому місці на малюнку є конкретна форма. І т.д.

Тож глибші сітки більш "розумні", але структура мережі 10х100 - хороший вибір.


1

Якщо проблема, яку ви вирішуєте, лінійно відокремлена, один шар з 1000 нейронів може зробити кращу роботу, ніж 10 шарів з кожним зі 100 нейронів. Якщо проблема нелінійна і не опукла, то вам потрібні глибокі нейронні сітки.


2
Якщо проблема лінійно відокремлена, вам взагалі не потрібні приховані шари
Амедео Барагіола

0

Я думаю, у вас плутанина в основах нейронних мереж. Кожен шар має окрему функцію активації та ваги підключення вводу / виводу.

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

Однак не використовуйте більше шару, якщо ваша програма не є досить складною. На закінчення 100 шарів нейронів не означають кращої нейронної мережі, ніж 10 шарів х 10 нейронів, але 10 шарів - це щось уявне, якщо ви не займаєтесь глибоким вивченням. почніть з 10 нейронів у прихованому шарі і спробуйте додати шари або додати більше нейронів до того ж шару, щоб побачити різницю. навчання з більшою кількістю шарів буде простішим, але потрібно більше часу на навчання.

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