Я пытаюсь лучше понять сверточные нейронные сети, написав код Python, который не зависит от библиотек (например, Convnet или TensorFlow), и я застрял в литературе о том, как выбирать значения для матрицы ядра, когда выполнение свертки на изображении.
Я пытаюсь понять детали реализации в шаге между картами объектов на изображении ниже, показывающем слои CNN.
Согласно этой схеме:
Ядро матрицы ядра «шагает» по изображению, создавая карту объектов, где каждый пиксель является суммой всех поэлементных произведений между каждым весом ядра (или матрицы фильтра) и соответствующим значением пикселя входного изображения.
Мой вопрос: как мы инициализируем вес матрицы ядра (или фильтра)?
В демонстрации выше это просто 1 и 0, но я предполагаю, что это упрощено с точки зрения диаграммы.
Обучены ли эти веса на некотором этапе предварительной обработки? Или выбрано явно пользователем?