Яка різниця між нейронною мережею і глибокою нейронною мережею, і чому глибокі працюють краще?


113

Я не бачив запитання, викладеного саме в цих термінах, і саме тому я ставлю нове запитання.

Мені цікаво знати, це не визначення нейронної мережі, а розуміння фактичної різниці з глибокою нейронною мережею.

Для додаткового контексту: я знаю, що таке нейромережа і як працює задні розмноження. Я знаю, що DNN повинен мати кілька прихованих шарів. Однак 10 років тому на уроці я дізнався, що наявність декількох шарів або одного шару (не рахуючи вхідних і вихідних шарів) було еквівалентним з точки зору функцій, які нейронна мережа здатна представляти (див. Універсальну теорему наближення Цибенко ), і що має більше шарів зробило його складнішим для аналізу без збільшення продуктивності. Очевидно, що це вже не так.

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



Якщо функція, яку ви хочете наблизити, - це композиційна функція (поширена в обробці зображень та багатьох природних областях через закон фізики). Можна довести, що глибокі мережі можуть використовувати цю композиційність і досягати однакового рівня помилки наближення з експоненціально меншою кількістю нейронів (порівняно з мережею з односхованим шаром). Літ .: Poggio, Tomaso та ін. "Чому і коли глибокі, але не мілководні мережі можуть уникнути прокляття розмірності: огляд." Міжнародний журнал автоматизації та обчислень (2017)
DataHungry

Ви можете поглянути на цю статтю
agcala

Відповіді:


151

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

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

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

Ось ілюстрація, адаптована звідси :

Глибока проти неглибока нейромережа

Але справжнє питання, яке ви задаєте, це, звичайно, чому б користь мати багато шарів?

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

Я кажу, що це дивно, тому що глибоке навчання користується масовою популярністю, щорічно побиває всі рекорди (від розпізнавання зображень, відтворення Go, автоматичного перекладу тощо), звикає галузь тощо тощо. І ми все ще не зовсім впевнені, чому це так добре працює.

Я засновую своє обговорення на Deep Learning книги Гудфельего, Bengio і Courville , який вийшов в 2017 році і широко вважається книгою по глибокому навчанню. (Це вільно доступне в Інтернеті.) Відповідний розділ - 6.4.1 Властивості універсального наближення та глибина .

Ви це написали

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

Ви повинні мати на увазі так звану теорему універсального наближення , доведену Цибенком у 1989 році та узагальнену різними людьми у 1990-х. Це в основному говорить про те, що неглибока нейронна мережа (з 1 прихованим шаром) може наближати будь-яку функцію, тобто в принципі може навчитися чому-небудь . Це справедливо для різних функцій нелінійної активації, включаючи випрямлені лінійні одиниці, якими користується сьогодні більшість нейронних мереж (у цьому підручнику посилаються Leshno et al. 1993 ).

Якщо так, то чому всі користуються глибокими сітками?

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

Більше шарів добре

