Изменения

Перейти к: навигация, поиск

Сверточные нейронные сети

2 байта добавлено, 30 январь
Нет описания правки
Сверточный слой нейронной сети представляет из себя применение операции свертки к выходам с предыдущего слоя, где веса ядра свертки являются обучаемыми параметрами. Еще один обучаемый вес используется в качестве константного сдвига (англ. ''bias''). При этом есть несколько важных деталей:
* В одном сверточном слое может быть несколько сверток. В этом случае для каждой свертки на выходе получится своё изображение. Например, если вход имел размерность <math>w\times h</math>, а в слое было <math>n</math> сверток с ядром размерности <math>k_x\times k_y</math>, то выход будет иметь размерность <math>n\times(w - k_x + 1)\times(h - k_y + 1)</math>.;
* Ядра свертки могут быть трёхмерными. Свертка трехмерного входа с трехмерным ядром происходит аналогично, просто скалярное произведение считается еще и по всем слоям изображения. Например, для усреднения информации о цветах исходного изображения, на первом слое можно использовать свертку размерности <math>3\times w \times h</math>. На выходе такого слоя будет уже одно изображение (вместо трёх).;
* Можно заметить, что применение операции свертки уменьшает изображение. Также пиксели, которые находятся на границе изображения учавствуют участвуют в меньшем количестве сверток, чем внутренние. В связи с этим в сверточных слоях используется дополнение изображения (англ. ''padding''). Выходы с предыдущего слоя дополняются пикселями так, чтобы после свертки сохранился размер изображения. Такие свертки называют ''одинаковыми'' (англ. ''same convolution''), а свертки без дополнения изображения называются ''правильными'' (англ. ''valid convolution''). Среди способов, которыми можно заполнить новые пиксели, можно выделить следующие:** ''zero shift'': <code>00[ABC]00</code>;** ''border extension'': <code>AA[ABC]CC</code>;** ''mirror shift'': <code>BA[ABC]CB</code>;** ''cyclic shift'': <code>BC[ABC]AB</code>.
* Еще одним параметром сверточного слоя является ''сдвиг'' (англ. ''stride''). Хоть обычно свертка применяется подряд для каждого пикселя, иногда используется сдвиг, отличный от единицы {{---}} скалярное произведение считается не со всеми возможными положениями ядра, а только с положениями, кратными некоторому сдвигу <math>s</math>. Тогда, если если вход имел размерность <math>w\times h</math>, а ядро свертки имело размерность <math>k_x\times k_y</math> и использовался сдвиг <math>s</math>, то выход будет иметь размерность <math>\lfloor\frac{w - k_x}{s} + 1\rfloor\times\lfloor\frac{h - k_y}{s} + 1\rfloor</math>.
77
правок

Навигация