Когда люди говорят о нейронных сетях, что они имеют в виду, когда говорят «размер ядра»? Ядра являются функциями подобия, но что это говорит о размере ядра?
Когда люди говорят о нейронных сетях, что они имеют в виду, когда говорят «размер ядра»? Ядра являются функциями подобия, но что это говорит о размере ядра?
Ответы:
Глубокие нейронные сети, более конкретно сверточные нейронные сети (CNN), в основном представляют собой стек слоев, которые определяются действием нескольких фильтров на входе. Эти фильтры обычно называются ядрами.
Например, ядра, находящиеся в сверточном слое, являются сверточными фильтрами. На самом деле свертка не выполняется, но существует взаимная корреляция. Размер ядра здесь относится к ширине и высоте маски фильтра.
Слой max pooling, например, возвращает пиксель с максимальным значением из набора пикселей в маске (ядре). Это ядро просматривается на входе, сэмплирует его.
Так что нет ничего общего с концепцией ядер в машинах опорных векторов или сетях регуляризации. Вы можете думать о них как об экстракторах функций.
Как вы можете видеть выше, ядро, также известное как матрица ядра, является промежуточной функцией, а ее размер, здесь 3, является размером ядра (где ширина ядра равна высоте ядра).
Обратите внимание, что ядро не обязательно должно быть симметричным, и мы можем это проверить, процитировав этот текст из документа Conv2D в Tensorflow :
kernel_size: целое число или кортеж / список из 2 целых чисел, определяющий высоту и ширину окна 2D свертки. Может быть одним целым числом, чтобы указать одно и то же значение для всех пространственных измерений.
Но обычно мы просто делаем ширину и высоту равными, и если нет, размер ядра должен быть кортежем 2. Ядро может быть несимметричным, например, в Conv1D (см. Этот пример , и размер ядра может быть больше 2 чисел, например (4, 4, 3) в примере ниже Conv3D :