Ми знаємо, що неглибока мережа може працювати так само добре, як і глибші. Але це не так; а вони зазвичай цього не роблять. Питання --- чому? Можливі відповіді:

  1. Може, неглибока мережа потребує більше нейронів, ніж глибока?
  2. Можливо, дрібну мережу складніше тренувати за нашими поточними алгоритмами (наприклад, у неї більш противні локальні мінімуми, або швидкість конвергенції повільніша, чи що завгодно)?
  3. Можливо, неглибока архітектура не підходить до тих проблем, які ми зазвичай намагаємося вирішити (наприклад, розпізнавання об'єктів є складовим "глибоким", ієрархічним процесом)?
  4. Щось ще?

У книзі « Глибоке навчання» розмірковують за пунктами №1 та №3. По-перше, він стверджує, що кількість одиниць у неглибокій мережі зростає експоненціально зі складністю завдання. Тож для того, щоб бути корисною, неглибока мережа може знадобитися дуже великою; можливо набагато більше, ніж глибока мережа. Це ґрунтується на ряді робіт, що підтверджують, що мілководним мережам у деяких випадках знадобиться експоненціально багато нейронів; але чи є наприклад класифікація MNIST або Go play - такі випадки не зовсім зрозуміло. По-друге, книга говорить про це:

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

Думаю, що "консенсус" полягає в тому, що це поєднання пунктів №1 і №3: для реальних завдань глибока архітектура часто вигідна, а неглибока архітектура була б неефективною і вимагає набагато більше нейронів для тієї ж продуктивності.

Але це далеко не доведено. Розглянемо, наприклад, Загоруйко та Комодакіс, 2016, Широкі залишкові мережі . Залишкові мережі із 150+ шарами з’явились у 2015 році та виграли різні конкурси на розпізнавання зображень. Це було великим успіхом і виглядало як переконливий аргумент на користь глибини; ось одна цифра з презентації першого автора про залишковий мережевий папір (зауважте, що час тут заплутано йде зліва):

глибокі залишкові мережі

Але документ, зв'язаний вище, показує, що "широка" залишкова мережа з "лише" 16 шарами може перевершити "глибокі" з 150+ шарами. Якщо це правда, то вся точка наведеної фігури розпадається.

Або розгляньте Ба та Каруана, 2014, чи дійсно потрібно глибоким мережам бути глибоким? :

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

Якщо це правда, це означатиме, що правильне пояснення - це швидше моя куля №2, а не №1 або №3.

Як я сказав --- ще ніхто насправді точно не знає.


Заключні зауваження

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

Ренесанс глибокого навчання розпочався в 2006 році, коли Джеффрі Хінтон (який працював над нейронними мережами 20+ років без особливого інтересу з боку кого-небудь) опублікував декілька проривних робіт, що пропонують ефективний спосіб навчання глибоких мереж ( Науковий документ , Нейронний обчислювальний документ ) . Хитрість полягала в тому, щоб використовувати непідконтрольну попередню підготовку перед початком спуску по градієнту. Ці документи революціонізували поле, і кілька років люди думали, що ключовим є непідконтрольна попередня підготовка.

Тоді в 2010 році Мартенс показав, що глибокі нейронні мережі можуть бути навчені методами другого порядку (так звані методи, не містять гессіанців) і можуть перевершити мережі, навчені попередньою підготовкою: Глибоке навчання за допомогою оптимізації, не вимагає гессіанців . Потім у 2013 році Sutskever та ін. показав, що стохастичний градієнтний спуск за допомогою дуже розумних хитрощів може перевершити методи, що не містять гессіан: Про важливість ініціалізації та імпульсу в глибокому навчанні . Крім того, близько 2010 року люди зрозуміли, що використання випрямлених лінійних одиниць замість сигмоподібних одиниць робить величезну різницю для градієнтного спуску. Випадання з'явилося в 2014 році. Залишкові мережі з’явились у 2015 році. Люди продовжують розробляти все більш ефективні способи навчання глибоких мереж іте, що здавалося ключовим оглядом 10 років тому, сьогодні часто вважається неприємністю. Все це значною мірою залежить від спроб та помилок, і мало розуміння того, що змушує деякі речі так добре працювати, а інші - ні. Навчання глибоких мереж - це як велика сумка хитрощів. Успішні трюки зазвичай раціоналізуються постфактум.

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

Оновлення: це більш-менш тема розмови NIPS 2017 Алі Рахімі про машинне навчання як алхімія: https://www.youtube.com/watch?v=Qi1Yry33TQE .


[Ця відповідь була повністю переписана у квітні 2017 року, тому деякі коментарі нижче не стосуються більше.]


2
Гарна відповідь! 1) Як також згадував @Nicolas, виявляється, що існує теорема ( en.wikipedia.org/wiki/Universal_approximation_theorem ), яка стверджує, що нейронна мережа, спрямована вперед, з єдиним прихованим шаром і обмеженою кількістю нейронів може наближатися. будь-яка безперервна функція (включаючи DNN) на одиничному гіперкубі. Цей результат, як стверджується, не залежить від вибору функції активації. 2) я не впевнений, чи ваше останнє зауваження (тобто, що Гінтон приєднався до Google) має відношення до недавнього успіху DNN; Хінтон приєднався до Google через довгі часи після того, як ДНН стали епідемічними!
Sobi

