Модель Google Inception: чому існує кілька софтмакс?


13

Топологію моделі Google Inception можна знайти тут: Google Inception Netowrk

Я помітив, що в цій моделі є 3 softmax-шару (№ 154, № 152, # 145), і 2 з них є якоюсь швидкою втечею цієї моделі.

З того, що мені відомо, шар softmax призначений для остаточного виведення, то чому їх так багато? яка мета інших 2-х шарів?

Відповіді:


27

Коротка відповідь: Глибокі архітектури та конкретно GoogLeNet (22 шари) загрожують проблемою зниклих градієнтів під час тренування (алгоритм зворотного розповсюдження). Інженери GoogLeNet вирішили це питання, додавши також класифікатори в проміжні шари, так що остаточна втрата є поєднанням проміжних втрат і кінцевих втрат. Ось чому ви бачите загалом три шари втрат, на відміну від звичайного одного шару як останнього шару мережі.

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

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

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

Тоді загальна втрата - це комбінація цих трьох шарів втрат. Цитую з оригінальної статті:

Ці класифікатори мають форму менших згорткових мереж, поставлених поверх виходів модулів Inception (4a) та (4d). Під час навчання їх втрати додаються до загальних втрат мережі із зниженою вагою (втрати допоміжних класифікаторів зважилися на 0,3). У момент виведення ці допоміжні мережі відкидаються.

Візуально:

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


1
"... попередні шари, в яких градієнт містить більше інформації" - чому це?
макс

2

На додаток до відповіді @ galoosh33: Мені здається, що допоміжні класифікатори використовують ті ж мітки, що і підсумковий класифікатор вихідних даних. Джерело: слайд 34 в https://pdfs.semanticscholar.org/0b99/d677883883584d9a328f6f2d54738363997a.pdf

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

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