Фильтры являются весовыми матрицами слоев Conv2d
, использованных в модели, и не являются предварительно загруженными изображениями, такими как "задняя кривая", которую вы дали в примере. Если бы это было так, нам нужно было бы предоставить CNN все возможные типы форм, кривых, цветов и надеяться, что любые невидимые данные, которые мы передаем модели, содержат где-то в себе эти конечные наборы изображений, которые модель может распознать.
Вместо этого мы разрешаем CNN изучать фильтры, необходимые для успешной классификации по самим данным, и надеемся, что он сможет обобщить новые данные. Через множество итераций и данных (которые им требуются очень много) модель итеративно создает лучший набор фильтров для успешной классификации изображений. Случайная инициализация в начале обучения гарантирует, что все фильтры на слое научатся идентифицировать различные свойства входного изображения.
Тот факт, что более ранние слои обычно соответствуют цвету и краям (как выше), не является предопределенным, но сеть осознала, что поиск краев на входе является единственным способом создания контекста в остальной части изображения, и тем самым классифицировать (люди делают то же самое вначале).
Сеть использует эти примитивные фильтры на более ранних уровнях, чтобы генерировать более сложные интерпретации на более глубоких уровнях. Это сила распределенного обучения: представление сложных функций через множество приложений гораздо более простых функций.