Сверточная чувствительность шкалы нейронной сети


11

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


(источник: tinytux.com )

Есть множество особенностей, которые подразумевают это, например, структура лица. Однако наиболее характерной особенностью является соотношение размера головы к размеру тела :


(источник: wikimedia.org )

Итак, предположим, что мы обучили регрессию CNN, чтобы предсказать возраст человека. В большинстве предсказателей возраста, которые я пробовал, приведенное выше изображение ребенка, кажется, обманывает прогнозы, заставляя думать, что он старше, из-за костюма и, вероятно, потому, что они полагаются в первую очередь на лицо:

Мне интересно, насколько хорошо ванильная архитектура CNN может определять соотношение головы и туловища?

По сравнению с региональным RCNN, который может получить ограничивающие рамки на теле и голове, будет ли ванильный CNN всегда работать хуже?

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

Итак, я думаю, что ванильный CNN должен быть в состоянии вывести соотношение размера головы и туловища? Это правильно? Если да, то единственное преимущество использования более быстрой структуры RCNN для использования факта, который, возможно, был предварительно обучен обнаружению людей?


1
Вы знаете, где именно ваш возраст Recongnizer терпит неудачу? Почему вы думаете, что это пропорция размера головы? Вы смотрели на выходе средних слоев?
Аксакал

@Aksakal Я не думаю, что он экспериментировал с CNN. Из того, что я понял, он делал тесты с существующими веб-сервисами: «Во многих предсказателях возраста, которые я пробовал [..]».
DeltaIV

Ответы:


8

Во-первых, спасибо за размещение очень интересного вопроса.

Чтобы ответить на него в ближайшее время, обученный конец-конец-ванильный ванильный конек для прогнозирования возраста по фотографии будет обычно склонен к неправильной классификации изображений, таких как тот, который вы опубликовали . Во-вторых, обратите внимание, что точная оценка возраста человека является почти невозможной задачей 1 .

Основное отличие от предложенного вами подхода с использованием некоторых детекторов объектов (будь то RCNN, Faster RCNN, YOLO или SSD) заключается в том, что вы используете различную информацию для обучения моделей. CNN обучен только на изображениях и должен сам выяснить все необходимые функции. Скорее всего, он найдет различные черты лица, но он также будет опираться на одежду и, возможно, особенности сцены (дети могут часто быть на фотографии с некоторыми игрушками, взрослые чаще будут в офисе и т. Д.). Эти функции не будут надежными для вашего контрпример.

С другой стороны, если вы обучаете сеть явно обнаруживать объекты как «туловище» и «голова», вы предоставляете дополнительную информацию о том, что эти объекты важны для задачи, и таким образом упрощаете задачу 2 .

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

  1. Получение данных: мне неизвестно о наличии большого набора данных, в котором будут присутствовать как возраст, так и ограничительные рамки.
  2. Несовершенное поле зрения: на большинстве изображений (например, на обоих примерах) люди отображаются не целиком. Вам придется иметь дело с тем фактом, что ограничивающие прямоугольники туловища не всегда будут идеальными, просто потому, что часть человека не изображена на изображении, а сеть должна будет угадать, какая большая часть отсутствует (а наземные ограничивающие прямоугольники будут наиболее скорее всего не уловят эту информацию). Кроме того, вышеупомянутые детекторы объектов не всегда правильно обрабатывают предсказания частичных объектов. Это может внести слишком много шума в модель.
  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, даже если строго говоря, Inception просто базовый блок (подсеть), на котором построен GoogLeNet). Наконец, ResNets будет вести себя по-другому. И все эти архитектуры были построены не для классификации возрастных классов, а для 1000 классов ImageNet, которые не содержат возрастных классов для людей. Можно использовать трансферное обучение(если у вас достаточно тренировочных образов), чтобы обучить одну из широко доступных обученных моделей выше и посмотреть, как они работают. В целом, однако, особенно старые архитектуры (скажем, до VGG16) испытывают трудности с изучением «глобальных особенностей», которые требуют изучения «головы» (уже сложная особенность), «туловища» (еще одна сложная особенность) и их отношение (которое также требует, чтобы эти два объекта находились в определенном пространственном отношении). Такого рода вещи - это то, что Capsule Networks должны были делать.

Convnets были рождены, чтобы делать с точностью до наоборот: быть чувствительными к локальным особенностям и относительно нечувствительными к их относительному положению / масштабу. Хороший 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.