Размеры полностью подключенного слоя - PullRequest
0 голосов
/ 25 июня 2019

У меня есть несколько неопределенностей относительно полностью связанного слоя сверточной нейронной сети.Допустим, вход является выходом сверточного слоя.Я понимаю, что предыдущий слой сплющен.Но может ли он иметь несколько каналов?(например, может ли вход для полностью подключенного слоя быть 16x16x3 (3 канала, сплющенный в вектор из 768 элементов?)

Далее, я понимаю, что уравнение для выходных данных равно

outputs = activation(inputs * weights' + bias)

Есть ли 1 вес на вход? (Например, в приведенном выше примере, будет ли 768 весов?)

Далее, сколько смещений? 1 на канал (т. Е. 3)? 1 не имеет значенияЧто? Что-то еще?

Наконец, как фильтры работают в полностью связанном слое? Может быть больше 1?

1 Ответ

1 голос
/ 25 июня 2019

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

Чтобы ответить на свой первый вопрос: да, какие бы у вас ни были измерения, вам нужновыровняйте его перед отправкой в ​​полностью связанные слои.

Чтобы ответить на ваш второй вопрос, вы должны понимать, что полностью связанный слой на самом деле представляет собой процесс умножения матриц с последующим добавлением вектора:

input^T * weights + bias = output

, где у вас есть вход размером 1xIN, весами размера INxOUT и выходом размера 1xOUT, поэтому у вас есть 1xIN * INxOUT = 1xOUT.В целом у вас будут веса INxOUT и OUT для каждого входа.Вам также понадобятся смещения OUT, так что полное уравнение равно 1xIN * INxOUT + 1xOUT (термин смещения).

Нет фильтров, поскольку вы не выполняете свертку.

Обратите внимание, что полностью подключенlayer также равен 1x1 сверточному уровню, и многие реализации используют позже для полностью связанного уровня, это может сбить с толку для начинающих.Подробнее см. ЗДЕСЬ

...