Чутливість до масштабної нейромережевої шкали


11

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


(джерело: tinytux.com )

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


(джерело: wikimedia.org )

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

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

Порівняно з регіональним RCNN, який здатний отримати обмежувальні коробки на тілі та голові, чи буде ванільний CNN завжди працювати гірше?

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

Отже, я б подумав, що CNN ванілі повинен мати можливість встановити співвідношення розміру голови до тулуба? Чи це правильно? Якщо так, чи є єдиною перевагою використання більш швидкої рамки RCNN для використання факту, який, можливо, був попередньо навчений для виявлення людей?


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

@Aksakal Я не думаю, що він експериментував з навчанням CNN. З того, що я зрозумів, він робив тести з існуючими веб-сервісами: "У багатьох вікових прогнозів, що я спробував [..]".
DeltaIV

Відповіді:


8

По-перше, дякую за повідомлення про дуже цікаве запитання.

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

Основна відмінність від запропонованого підходу із використанням деяких об’єктових детекторів (будь то RCNN, швидше RCNN, YOLO або SSD) полягає в тому, що ви використовуєте іншу інформацію для тренування моделей. CNN навчається лише на зображеннях і сам повинен з’ясувати всі необхідні функції. Швидше за все, ви знайдете різні риси обличчя, але це також буде покладатися на одяг і, можливо, на сцені (діти можуть бути часто на зображенні з якимись іграшками, дорослі будуть частіше в офісних умовах тощо). Ці функції не будуть надійними для вашого контрприкладу.

З іншого боку, якщо ви навчаєте мережу явно визначати об'єкти як "тулуб" і "голова", ви надаєте додаткову інформацію про те, що ці об'єкти важливі для виконання завдання, і таким чином спрощуєте проблему 2 .

Хоча підхід до виявлення голови та тулуба, а потім оцінки співвідношення розмірів обмежувальних коробок звучить цікаво, я бачу кілька перешкод:

  1. Отримання даних: Я не знаю про наявність великого набору даних, де будуть вікові та обмежувальні поля.
  2. Недосконалий FOV: у більшості зображень (наприклад, в обох ваших прикладах) люди не відображаються цілими. Вам доведеться мати справу з тим, що коробки, що обмежують тулуб, не завжди будуть ідеальними, просто тому, що частина людини не на зображенні, а мережа повинна буде здогадуватися, наскільки велика частина відсутня (а основні рамки, що обмежують правду, найбільше ця інформація, ймовірно, не захоплює). Крім того, вищезазначені детектори об'єктів не завжди належним чином обробляють прогнози щодо часткових об'єктів. Це може ввести занадто багато шуму в моделі.
  3. Різні пози: співвідношення тулуба до голови було б дуже різним для людей, які дивляться фронтально і збоку.
  4. Дорослі: Мабуть, співвідношення добре допомагає прогнозувати вік між 0-21, але я не бачу, як це допомогло б передбачити вік дорослих (я вважаю, що співвідношення не змінюється у старшому віці).

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

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


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

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


8

CNN - це занадто великий клас моделей, щоб відповісти на це питання. LeNet, AlexNet, ZFNet і VGG16 будуть вести себе зовсім інакше, ніж GoogLeNet, який був створений спеціально для того, щоб робити більшість того, що робить R-CNN, з архітектурою CNN (ви можете знати GoogLeNet з ім'ям Inception, навіть якщо строго кажучи, що Innception є просто основна одиниця (підмережа), на якій будується GoogLeNet). Нарешті, ResNets поведе себе по-різному. І всі ці архітектури були побудовані не для класифікації вікових класів, а 1000 класів ImageNet, які не містять вікових класів для людей. Можна було б використовувати трансферне навчання(якщо у вас достатньо навчальних зображень) для підготовки однієї з широко доступних тренувальних моделей, наведених вище, і подивитися, як вони працюють. Однак загалом, особливо для старих архітектур (скажімо, до VGG16) важко вивчати "глобальні особливості", які вимагають дізнатися про "голову" (вже складна функція), "тулуб" (ще одну складну особливість) та їх співвідношення (яке також вимагає, щоб ці дві ознаки знаходились у певному просторовому співвідношенні). Такі речі - це те, що Capsule Networks мусили зробити.

Конвнець народився робити зовсім навпаки: бути чутливим до місцевих особливостей і відносно нечутливим до їх відносного положення / масштабу. Хороший Convnet повинен розпізнати "білу кішку", чи то знімок крупним планом, чи американський знімок. Поєднання звивистих шарів (які чутливі до локальних особливостей) з об'єднанням шарів (які знімають частину чутливості до зміни масштабу або перекладу зображення) дає вам архітектуру, яка в своїй найосновнішій формі не чудова для вивчення типу просторових відносини між об'єктами, які ви шукаєте. Десь був приклад (але я його більше не можу знайти), коли після розбиття зображення кота на різні прямокутні плитки, що не перекриваються, і складання їх у випадковому порядку, CNN продовжує ідентифікувати зображення якcat. Це вказує на те, що CNN більш чутливі до локальних особливостей (текстур чи чогось подібного), ніж до просторових відносин серед особливостей високого рівня. Дивіться також документ " Капсульні мережі" для деякого обговорення цього питання. Хінтон також показав приклад цього у відео про межі конвентів .

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


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

RCNN не є CNN. Ви не тільки пропускаєте селективний пошук обмежувальних коробок, але також пропускаєте лінійну стадію SVM та регресор обмежувальної коробки. Також існує велика різниця між здатністю виявляти масштаб AlexNet (це CNN, який використовується в оригінальному папері RCNN), або VGG, і здатністю GoogLeNet або ResNet: GoogLeNet був розроблений саме для того, щоб робити те, що робить RCNN. Я думаю, що і GoogLeNet, і ResNet змогли б класифікувати вік, але немає жодного способу дізнатися, чи вдасться це зробити, використовуючи функцію, яка має для нас сенс (співвідношення голова до тулуба) або знайти якийсь статистичний 1 /
DeltaIV

2 / закономірності, які людина ніколи не помітить. Я б запропонував вам поекспериментувати та спробувати, але, на жаль, лише побудова бази даних зображень сама по собі була б дослідницьким проектом (якщо ви не працюєте в модній компанії).
DeltaIV

1
Мої вибачення за плутанину. Я знаю, що там є 20 різних архітектур RCNN, кожна з яких стверджує, що інші є застарілими.
Алекс Р.

1
blog.piekniewski.info/2016/12/29/can-a-deep-net-see-a-cat Також інша проблема, але все ще пов’язана зі збігом текстур, і від більш шанованих дослідників, arxiv.org/pdf/ 1703.06857
DeltaIV

0

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

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