Я новичок в CNN DeepLearning, я знаю базовую концепцию c, что мы используем некоторые фильтры для генерации набора карт характеристик из изображения, мы активируем его, используя нелинейный метод, такой как 'relu', прежде чем мы уменьшите это. Мы продолжаем делать это, пока изображение не станет очень маленьким. Затем мы выравниваем его и используем полностью подключенную сеть для расчета его категории. И мы используем технику обратной проправки для вычисления всех параметров на карте. Одна вещь, которую я не понимаю, это то, что когда мы делаем Conv2D, мы создаем много фильтров (каналов) из изображения. Как в примере кода:
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)))
Я понимаю, что это должно генерировать как можно больше функций. Но как эти фильтры обучаются обнаруживать различные функции на одном изображении? Если все они инициализируются одним и тем же значением (например, 0), тогда они должны обнаружить одну и ту же функцию, верно? Даем ли мы им случайные значения во время инициализации, чтобы они могли найти свои локальные минимальные потери с помощью градиентного спуска?