что такое свертка функций оригиналов

Копируем человеческий мозг: операция «Свертка»

Чему уже научились сверточные искусственные нейронные сети (ИНС) и как они устроены?

1. Предисловие

Такие статьи принято начинать с экскурса в историю, дабы описать кто придумал первые ИНС, как они устроены и налить прочую, бесполезную, по большей части, воду. Скучно. Опустим это. Скорее всего вы представляете, хотя бы образно, как устроены простейшие ИНС. Давайте договоримся рассматривать классические нейронные сети (типа перцептрона), в которых есть только нейроны и связи, как черный ящик, у которого есть вход и выход, и который можно натренировать воспроизводить результат некой функции. Нам не важна архитектура этого ящика, она может быть очень разной для разных случаев. Задачи, которые они решают — это регрессия и классификация.

2. Прорыв

Что же такого произошло в последние годы, что вызвало бурное развитие ИНС? Ответ очевиден — это технический прогресс и доступность вычислительных мощностей.

Приведу простой и очень наглядный пример:

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Earth Simulator – один из самых быстрых в мире вычислительных комплексов. Он был построен в 2002 году. До 2004 года эта машина оставалась самым мощным вычислительным устройством в мире.

2015:
что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов
NVIDIA Tesla M40/M4: GPU для нейронных сетей

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

3. Операция свертки.

Одной из ресурсоемких в реализации теорий, а точнее методом, который требует очень больших мощностей, является операция свертки.

Что же это такое? Попробуем разложить всё по полочкам:

Котики

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов
Экспериментируя на животных, David Hubel и Torsten Wiesel выяснили, что одинаковые фрагменты изображения, простейшие формы, активируют одинаковые участки мозга. Другими словами, когда котик видит кружочек, то у него активируется зона “А”, когда квадратик, то “Б”. И это сподвигло ученых написать работу, в которой они изложили свои идеи по принципам работы зрения, а затем они это подтвердили опытами:

Вывод был примерно такой:

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

Математика

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Графические редакторы давно используют математику для изменения стиля изображения, но как оказалось, те же самые принципы можно применить и в области распознавания образов.

Если мы рассмотрим картинку как двумерный массив точек, каждую точку — как набор значений RGB, а каждое значение — это просто 8-ми битовое число, то получим вполне себе классическую матрицу. Теперь возьмем и придумаем свою, назовем её Kernel, матрицу, и будет она такой:

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Попробуем пройтись по всем позициям, от начала и до конца матрицы изображения и перемножить наш Kernel на участок с таким же размером, а результаты сформируют выходную матрицу.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Вот что мы получим:

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Взглянув на секцию Edge Detection мы увидим, что результатом являются грани, т.е. мы легко можем подобрать такие Kernel, которые на выходе будут определять линии и дуги разной направленности. И это именно то что нам нужно — фичи изображения первого уровня. Соответственно, можно предположить, что применив те же действия еще раз, мы получим комбинации фич первого уровня — фичи второго уровня (кривые, окружности и т.п.) и это можно было бы повторять очень много раз, если бы мы не были ограничены в ресурсах.

Вот пример наборов Kernel матриц:

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов
что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

А вот так выглядит фича-экстрактор от слоя к слою. На пятом слое уже формируются очень сложные фичи, например глаза, образы животных и прочего вида объекты, на которые и натренирован экстрактор.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Сначала разработчики пытались сами подобрать Kernel, но вскоре выяснилось, что его можно получить обучением, и это намного эффективнее.

Подводные камни

Поняв, как работают мозги котов и как применить математический аппарат, мы решили создать свой фича-экстрактор! Но… подумав сколько фич нужно извлекать, сколько уровней извлечения нам надо и, прикинув, что для нахождения сложных образов мы должны анализировать сочетания фич “каждая с каждой” мы поняли, что памяти для хранения этого всего нам точно не хватит.

На помощь вновь пришли математики и придумали операцию объединения (pooling). Суть ее проста — если в определенной области присутствует фича высокого уровня, то можно откинуть другие.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Такая операция не только помогает экономить память, но и избавляет от мусора и шумов на изображении.

На практике чередуют слои свертки и объединения несколько раз.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Финальная архитектура

