Глава 4. Распознавание изображений
и звуковых сигналов
155
и наведения на резкость. Эти эффекты достигаются с помощью двумерной свертки
со «скольжением» небольшого «окна» пикселов (
сверточного ядра
, либо просто
ядра
) по входному изображению. На каждой позиции в ходе этого «скольжения»
ядро попиксельно умножается на перекрываемый им небольшой участок входного
изображения. А затем эти попиксельные произведения суммируются, в результате
чего получаются пикселы выходного изображения.
Количество параметров слоя conv2d больше, чем у плотного слоя. Два главных
параметра слоя conv2d —
kernelSize
и
filters
. Чтобы понять их суть, сначала при
дется в
общих чертах описать, как происходит двумерная свертка.
На рис. 4.3 приведена подробная схема работы двумерной свертки. Мы пред
полагаем, что тензор входного изображения
(слева вверху)
состоит из простого при
мера данных, чтобы было удобно изображать его на бумаге. Мы также используем
следующие параметры операции conv2d:
kernelSize
=
3
и
filters
=
3
. Ядро пред
ставляет собой тензор формы
[3,
3,
2,
3]
, поскольку цветовых каналов здесь два
(несколько необычный вариант ради удобства иллюстрации), что меньше типич
ного значения
3
или
4
(например, в случае RGB или RGBA). Первые два числа (
3
и
3
) отражают высоту и ширину ядра, определяемые параметром
kernelSize
. Третье
измерение (
2
) — число входных каналов. А что же четвертое измерение (
3
)? Это
количество фильтров, соответствующее последнему измерению выходного тензора
операции conv2d.
Итак, пусть свойство
filters
(число фильтров) слоя conv2d равно
3
,
kernelSize
—
[3,
3]
,
strides
—
[1,
1]
, тогда первым шагом двумерной свертки будет «скольжение»
по измерениям высоты и ширины с выделением маленьких фрагментов исходного
изображения — высоты
3
и ширины
3
— в соответствии со значением
filterSize
слоя. Глубина также совпадает с исходным изображением. На втором шаге вычисля
ются скалярные произведения каждого из фрагментов размером 3
×
3
×
2 и сверточ
ного ядра (то есть выполняется фильтрация). Подробности этих операций скаляр
ного произведения приведены на рис. 4.4. Ядро представляет собой четырехмерный
тензор и состоит из трех фильтров. Скалярное произведение фрагмента изображения
и фильтра вычисляется отдельно для каждого из трех фильтров. Фрагмент изобра
жения умножается на фильтр попиксельно, после чего произведения суммируются
и получается пиксел выходного тензора. А поскольку ядро содержит три фильтра,
то каждый из фрагментов изображения преобразуется в «стопку» из трех пикселов.
Данная операция скалярного произведения проводится над всеми фрагментами
изображения, а полученные «стопки» из трех пикселов объединяются в выходной
тензор, в
данном случае формы
[2,
3,
3]
.
Если рассматривать выходной сигнал как тензор изображения (что вполне ло
гично!), то фильтры можно считать числом каналов выходного сигнала. В отличие
от входного изображения каналы выходного тензора никакого отношения к цветам
не имеют, а представляют различные визуальные признаки входного изображения,
усвоенные моделью из обучающих данных. Например, один фильтр может быть
чувствителен к проходящим под определенным углом прямолинейным границам
между темными и светлыми участками изображения, а другой — к углам коричне
вого цвета и т. д. Мы вернемся к этому вопросу позже.