Предисловие. Сверточная сеть — это набор фильтров, применяемых к частям изображения (шаги, которые видны на картинке). Они производят метки true/false, если данный подраздел изображения соответствует фильтру.
![Шагая CNN](https://ujwlkarn.files.wordpress.com/2016/08 /giphy.gif?w=748)
То, что вы видите на предоставленных вами изображениях, на мой взгляд, не является лучшим представлением того, как работают эти визуализации, поскольку они визуализируют, как CNN воспринимает изображение целиком через каждый нейрон. Это значит, что все они очень похожи.
Вот лучшее представление о том, как могут выглядеть основные фильтры сети. Некоторые из них будут срабатывать по прямым линиям, другие — по горизонтальным. Это также то, что показывает изображение, которое вы связали, за исключением того, что оно делает это для всего изображения на визуально простом объекте, что немного затрудняет понимание. Когда вы доберетесь до более сложных фильтров, которые строятся поверх этих базовых фильтров, вам может быть лучше визуализировать все изображение.
![Простые сверточные фильтры](https://cs231n.github.io /assets/cnnvis/filt1.jpeg)
Существует также концепция, называемая трансферным обучением, когда вы берете существующие обобщенные модели, которые высоко ценятся, и пытаетесь применить их к своей конкретной проблеме. Эти модели часто необходимо настраивать, что может означать удаление некоторых слоев, которые не нужны (поскольку каждый сохраняемый слой означает, что обучение обычно занимает больше времени) и/или добавление дополнительных слоев.
Исследователь сможет лучше интерпретировать, как каждый слой в сети строится на предыдущих слоях и как они способствуют решению поставленной задачи. Это часто основано на интуиции (которую можно упростить с помощью хороших визуализаций, таких как это видео с набором инструментов для глубокой визуализации< /а>)
В качестве примера предположим, что я использую VGG16, так называется общая модель, обученная на image-net а>. Я хочу изменить его, чтобы классифицировать отдельные категории мебели вместо 1000 классов совершенно разных вещей, для которых он изначально предназначался. Поскольку это такая общая модель, она может распознавать множество разных вещей, от людей до животных, машин и мебели. Но для меня не имеет смысла налагать штраф за производительность за многие из этих вещей, поскольку они на самом деле не помогают мне классифицировать мою мебель.
Поскольку многие из самых важных открытий, которые мы делаем об этих классах, происходят на разных уровнях сети, я могу затем вернуться к сверточным слоям и удалить все, что кажется слишком сложным для моей задачи. Это может означать, что я удаляю некоторые слои, которые, кажется, специализируются на категоризации человеческих черт, таких как уши, рот, глаза и лица.
Насколько мне известно, люди визуализируют столько слоев, сколько сочтут полезными, а затем обычно принимают решение, основанное на инстинкте, какие слои оставить после этого, а какие выбросить.
Изображения заимствованы из:
Визуализация того, что узнают ConvNets
Интуитивное объяснение сверточных нейронных сетей
person
NegatioN
schedule
04.03.2017