본문 바로가기
DL|ML

정확히 CNN에서 shared weights란 무엇을 의미하나요?

by 이든Eden 2021. 5. 12.

이 글은 이곳을 번역한 글입니다.

제 의견도 내포되어 있으니, 틀린 부분은 댓글로 이야기해주세요!

 

🧑‍🎓 Q : What exactly is meant by shared weights in convolutional neural network? 정확히 CNN에서 가중치 공유(shared weights)란 무엇을 의미하나요?

 

🧑‍🏫 A : 가중치가 공유(weight sharing)된다는 것은 하나의 커널이 뉴런의 볼륨을 stride하며 모든 커널이 동일한 가중치를 갖는다는 것을 의미합니다. 이는 또한 이러한 가중치(weight), 즉 볼륨을 지나며 모든 커널이 학습하는(training) 동안에도 동일하게 유지된다는 것을 의미합니다.

 

 

🍕이든 : 전통적인 뉴럴넷에서는 가중치 매트릭스(weight matrix)가 레이어의 출력을 계산할 때 정확히 한 번 사용됩니다. 하지만 CNN에서는 하나의 커널이 이미지의 픽셀들(혹은 하나의 픽셀)을 거칩니다. 이러한 weight sharing은 sparse connection으로 더 적은 가중치로 여러가지 좋은 효과를 가질 수 있게 해주었습니다. 

이미지1 (출처 : deeplearningbook.org)

 

위의 이미지1을 보세요. $x_1, ..., x_5$ 를 픽셀, 화살표는 가중치를 의미한다고 생각한다면 이해가 더 쉬울 것입니다. 

 

더 나아가 fully connected layer와 1D Convolutional layer를 비교했을 때의 차이점은 결과의 CNN은 커널로 인해 weight sharing과 local 정보를 가지고 있다는 점이 다를 것입니다.

 

 

 

 

참고