컨벌루션 신경망의 크기가 어떻게 작동하는지 이해하려고합니다. 아래 그림에서 입력은 28 x 28 매트릭스이며 1 채널입니다. 그런 다음 32 개의 5 x 5 필터 (높이와 너비에 2 보폭)가 있습니다. 그래서 나는 결과가 14x14x32 인 것을 이해한다. 그러나 다음의 길쌈 레이어에서 우리는 64 개의 5 x 5 필터를가집니다 (다시 스트라이드 2). 그렇다면 결과가 7 x 7 x 64 x 7 x 7 x 32 x 64가되는 이유는 무엇입니까? 32 개의 채널 각각에 64 개의 필터를 적용하지 않습니까?컨볼 루션 신경 네트워크의 크기
0
A
답변
1
하나 개의 필터는 이전 계층의 모든 치수의 합이다. 즉, 5x5 필터는 32 개의 모든 차원에 대해 합산되며 본질적으로 32 * 5 * 5 값의 가중 합계입니다. 그러나 가중치는 차원간에 공유됩니다. 그런 다음 64 개의 필터가 있습니다. 이미지에 대한 더 자세한 설명은 http://cs231n.github.io/convolutional-networks/에서 확인할 수 있습니다.
1
here은 레이어의 진행에 따라 입력 크기가 어떻게 다른지 명확한 설명입니다.
입력 할 때 너비는 28, 높이와 깊이는 1로 지정하십시오. 레이어 1의 필터의 경우 필터의 깊이 치수는 입력 깊이와 같아야합니다. 그래서 필터의 차원은 5x5x1이 될 것이고, 하나의 필터를 적용하면 차원이 14x14x1 차원 활성화 맵을 생성하기 위해 (strides로 인해) 줄어들므로 32 개의 필터를 적용하면 32 개의 활성화 맵을 얻을 수 있습니다. 이 모든 14x14x32를 결합하면 레이어 1의 출력이되고 두 번째 레이어에 입력됩니다. 두 번째 레이어에서 차원 5 (너비) x5 (높이) x32 (깊이)의 필터를 적용하여 14x14x1의 활성화 맵 하나를 생성해야합니다. 모든 64 개의 활성화 맵을 스택하면 두 번째 레이어의 출력 크기가 14x14x64 등등.
예, 실제로 32 개의 채널 각각에서 64 개의 필터를 적용하고 있습니다.
참고 : http://stackoverflow.com/a/42636245/562769 –