기존의 cnn 모델은 공간정보와 채널정보를 활용한다.
senet은 채널정보에 집중하여 성능을 높인 방법이다.
이 논문에서는 squeeze와 excitation이 들어간 SE block을 제안한다.
SE block를 사용해서 어떤 채널의 정보가 중요한지에 대해서 상대적인 중요성에 대한 학습을 한다. 채널과 관련된 파라메터를 추가해서 그 파라메터를 통해 채널 값을 추론에 적절하게 학습(조정)하니깐 예측이 잘 돼서 성능이 향상되는 것이다.
1) squeeze
h x w x c 를 1 x 1 x c 로 global average pooling을 통해서 정보를 축약한다. 채널의 정보를 중점적으로 본다.
이때 pooling방법은 max, min등을 사용할 수 있다.
2) excitation
s = sigmoid( w2 relu(w1 * z) )의 과정을 거친다. 이때 bottleneck 방식을 사용하는데 이를 통해서 파라메터 수를 줄일 수 있고 일반화에 도움을 준다. 이를 통해서 결론적으로 각 채널마다 중요도를 다르게한 0-1의 숫자를 알 수 있다.
1 x 1 x c 가 1 x 1 x c/r로 변화하게 된다.
이것은 inception, resnet 등에 사용할 수 있는 generic block이고 실제로 성능이 많이 향상된 반면에 연산은 얼마 늘어나지 않아서 좋ㄹ은 방법이라고 한다. 끗
tip1.
class agnostic: bounding box정보만 주어지고 classification정보는 주어지지않을때, 물체의 종류를 모르는, later layers
class aware: bounding box정보와 classification정보가 둘다 주어지는 경우, ealier layers
tip2.
flops는 부동 소수점 연산의 횟수
gflops는 gpu 부동 소수점 연산의 횟수
'이제는 사용하지 않는 공부방 > Artificial intelligence' 카테고리의 다른 글
자연어처리 이론 한번에 정리하기 (0) | 2021.09.01 |
---|---|
learn about a specific topic (0) | 2021.08.31 |
Attention mechanism (0) | 2021.08.10 |
[kaggle] topic modeling: LDA, NMF (0) | 2021.07.10 |
[GCN] graph convolutional network (0) | 2021.07.04 |