[Image Classification] 6. DenseNet
DenseNet
- DenseNet (2017)
- 아이디어가 간단함. ResNet 을 high-level view 에서 바라보게 되면 conv을 통해서 나오는 값을 그냥 더하는 것(인풋을). 여기서 두 개가 섞이니까 더하지 말고, special dimension 이 같으니까 두 개를 concatenation 하자! 는 것.
- concatenate 할 때 문제는 채널이 점점 커짐. 채널이 기하급수적으로 커짐. 왜냐하면 뒤에 있는 것은 앞에 있는 모든 채널을 다 concatenate 했기 때문(값을 더하는 게 아닌 붙히는 것!).
- 그래서 채널이 커지면, 거기서 가해지는 conv feature map 의 채널도 같이 커짐. 따라서 파라미터 수도 같이 커짐. 그래서 우리가 원하는 것은, 중간에 한번씩 채널을 줄여야 함. 즉 파라미터 수를 줄여야 함. → 여기서 1x1 conv 가 사용됨.
- Dense Block
- feature map 을 계속 키우는 것(concate)
- Transition Block
- BN → 1x1 conv → 2x2 AvgPooling
- 1x1 conv 에서 conv feature map size 를 확 줄임. 다시 Dense Block 으로 쭉 늘임. 그리고 다시 Transition Block 으로 쭉 줄임. 계속 반복하는 것이 DenseNet
⇒ receptive field 를 늘리는 입장에서는 VGG
⇒ GoogLeNet 에서 1x1 conv 로 채널 수를 줄여서 파라미터 수를 줄임.
⇒ ResNet 에서 skip connection 으로 네트워크를 깊게 쌓을 수 있게 함.
⇒ DenseNet에서는 concatenation 으로 피쳐맵을 더하는 것 대신에 쌓으면서 더 좋은 성능을 낼 수 있었다는 것.
맨 위로 이동 ↑
댓글 남기기