4
n1n

2
Річ лінійності здається поєднанням двох питань. Перцептрони можуть обчислювати лише лінійні межі рішення - він може проводити лише прямі лінії для поділу двох класів. Багатошарові мережі можуть «намалювати» більш складні межі. Але ні перцептрони, ні багатошарові мережі не використовують лінійні функції активації, за винятком вихідного шару багатошарової мережі. Функція активації персептрона є важким (1, якщо x> 0, 0 інакше); багатошарові мережі часто використовують сигмоїди, але обмеження для універсальних прибл. досить м'які: непостійні, обмежені та монотонно зростаючі.
Метт Крауз

2
@amoeba чудова відповідь, картина на початку наклала мене на прочитання решти, але це було до кращого. Перцептрон є аналогом лінійної регресії для класифікації, тому, коли люди використовують рішення закритої форми (псевдоінверс) для вирішення проблеми замість онлайн (sgd) методів, це називається логістичною регресією через логістичну (сигмоїдну функцію) = перцептрон. Перспектрон / логістична регресія може лише "намалювати" лінійні межі рішення, і тому це називається лінійним.
shuriken x blue

2
Однак багатошаровий перцептрон (те, що ви намалювали на першому малюнку ліворуч) може поєднувати кілька таких лінійних меж рішення і, таким чином, розділити простір для вирішення (нелінійної) задачі XOR на зразок згаданого @Matt. Отже, багато багатьох комбінованих лінійних ліній прийняття рішень можуть зробити коло, наприклад, якщо ти косиш очі. Це залежить від того, як ви про це думаєте - рішення все ще лінійне у більш високому просторі, якщо ви знайомі з ядрами, це щось на зразок того ж самого.
shuriken x blue

8

Хороша відповідь поки що, хоча є кілька речей, про які ніхто тут не згадував, ось мій 0,02 $

Я просто відповім у формі історії, повинен зробити речі більш веселими та зрозумілими. Тут немає tldr. У процесі ви повинні мати можливість зрозуміти, в чому різниця.

Існує кілька причин, чому ДНЗ виблискували, коли вони робили (зірки повинні були вирівнятись, як і всі подібні речі, це лише питання правильного місця, потрібного часу тощо).

Однією з причин є наявність даних, багато даних (мічені дані). Якщо ви хочете мати можливість узагальнити та вивчити щось на кшталт «загальних пріорів» або «універсальних пріорів» (він же є основними будівельними блоками, які можна повторно використовувати між завданнями / програмами), тоді вам потрібно багато даних. Додаю, дикі дані, не стерильні набори даних, ретельно записані в лабораторії з контрольованим освітленням і все. Механічний турк зробив це (маркування) можливим.

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

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

Те, що уповільнило ситуацію, було зниклою проблемою градієнта . Люди йшли так: ось, це далеко, чоловіче! Коротше кажучи, це означає, що важко було відрегулювати помилку на шарах, ближчих до входів. Коли ви додаєте більше шарів на торт, стає занадто хитким. Ви не змогли повернути змістовну помилку назад до перших шарів. Чим більше шарів, тим гірше вийшло. Бампер.

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

Можливі також попередні тренування на шарі з використанням непідконтрольних методів. В основному, ви берете купу автокодерів і вивчаєте все менше менш абстрактних зображень у міру збільшення коефіцієнта стиснення. Ваги з цих мереж використовувались для ініціалізації контрольованої версії. Це вирішило проблему градієнта, що зникає, по-іншому: ви вже починаєте керовану підготовку зі значно кращого стартового положення. Тож усі інші мережі встали і почали бунтувати. Але мережі все одно потребували нагляду, інакше великі дані зберігати було неможливо.

