Зачем замышлять, если Max Pooling все равно собирается уменьшить изображение?

14

Идея применения фильтров для идентификации чего-либо, например, для идентификации ребер, является довольно крутой идеей

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

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

может восприниматься сетью как:

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

Обратите внимание на то, как каждое изображение выделяло разные края оригинала 7.

Это все замечательно, но, скажем, следующий уровень в вашей сети - это уровень Max Pooling.

Мой вопрос, как правило, не кажется ли это немного излишним? Мы просто были очень осторожны и обдумывали определение краев с помощью фильтров - теперь мы больше не заботимся ни о чем из этого, так как мы уничтожили значения пикселей! Пожалуйста, поправьте меня, если я ошибаюсь, но мы перешли с 25 на 25 на 2 на 2! Почему бы тогда не перейти прямо к Max Pooling, разве мы не закончим тем же самым?

Как расширение моего вопроса, я не могу не задаться вопросом, что произойдет, если, по совпадению, каждый из 4 квадратов просто получит пиксель с одинаковым максимальным значением. Конечно, это не редкий случай, верно? Внезапно все ваши тренировочные образы выглядят одинаково.

Моника Хедднек
источник

Ответы:

16

Максимальное объединение не уменьшает изображение. Он преобразует только что извлеченные элементы (например, ребра). Это означает, что вы получите более точную информацию о том, где находятся эти края или другие элементы. Зачастую это как раз то, что нужно сети для обобщения. Чтобы классифицировать ее, не нужно знать, что существует вертикальное ребро от 10,5 до 10,20, но есть приблизительно вертикальное ребро в 1/3 от левый край около 2/3 высоты изображения.

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

Для того, чтобы это работало хорошо, вам по-прежнему нужно извлекать элементы, с которых не нужно запускать максимальное объединение, поэтому необходим сверточный слой. Вы должны обнаружить, что можете уменьшить исходное изображение (до 14x14) вместо использования первого слоя с максимальным пулом, и вы все равно получите довольно разумную точность. Сколько пула нужно сделать и где добавить эти слои - еще одна проблема с гиперпараметрами при построении глубокой нейронной сети.

Нил Слэйтер
источник
6

Мы не можем перейти непосредственно от входного слоя к максимальному пулу из-за convolution layerпромежуточного уровня. Причина свертки состоит в том, чтобы извлечь особенности. Максимальный пул сэмплирует функции, которые были извлечены. Если вы думаете, что есть функции, которые отсутствуют из-за прямого перехода от большой матрицы к слою максимального пула, вы можете добавить больше слоев свертки между ними, пока вы не будете удовлетворены размером, а затем выполнить максимальное объединение в него, чтобы он это не излишество.

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

Очень хорошее понимание из вики -The intuition is that once a feature has been found, its exact location isn't as important as its rough location relative to other features. The function of the pooling layer is to progressively reduce the spatial size of the representation to reduce the amount of parameters and computation in the network, and hence to also control overfitting. It is common to periodically insert a pooling layer in-between successive conv layers in a CNN architecture. The pooling operation provides a form of translation invariance.

Хима Варша
источник
Можете ли вы объяснить последнее предложение The pooling operation provides a form of translation invariance?
HelloWorld
@StudentT Это означает, что вывод max-pool будет примерно одинаковым, если функция будет обнаружена в любом месте изображения. Переместите объект в изображении, который активирует функцию, и другой вход в максимальный пул будет максимальным, но выход максимального пула должен быть таким же.
mrmcgreg
@mrmcgreg Я считаю, что это верно для глобального пула, а не для максимального пула. Максимальное объединение обеспечивает своего рода неизменность для локальных переводов в пределах области объединения (например, 2x2). Это учитывает некоторое дрожание в функциях.
геометрикал
0

Свертка - это, в основном, фильтрация изображения с помощью фильтра меньших пикселей, чтобы уменьшить размер изображения без потери соотношения между пикселями (параметрами сети). Пул также уменьшает пространственный размер, извлекая из размера Max, Avg или Sum пикселей. фильтра, однако, он может пропустить важный параметр в процессе, которого достигают свертки, не уменьшая размер значительно.

Сиддхарт Пармар
источник