Применив всё, что описано выше, можно получить вполне рабочую архитектуру фиче-экстрактора, не хуже, чем у кошки в голове, более того, в настоящее время точность распознавания компьютерного зрения достигает в отдельных случаях >98%, а, как подсчитали ученые, точность распознавания образа человеком составляет в среднем 97%. Будущее пришло, Скайнет наступает!

Вот примеры нескольких схем реальных фича-экстракторов:

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов
что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов
что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Как вы видите, на каждой схеме в конце присутствуют еще 2-3 слоя нейронов. Они не являются частью экстрактора, они — наш черный ящик из предисловия. Только вот на вход ящика при распознавании, подаются не просто цвета пикселей, как в простейших сетях, а факт наличия сложной фичи, на которую тренировали экстрактор. Ну вам же тоже проще определить что перед вами, например, лицо человека, если вы видите нос, глаза, уши, волосы, чем если бы вам назвали по отдельности цвет каждого пикселя?

Это видео просто шикарно демонстрирует как работают фича-экстракторы:

4. Кто всем заправляет?

1. Tensorflow

Свободная программная библиотека для машинного обучения. Практически всё, что делает сервисы Google такими умными использует эту библиотеку.

Пример того, что дает Inception-v3 (классификатор изображений от Google, построенный на Tensorflow) и натренированный на ImageNet наборе изображений:

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

2. MS Cognitive Services (The Microsoft Cognitive Toolkit)

Компания Microsoft пошла другой дорогой, она предоставляет готовые API, как за деньги, так и бесплатно, с целью ознакомления, но лимитируя количество запросов. API — очень обширные, решают десятки задач. Это всё можно попробовать прямо на их сайте.

Можно, конечно, использовать MSCT так же как и TF, там даже синтаксис и идея очень похожи, оба описывают графы с заглушками, но ведь зачем тратить время, когда можно использовать уже обученные модели?

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

3. Caffe (Caffe2)

Открытая библиотека, фрэймворк на котором можно построить любые архитектуры. До недавнего времени был самым популярным. Существует множество готовых (натренированных) бесплатных моделей сетей на этом фрэймворке.

Яркий пример применения Caffe:
Rober Bond, используя натренированную на распознавание котов сеть, соорудил автоматизированную прогонялку котов с его газона, которая при обнаружении кота на видео, поливает его водой.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Существует еще много разных, популярных в свое время библиотек, оберток, надстроек: BidMach, Brainstorm, Kaldi, MatConvNet, MaxDNN, Deeplearning4j, Keras, Lasagne(Theano), Leaf, но лидером считается Tensorflow, в силу своего бурного роста за последние два года.

5. Области применения (вместо заключения)

В конце статьи хочу поделиться некоторыми яркими примерами использования сверточных сетей:

Источник

Линейная и циклическая свертка

DSPL-2.0 — свободная библиотека алгоритмов цифровой обработки сигналов

Распространяется под лицензией LGPL v3

Одним из китов современной техники, несомненно, является операция свертки:

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Для вычисления линейной свертки сигналы и и сдвигают относительно друг друга, все возможные перекрывающиеся отсчеты почленно перемножают и складывают как это представлено на рисунке 2.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Приведем пример вычисления линейной свертки. Пусть сигнал содержащий отсчета, а сигнал из отсчетов. Тогда процесс вычисления линейной свертки приведенных сигналов показан на рисунке 3.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Необходимо отметить, что сигнал при вычислении линейной свертки отражается слева-направо, поскольку — самый первый отсчет (самый ранний по времени) и обрабатываться он также должен первым.

Другим важнейшим прикладным значением линейной свертки является расчет произведения полиномов.

Операции по модулю в предположении 0″/> выполняются по следующему правилам:

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Графически пример вычисления циклической свертки (9) для показан на рисунке 5.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Заметим, что вычисление циклической свертки можно представить в матричной форме:

Как мы знаем из свойств дискретного преобразования Фурье, ДПФ циклической свертки равно произведению спектров сворачиваемых сигналов:

Схематично процесс расчета циклической свертки сигналов и использованием алгоритмов быстрого преобразования Фурье показан на рисунке 6.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Каждое из трех БПФ требует количество умножений равное:

Вычислительные преимущества, которые мы получаем при использовании аппарата БПФ для расчета циклической свертки, хотелось бы также получать и для расчета линейной свертки. С этой целью рассмотрим способ приведения линейной свертки последовательностей ограниченной длительности к циклической.