Тепер, остання частина, яка нарешті наводить начебто, веде до вашої відповіді, яка є занадто складною, щоб сказати просто: чому більше шарів, а не один. Тому що ми можемо! і тому, що контекстні та інваріантні дескриптори ознак. і басейни.

Ось приклад: у вас є набір даних із зображеннями, як ви будете тренувати план NN, використовуючи ці дані? Ну, наївно, ви приймаєте скажімо кожен ряд і об'єднуєте його в один довгий вектор, і це ваш внесок. Що ви дізнаєтесь? Ну, деякі нечіткі дурницькі функції, які можуть бути схожими ні на що, через безліч різновидів дисперсій, які містять об'єкти на зображенні, і ви не в змозі розрізнити релевантні та нерелевантні речі. І в якийсь момент мережі потрібно забути, щоб мати можливість знову вивчити нові речі. Отже, є питання про потужність. Це більше нелінійна динаміка, але інтуїція полягає в тому, що вам потрібно збільшити кількість нейронів, щоб мати можливість включити більше інформації у вашу мережу.

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

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

Отже, підводячи підсумки: сприйнятливі поля / згортки, непідконтрольна ініціалізація, виправлені лінійні одиниці, випадання або інші методи регуляризації. Якщо ви дуже серйозно ставитесь до цього, рекомендую поглянути на глибоке навчання Шмідхубера в нейронних мережах: огляд ось URL-адреси препринта http://arxiv.org/abs/1404.7828

І пам’ятайте: велике навчання, глибокі дані. Слово.


Привіт Флоріне, дякую за гарну відповідь! Мені подобається стиль написання. Коли ви говорите про розсувні вікна, чи замислюєтесь ви про те, як згорнуті шари згорткового НН спостерігають за різними частинами зображення та проектують їх активацію на простір нижчого розміру?
Ніколя

В значній мірі так, згортання не потрібні, але вони швидше обчислювальні, оскільки ваги обмежені. ознайомтеся з цим документом, де вони не використовують згортки та використовують місцеві сприйнятливі поля. важливі ключові слова локальні / ієрархічні: arxiv.org/pdf/1112.6209.pdf
shuriken x blue

Я також думаю, що найближча систематична відповідь - це soba. він отримав моє рішення. я тільки що додав ще дещо тут і там з трохи солі та перцю.
shuriken x blue

6

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

Ідея полягає в додаванні міток до шарів, щоб зробити кілька шарів абстракції:

Наприклад, глибока нейронна мережа для розпізнавання об'єктів :

  • Шар 1: Одиничні пікселі
  • Шар 2: Краї
  • 3 рівень: форми (кола, квадрати)
  • Шар n: Цілий об'єкт

Ви можете знайти хороше пояснення з цього питання в Quora .

І якщо ви зацікавитесь цією темою, я б рекомендував поглянути на цю книгу .


1
Дякую, Девіде, але я не дуже розумію, як просто додавати мітки, щоб це було інакше. Я також пам’ятаю, що було важкою проблемою зрозуміти та розкласти, як функція кодується через нейронну мережу. Має бути щось інше, ніж просто мати більше шарів. Що стосується прикладу, який ви дали, я вважаю, що ви можете тренувати індивідуально (старої школи) нейронні мережі для виконання кожного із завдань.
Ніколя

Потужність приходить, коли ви використовуєте її як трубопровід, тому входи та виходи з шару складаються на кожному шарі.
Девід Гаскес

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

2
Незважаючи на те, що вказаний ресурс цікавий, відповідь не відповідає на запитання.
Ніколя

Чи можете ви вказати на приклад, де шари маркуються (крім чисто описового)? Безумовно, правда, що сховані шари здаються послідовно складнішими характеристиками кожного прихованого шару, але, мабуть, "додавання міток" означає, що вони спеціально навчені робити це.
Метт Крауз

2

