#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) — это объекты, отличные от сверточных ядер для методов ядра (описанных в этой статье). В методах ядра ядра являются точечным произведением при воспроизведении Гильбертовых пространств и редко поддаются обучению (в лучшем случае их коэффициенты смешивания могут быть изучены).