Пусть и — дискретные последовательности длительности и отсчетов соответственно. Линейная свертка последовательностей и вернет длительности отсчет. Если мы хотим получить как результат циклической свертки, то необходимо дополнить и до длины отсчет, как это показано на рисунке 7.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

К последовательности необходимо добавить ноль, а к последовательности — ноль. такое добавление нулей обеспечит увеличение периодичности циклического буфера до размера, когда и перестанут перекрываться циклически. В результате циклическая свертка будет иметь вид:

Таким образом, мы рассмотрели непрерывный интеграл свертки, который описывает реакцию линейного фильтра на произвольный входной сигнал.

Также было рассмотрено два вида дискретных сверток: линейная и циклическая, установлена связь между ними. Было показано, что применение БПФ обеспечивает существенное снижение вычислительных операций при вычислении как циклических, так и линейных сверток.

Источник

Наглядно объясняем операцию свертки в моделях глубокого обучения

При помощи анимированных изображений и визуализаций слоев CNN-сетей раскрываем широко применяемое в моделях глубокого обучения понятие свертки.

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

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Суть операции свертки на примере черно-белых изображений

В математическом отношении в двумерной свертке нет ничего сложного. Имеется ядро – небольшая матрица весов. Это ядро «скользит» по двумерным входным данным, выполняя поэлементное умножение для той части данных, которую сейчас покрывает. Результаты перемножений ячеек суммируются в одном выходном пикселе. В случае сверточных нейросетей ядро определяется в ходе обучения сети. Начальные веса, аналогично случаю перцептрона, могут иметь рандомные значения, и корректируются в процессе обучения.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

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

Такой подход контрастирует с полносвязными сетями. Так, в приведенном выше примере имеется 5×5=25 входных признаков и 3×3=9 выходных. Если бы это были два полносвязных слоя, весовая матрица состояла бы из 25×9=225 весовых параметров. При этом каждая функция вывода была бы взвешенной суммой всех входов. В случае свертки, взвешенная сумма берется только по числу весов ядра. И в рассмотрении одновременно участвуют только близлежащие элементы.

Свертка соответствует модели иерархий абстрактных представлений: совокупность пикселей обобщается до ребер, те – до паттернов, и, наконец, до самого объекта. Малозначимые детали отфильтровываются в процессе перехода к более абстрактным образам.

Некоторые распространенные методы

Обратим внимание на два характерных метода, связанных с операцией свертки: дополнение отступа (padding) и выбор шага (strides).

Нулевой отступ

В вышеприведенном примере скольжение ядра «обрезает» исходный двумерный массив по краю, преобразуя матрицу 5×5 в 3×3. Краевые пиксели теряются из-за того, что ядро не может распространяться за пределы края. Однако иногда необходимо, чтобы размер выходного массива был тем же, что и у входных данных.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Чтобы решить эту задачу, исходный массив можно дополнить «поддельными» пикселями. Например, в виде краевого поля, окружающего массив. Если в качестве значений берутся нули, говорят о «нулевом отступе» (zero padding).

Еще чаще стоит задача субдискретизации – уменьшения размерности выходного сигнала в сравнении с исходным. Это обычное явление в сверточных нейросетях, где размер пространственных измерений уменьшается при увеличении количества каналов. Одним из способов является применение объединяющего (pooling) слоя. За счет отбора средних/максимальных значений из каждых соседствующих счетверенных ячеек 2×2 можно уменьшить размерность исходной сетки вдвое. Другой подход – использовать шаг свертки.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Идея шага состоит в том, чтобы при скольжении ядра пропускать часть позиций массива. Значения шага 1 означает выбор каждого пикселя сетки. Шаг 2 означает отбор пикселей на расстоянии в два пикселя с пропуском одного промежуточного, и так далее.

Многоканальная версия – цветные изображения

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

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

В случае с одним каналом термины фильтр и ядро взаимозаменяемы. Для цветного изображения они различны. Фильтр – это коллекция ядер, каждое из которых соответствует одному каналу. Ядро фильтра скользит по данным канала, создавая их обработанную версию. Значимость ядер определяется взаимным отношением их весов. Например, ядро для красного канала может быть более значимым в модели, чем другие ядра фильтра, тогда будут больше и соответствующие веса.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Каждая из обработанных в своих каналах версий суммируется для формирования общего канала.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

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

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Математическая подоплека свертки – особенности линейного преобразования

