Предопределены ли ядра свертки или CNN определяет их во время обучения

#machine-learning #neural-network #artificial-intelligence #convolution #conv-neural-network

#машинное обучение #нейронная сеть #искусственный интеллект #свертка #conv-neural-network

Вопрос:

Я понимаю, как работают ядра свертки и их функции в нейронных сетях. Однако я не уверен, что в типичном CNN вы бы заранее определили, что такое сверточное ядро, или это то, что CNN «выясняет». Например, при создании CNN вы бы просто определили какое-нибудь ядро свертки размером 5×5 следующим образом:

 kernel = [[ 0,  1, -2,  1,  0]
          [ 0,  2, -1,  2,  1]
          [ 1,  0,  1,  0,  0]
          [-1, -1,  0, -3, -1]
          [-3, -2,  0,  1,  1]]
  

Или вы просто сказали бы CNN найти ядро 5×5, и после обучения оно будет иметь хорошее ядро 5×5?

Ответ №1:

Для CNN ядра обучаются во время процедуры оптимизации, поэтому каждое число в матрице является свободным параметром, скорректированным в соответствии с частной производной потерь, учитываемых по отношению к этой конкретной переменной.

Итак, чтобы ответить

Или вы просто сказали бы CNN найти ядро 5×5, и после обучения оно будет иметь хорошее ядро 5×5?

Вы бы сказали модели использовать K ядер заданного размера с заданным интервалом, возможно, в нескольких слоях, за которыми следуют другие операции, и она найдет все ядра самостоятельно.

Комментарии:

1. Итак, что описывает эта статья? aclweb.org/anthology/P03-1005

2. «ядро» имеет много значений как в математике, так и в информатике. Сверточное ядро в нейронных сетях (CNN) — это объекты, отличные от сверточных ядер для методов ядра (описанных в этой статье). В методах ядра ядра являются точечным произведением при воспроизведении Гильбертовых пространств и редко поддаются обучению (в лучшем случае их коэффициенты смешивания могут быть изучены).