Кількість і розмір щільних шарів у CNN


11

Більшість мереж, яких я бачив, мають один або два щільних шару до остаточного шару softmax.

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

Відповіді:


15

Поперше:

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

а Йошуа Бенджо запропонував дуже просте правило:

Просто продовжуйте додавати шари, поки помилка тесту більше не покращиться. [2]

Більше того:

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

Наприклад, у способі вивчення функцій детекторів:

перший шар засвоює детектори ребер, а наступні шари вивчають більш складні функції, а шари вищого рівня кодують більш абстрактні функції. [4]

Отже, використання двох щільних шарів доцільніше, ніж один шар.

Нарешті:

Оригінальний документ про випадання дає ряд корисних евристик, які слід враховувати при використанні випаду на практиці. Один з них: Використовуйте випадання як для вхідних (видимих), так і для прихованих одиниць. Застосування відсіву на кожному шарі мережі показало хороші результати. [5]

в CNN, як правило, шар випадає наноситься після кожного об'єднання шару, а також після вашого шару щільного. Тут хороший підручник [6]

Список літератури:

[1] https://www.cs.cmu.edu/Groups/AI/util/html/faqs/ai/neural/faq.html

[2] Бенджо, Йошуа. "Практичні рекомендації щодо градієнтної підготовки глибоких архітектур." Нейронні мережі: хитрощі торгівлі. Спрингер Берлін Гейдельберг, 2012. 437-478.

[3] http://cs231n.github.io/transfer-learning/

[4] http://learning.eng.cam.ac.uk/pub/Public/Turner/Teaching/ml-lecture-3-slides.pdf

[5] https://machinelearningmastery.com/dropout-regularization-deep-learning-models-keras/

[6] https://cambridgespark.com/content/tutorials/convolutional-neural-networks-with-keras/index.html

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