Как более глубокие слои учатся на предыдущих слоях, отображают карты в сетях Conv
Я много читаю о коннетах, но все же скучаю по важной части.
Допустим, у нас есть слой conv2D с 32 фильтрами:
Я понимаю, что веса этих фильтров инициализируются случайным образом в начале, и в процессе обучения эти фильтры формируются. Так что на первом слое они начинают обнаруживать края.
И теперь после объединения у нас есть еще один слой конвоя (скажем, 32 фильтра снова), который будет применять фильтры к результату предыдущего слоя.
Таким образом, уровень 2 будет применять 32 фильтра к ЛЮБОМ из этих 32 выходов первого уровня. Я видел очень много примеров таких карт: на первом слое создаются изображения ребер, на следующем слое - формы, уши, нос и т. Д. Мой вопрос: как это возможно?
Если слой 2 применяет фильтры к результату слоя 1, а результат слоя 1 - это ребра, то как вы получите форму из ребра?
Я явно что-то здесь упускаю, пожалуйста, помогите мне понять, как возможен каждый следующий слой в сети, производящий более богатые функции, такие как формы, глаза, лицо, если он использует продукцию из предыдущего слоя, где объекты - это просто линии и края?
Есть ли какая-то информация, сливающаяся во время процесса, который я пропускаю, или это нечто большее?
заранее спасибо
1 ответ
Простой пример: допустим, вы пытаетесь различить простые геометрические формы. Например, прямоугольники из бриллиантов.
На первом слое у вас есть различные краевые детекторы. Некоторые стреляют, когда они обнаруживают горизонтальные края, некоторые, когда они обнаруживают вертикальные края, и некоторые другие, когда они видят диагональные края.
Второй слой теперь может объединять эти входные данные в более сложные формы. Таким образом, один фильтр / детектор сработает, если на первом слое будут обнаружены вертикальные и горизонтальные края. Это фильтр для прямоугольника.
Другой фильтр сработает, когда первые слои сообщат, что обнаружены диагональные ребра. Это фильтр для алмазов.
Вы можете ознакомиться с размерами входного и выходного сверточного слоя.
Input = W1xW1xD1
Output:
W2 = (W1 - F + 2P)/S + 1
D2 = K
Terminology: K = Number of Filters, F= Spatial Size of Filter, P=ZeroPadding, S=Stride
Вы можете найти это полезным: