Ядра squared_sized очень часто используются для сверточной нейронной сети, то есть (3,3), (5,5) и т. Д.

Каковы будут плюсы и минусы использования неквадратных размеров ядра? значение (3,7), (3,9) и т. д.

5
Farnaz 28 Янв 2020 в 12:59

3 ответа

Лучший ответ

Я не могу думать ни о каких минусах. Это действительно зависит от того, что вы хотите и каковы ваши данные.

Когда вы используете ядро квадратного размера, вы используете это ядро, чтобы перевести эту область в одну точку в выводе conv. Таким образом, используя квадрат, каждая точка в выходных данных получается из правильного набора взвешенных соседей входной точки (того же числа вертикальных соседей, что и горизонтального).

Однако, если вы используете не квадратный размер ядра, скажем, размер ядра 3 × 9, вы отображаете каждую входную точку, используя в 3 раза больше горизонтали, чем вертикали (или наоборот). В зависимости от характера данных это может упростить процесс обучения и повысить точность. (если вы пытаетесь обнаружить очень крупных худых крокодилов, например ^ _ ^). В конце концов, это все мои мнения, а не 100% научные факты.

1
alift 28 Янв 2020 в 10:15

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

0
Saurav Rai 28 Янв 2020 в 10:21

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

Если бы вы знали, например, что все изученные функции будут иметь соотношение 1x3 (heightxwidth), вы можете использовать размер ядра, например 2x6. Но ты просто не знаешь этого. Даже если вы скажете, что объекты, которые вы хотите обнаружить / классифицировать, выглядят так, это не означает, что сеть научится их идентифицировать. Преимущество состоит в том, что вы можете позволить сети изучать функции, и, следовательно, вы должны ограничивать это как можно меньше.

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

1
Nopileos 28 Янв 2020 в 14:59