Також мене на початку трохи бентежить різниця між нейронними мережами (NN) та глибокими нейронними мережами (DNN), проте, на жаль, "глибина" стосується лише кількості параметрів та шарів. Ви можете сприймати це як певний ребрендинг в рамках так званої "канадської мафії".

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

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

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

На цій же сторінці тут є визначення "Глибока нейронна мережа (DNN) - це штучна нейронна мережа (ANN) з безліччю прихованих шарів одиниць між вхідним і вихідним шарами."


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

Чесно кажучи, я не погоджуюся з останнім визначенням, на яке я посилався - оскільки ANN / NN з одним прихованим шаром насправді не є ефективним, і вам потрібен був кратний для будь-якого складнішого прогнозування (я говорю це, тому що я думаю, що DNN був марне слово, яке додається до вже хорошого терміну, NN). Я думаю, що ви можете використовувати NN та DNN взаємозамінно (тому що нині ніхто не використовує односховані шари NN), тоді як використання шарів відрізняється між типами DNN (CNN, RBM, RNN, LSTM, CW-RNN, ...) а не сама ідея ДНН.
mttk

2

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

Ще одне питання, яке може бути задано, це: чому нейронні мережі (зокрема, DNN) стали настільки популярними раптово. Наскільки я розумію, магічні інгредієнти, які зробили ДНЗ такими популярними останнім часом, наступні:

A. Покращені набори даних та можливості обробки даних

1. Стали доступні великі набори даних із мільйонами різноманітних зображень

2. Швидка реалізація GPU стала доступною для громадськості

B. Вдосконалені алгоритми навчання та мережеві архітектури

1. Випрямлені лінійні одиниці (ReLU) замість сигмовидної чи танної

2. Глибокі мережеві архітектури розвивались роками


A-1) До недавнього часу, принаймні, у Computer Vision, ми не могли навчати моделей на мільйонах зображень, що мітили мітки; просто тому, що мічених наборів даних такого розміру не існувало. Виявляється, що, крім кількості зображень, зернистість набору етикеток є також дуже вирішальним фактором успішності DNN (див. Рис. 8 у цій роботі , Azizpour et al.).

A-2) Багато інженерних зусиль було вкладено для того, щоб можна було навчати DNN, які добре працюють на практиці, особливо це стосується появи реалізацій GPU. Одна з перших успішних реалізацій GPU DNN, працює на двох паралельних GPU; все ж, займає ДНН на 1,2 мільйона зображень з 1000 категорій, використовуючи високоякісні GPU (див. цей документ, Крижевський та ін.).

B-1) Використання простих випрямлених лінійних одиниць (ReLU) замість сигмоподібних та танх функцій, мабуть, є найбільшою складовою для забезпечення можливості навчання ДНЗ. Зауважте, що і сигмоподібні, і тіньові функції мають майже нульовий градієнт майже скрізь, залежно від швидкості їх переходу від низького рівня активації до високого; в крайньому випадку, коли перехід раптовий, ми отримуємо ступінчасту функцію, яка має нульовий нахил скрізь, крім однієї точки, де відбувається перехід.

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


3
+1. Перша відповідь у цій темі, яка дає адекватну відповідь на запитання ОП. Тут багато хороших моментів. Мій єдиний головний коментар - це те, що крім ваших A та B, є ще й C: Масивне збільшення кількості доступних наборів даних про навчання. Здається, це як мінімум так само важливо, як А і Б.
амеба

1
Я не думаю, що relu є настільки важливим: папір Олексія Крижевського стверджував, що він зробив навчання в 6 разів швидше. Більшість інших змін структури мережі, які ви згадуєте, стосуються конволюційних nns, які просто копіюють стандартні трубопроводи для обробки зображень (добре, але немає нових розумінь)
seanv507

1
@amoeba: розмір набору даних знаходиться під А. Я оновив текст, щоб виділити його.
Sobi

