본문 바로가기
Paper

ShuffleNet_V1

by 띰쥬 2020. 9. 24.
728x90
반응형
SMALL

 계산비용이 많이 차지하는 1x1컨볼루션을 pointwise group convolution으로 대체하여 계산비용을 줄이겠다.

group convolution은 각 그룹간의 교류가 없어 해당 그룹의 정보만 갖고 있게 되는데 그문제를 'channel shuffle'을 통해 해당 문제를 해결하겠다.

√ (a) 하나의 channel을 지정한 group의 수 만큼 나누고 group들마다 각자 convolution을 하는데 그러면 다른 그룹의 정보가 없어져 representation을 약화시킴

√ (b), (c)가 channel shuffle의 과정을 나타낸 것

√ group들을 subgroup으로 나눠서  각 그룹들이 섞어서 나눠가지고 있는것 

√ 위의 그림은 shuffle unit 으로 이러한 구조를 반복하여 쌓는 구조로 설계했다.

√ 기본이 되는 (a)에서 그룹컨볼루션과 채널셔플을 추가한 add연산을 하는유닛 unit (b), (c)는 3x3 convolution에서 stride=2로 설정하여 크기가 절반으로 줄어들어 AVG pool 을 통해 shortcut path 의 크기를 조절하여 맞추고 concatenation한다.

√ 전체적인 구조는 3x3 convolution과 맥스풀링으로 시작해서 shuffle unit을 반복하는 3의 stage를 지나 클로벌 풀링을 하도록 설계하였다.

√ 실험결과는 채널 스케일을 크게 할수록 성능이 높아지는데 그룹수가 클 경우에는 성능에 영향을 주지않음 (* 자체적으로 g=8인경우 스케일이 두배일때 성능이 어떻게 되는지 돌려봤는데 경우에따라서 줄어들기도 하고 미미하게 좋아지기도 하였음)

√ 채널 스케일이 작을수록 그룹수가 성능에 영향을 주는 비율이 커지는데 결론적으로 채널의 크기가 어느정도 커야 성능에 좋은 영향을 주고 채널스케일이 작을수록 그룹수를 증가시키는 것이 좋은 성능을 내게 한다.

√ channel shuffle의 유무에 따라 실험한 결과 있는 것이 성능이 좋게나온다.

√ 추가적으로 channel shuffle을 unit에서 마지막 1x1 group convolution에 추가해봤는데 성능이 너무 제멋대로 나오더라...좋은 개선방안은 아닌듯

728x90
반응형
LIST

'Paper' 카테고리의 다른 글

ShuffleNet_V2  (0) 2020.09.29

댓글