Я узнаю о Convolutional Neural Network
s, и сейчас я не понимаю, как это реализовать.
Я знаю об обычных нейронных сетях и таких понятиях, как Gradient Descent
и Back Propagation
, и я могу интуитивно понять, как работает CNN.
Мой вопрос касается обратного распространения в CNN. Как это происходит? Последний полносвязный слой — это обычные нейронные сети, и с этим проблем нет. Но как я могу обновить фильтры в сверточных слоях? Как я могу обратно распространить ошибку из полностью связанных слоев в эти фильтры? Моя проблема заключается в обновлении фильтров!
Фильтры - это только простые матрицы? Или у них есть структуры, подобные обычным NN, и соединения между слоями имитируют эту возможность? Я читал о Sparse Connectivity
и Shared Weights
, но не могу связать их с CNN. Я действительно запутался в реализации CNN, и я не могу найти никаких руководств, в которых говорится об этой концепции. Я не могу читать Papers, потому что я новичок в этих вещах, и моя математика не очень хороша.
я не хочу использовать TensorFlow
или подобные инструменты, я изучаю основную концепцию и использую чистый Python
.