반응형

SENet 3

[딥러닝] Computer Vision과 NLP에서의 attention 함께 살펴보기

안녕하세요, 최근에 NLP를 공부하고 있는데, CV에서 사용하는 attention을 생각하고 NLP의 attention을 공부했더니 이해가 잘 안되더라구요 ㅎㅎ 두 분야의 attention을 함께 살펴보도록 하겠습니다. Computer Vision CV에서 attention은 피쳐맵에서 픽셀 또는 채널 간 중요한 요소를 계산하여 중요도에 따른 가중치 정보를 담은 attention vector를 생성합니다. 그리고 이 attention vector를 피쳐맵에 곱하여 가중치를 가하죠. 대표적으로 SENet, CBAM, SKNet이 있습니다. SENet을 잠시 살펴보면 피쳐맵에서 채널 간 가중치를 계산하여 이 가중치를 피쳐맵에 element-wise로 곱합니다. class SEBlock(nn.Module): ..

[논문 구현] PyTorch로 SENet(2018) 구현하고 학습하기

안녕하세요. 파이토치로 SENet을 구현하고 학습해보도록 하겠습니다. SENet은 SEBlock을 제안한 신경망입니다. SEBlock은 피쳐맵의 채널별 가중치를 계산하고, 이 가중치를 residual unit의 출력 피쳐맵에 곱해줍니다. 이 방법으로 모델의 성능을 개선할 수 있었습니다. SEBlock의 장점은 CNN 구조라면 어떤 모델이든지 사용할 수 있다는 점입니다. resnet, mobilenet, efficientnet 등등 여러 모델에 부착하여 사용할 수 있습니다. 자세한 논문 리뷰는 아래 포스팅에서 확인하실 수 있습니다. [논문 읽기] SENet(2018) 리뷰, Squeeze-and-Excitation Networks 이번에 읽어볼 논문은 SENet, Squeeze-and-Excitation ..

논문 구현 2021.03.30

[논문 읽기] SENet(2018) 리뷰, Squeeze-and-Excitation Networks

이번에 읽어볼 논문은 SENet, Squeeze-and-Excitation Networks 입니다. SENet은 ILSVRC 2017에서 1등을 한 모델입니다. SENet은 채널간의 상호작용에 집중하여 성능을 끌어올린 모델입니다. 채널 간의 상호작용은 가중치로 생각해볼 수 있습니다. 가중치가 큰 채널은 중요한 특징을 담고있다는 의미로 해석할 수 있습니다. 피쳐맵의 각 채널마다 가중치를 부여하여 피쳐맵의 각 채널에 곱합니다. 즉, SENet은 채널 간의 가중치를 계산하여 성능을 끌어올린 모델로 생각해 볼 수 있습니다. 이제 이 가중치를 어떻게 계산하는지 알아보도록 하겠습니다. 위 그림은 SB Block(Squeeze(압축) + Excitation(재조정))을 통해 채널별 가중치를 계산하고 피쳐맵에 곱해지는..

반응형