@ seanv507: дійсно, я мав на увазі конволюційні мережі (ConvNets), коли писав відповідь. Якщо є інші важливі фактори (не пов'язані з ConvNets), які я пропустив, я би вдячний, якщо ви їх згадаєте. Я був би радий відповідним чином оновити свою відповідь. Що стосується ReLU, навчити нн з таном та сигмоїдом значно складніше, ніж з ReLU, через випадання градієнтів: одиниці легко насичуються, і, як тільки це станеться, потрібно, щоб вони знову стали ненасиченими (градієнти дуже маленькі, коли одиниця насичено)
Собі

2

Різниця між "глибоким" NN і стандартним NN є чисто якісним: немає визначення того, що означає "Deep". "Глибокий" може означати що-небудь - від надзвичайно складних архітектур, якими користуються Google, Facebook та co, які мають 50-80 або навіть більше шарів, до 2-х прихованих шарів (всього 4 шари) архітектури. Я не був би здивований, якби ви навіть могли знайти статті, які стверджують, що глибоке навчання з одним прихованим шаром, тому що "глибокий" не означає багато.

"Нейронна мережа" - це також слово, яке не має дуже точного значення. Він охоплює надзвичайно великий ансамбль моделей, від випадкових болцманових машин (які є непрямими графіками) до подальших архітектур з різними функціями активації. Більшість NN навчатимуться за допомогою backprop, але це не обов'язково, тому навіть алгоритми навчання не дуже однорідні.

Загалом, глибоке навчання, глибокі НН та НН стали загальнодоступними словами, які охоплюють безліч підходів.

Для хороших вступних посилань на те, що "змінилося": глибоке вивчення представництв: Погляд вперед , Bengio, 2013 - це хороший огляд + перспектива на майбутнє. Також див. Чи дійсно потрібно глибоким мережам бути глибоким? Ba & Caruana, 2013, які ілюструють, що бути глибоким може бути не корисним для представлення, а для навчання.


Посилання, які ви даєте, дуже корисні, але решта відповіді в поточній формі (яка звучить як "NN нічого не означає, DNN не означає, що нічого, NN і DNN можуть зробити багато речей") не дуже, Ви розглядаєте можливість його перегляду?
Ніколя

1

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

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

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


1

NN:

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

DNN:

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

Перехід до ДНН зумовлений трьома незалежними проривами, які відбулися в 2006 році.

Щодо теорем про NN, то на яке натякає питання:

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

2
-1? Дійсно? Я прочитав усе це в літературі і зробив покрокове порівняння обох підходів! Принаймні, вкажіть, що невірно ...
Ніколас

3
Я не робив поступки (можливо, авансовикові не сподобалось, що ви відповідаєте на власне запитання? Але це, звичайно, тут чудово), але ось одне, що не зовсім коректно. Те, що ви перераховуєте як властивості DNN: що краї є непрямими, що спочатку тренується без нагляду, що шари тренуються один за одним - все це стосується лише глибоких мереж вірогідності, запропонованих Гінтоном у 2006 році. Це не так обов'язково стосується глибоких нейронних мереж загалом, і насправді існує безліч способів навчити глибоку мережу без усього цього. Дивіться мою відповідь.
амеба

1

O(n)

Я думаю, ви повинні відступити і побачити, що це породжує відродження неглибокого AI - наприклад, мішок слів для аналізу настроїв та інших мовних додатків та візуальна сумка слів були провідним підходом до розпізнавання зображень перед DNN. Ніхто не говорить мішок слів - це справжня модель мови, але це ефективне інженерне рішення. Тому я б сказав, що DNN є кращим "візуальним пакетом слів" - див., Наприклад, Szegedy et al. 2013 Інтригуючі властивості нейронних мереж та Nguyen et al. Глибокі нейронні мережі легко обманюються: передбачення високої довіри для невпізнаваних зображень, де зрозуміло, що немає вищих структур і т.д., які не вивчаються (або що вимагається для DNN).


@amoeba цей інший папір є майже супутнім документом до першого (знову ж таки, з великою кількістю зображень!)
seanv507

0

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

Джерело: Арно Кандель

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