Предположим, что у нас есть вход 4×4. Мы хотим преобразовать его в сетку 2×2. Если мы используем сеть прямого распространения, потребуется входной вектор из 16 нейронов, полностью связанных с 4 выходными нейронами. Такую ситуацию можно визуализировать весовой матрицей w.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

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

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Для матрицы с 16×4=64 элементами имеется всего 9 нетривиальных параметров, подлежащих оптимизации вместо 64 весовых параметров для полносвязной двухслойной нейронной сети. Обнуление значительной части параметров обусловлено локальностью применяемой операции. Помимо ускорения расчетов, свертка приводит и к лучшей инвариантности относительно размеров входных данных.

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

Локальность свертки

Если бы это был какой-то другой тип данных, а не изображения (например, набор категориальных данных), обобщение, осуществляемое сверткой, могло бы привести к катастрофе. В выходных признаках появлялась бы отсутствовавшая исходно корреляция.

В то же время любое изображение с точки зрения математики представляет собой совокупность правил взаимного расположения элементов. Использование фильтров для поиска элементов изображений – это одна из старых идей компьютерного зрения. Например, для обнаружения контуров можно использовать фильтр Собеля. В отличие от обучаемых ядер сверточных нейронных сетей, ядро этого фильтра имеет фиксированные веса:

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Для фонового неба, не содержащего краевых элементов большинство пикселей на изображении имеют одинаковые значения. Суммарные значения выхода ядра в этих местах равны нулю. Для части изображения с вертикальными границами в местах границ существует разница между пикселями слева и справа от края. Ядро, вычисляя эту ненулевую разницу, определяет положение контуров. Повторимся, ядро работает каждый раз только с локальными областями 3×3, обнаруживая аномалии в локальном масштабе.

Применяя один и тот же подход ко всему изображению, можно получить результат для всего массива. Аналогично свертка с транспонированным ядром позволяет выделить горизонтальные края.

Визуализация признаков при помощи оптимизации

Целая отрасль исследований в сфере глубокого обучения посвящена тому, чтобы сделать модели нейронных сетей интерпретируемыми. Одним из мощных инструментов для подобного рода задач является предложенная в работе 2017 года визуализация признаков при помощи оптимизации. Идея в корне простая: оптимизировать изображение, инициализированное шумом, так, чтобы активировать фильтр как можно сильнее.

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

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

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

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

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

Элементы, находившиеся в левом верхнем углу, после свертки имеют соответствующие отображения также в левом верхнем углу. Как бы глубоко ни заходили детекторы признаков, они все равно будут работать на очень маленьких ядерных участках. Неважно, насколько глубоко происходит свертка, но вы не можете обнаружить лица из сеток размером 3х3. Здесь возникает идея локальной зоны восприимчивости (receptive field).

Зона восприимчивости свертки

Существенной составляющей архитектуры сверточной нейронной сети является уменьшение объема данных от входа к выходу модели с одновременным увеличением глубины канала. Как упоминалось ранее, обычно это делается при помощи выбора шага свертки или pooling-слоев. Зона восприимчивости определяет, какая площадь оригинальных входных данных из исходной сетки обрабатывается на выходе. На изображениях ниже представлен пример шагающей свертки с выкидыванием промежуточных пикселей.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

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

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

Сеть развивается от небольшого количества низкоуровневых фильтров на начальных этапах (64 в случае GoogleNet) до очень большого количества фильтров (1024 в финальной свертке), каждый из которых находит специфичный высокоуровневый признак. Переход от уровня к уровню обеспечивает иерархию распознавания образов.

Обобщающие процессы свертки имеет свою оборотную сторону – возможность подделки изображений под удовлетворение особенностей распознающих фильтров. На изображениях ниже человек в обоих случаях узнает фотографии панды. А сверточные нейросети можно запутать, добавив шум, подстроенный под фильтры распознавания других образов.

что такое свертка функций оригиналов. Смотреть фото что такое свертка функций оригиналов. Смотреть картинку что такое свертка функций оригиналов. Картинка про что такое свертка функций оригиналов. Фото что такое свертка функций оригиналов

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *