작성자 - 이건희(penguinnom@gmail.com)
본 요약문은 2020년 7월 16일 모두의 연구소 슬로우페이퍼 7기 온라인 풀잎스쿨에서 토의한 내용과 논문을 기반으로 작성되었습니다.
논문의 초록에서 최근 객체탐지 네트워크들은 'Look and Think Twice' 메커니즘을 차용하여 성능이 크게 개선되었다고 합니다. 본 논문이 제안하는 방법도 해당 메커니즘을 차용하였다고 합니다. 근데 'Look and Think Twice'가 과연 뭘까요?
인간의 시각 피질을 모방한 convolution neural network (CNN)이 등장한 이후 컴퓨터 비전 알고리즘의 성능이 많이 개선되었습니다. 하지만 CNN은 인간 시각 피질을 단순화하여 모사한 것으로 생각할 수 있습니다. 실제 인간 시각 피질에는 feed forward 연결보다 더 많은 feedback 연결이 존재한다고 합니다.
A: 그림에서 뭐가 보이니?
B: 음... 팬더랑 호랑이랑...코끼리랑...사자랑..
A: 고릴라는 안보이디?
B: 어 고릴라 저기 있었네!
위 대화는 Look and Think Twice 논문에 언급된 대화입니다. B는 사진을 보고 처음에는 고릴라를 발견하지 못했습니다. 하지만 추가적인 적절한 자극(A가 언질을 줍니다)을 주고 사진을 다시 보니 고릴라를 발견합니다.
다시말하면 사진을 보고 B의 시각피질은 활성화 되어 팬더, 호랑이, 코끼리, 사자를 발견하고 난 뒤 비활성화 됩니다. 물론 사진의 다른 부분들도 B의 시각피질 신경망에는 입력이 되었지만 정보가 활용되지 못하고 신경망이 비활성화 되었습니다. 하지만 A의 조언으로 B는 다시한번 이미지를 보고 이전에 이미지를 보고 활용하지 않았던 정보와 함께 고릴라를 발견하게됩니다.
인지과학 이론인 "Biased Competition Theory"의 설명으로는, 어떤 물체를 찾을 때 인간 시각 피질은 하향식자극(top-down stimuli)에 의해 활성화되고 관계 없다고 판단된 뉴런들은 feedback loop 안에 갇힌다고 합니다.
또 다시 풀어보자면, B의 시각피질은 하향식 자극에 의해 팬더, 호랑이, 코끼리, 사자를 발견하고 난 뒤 관계없다고 판단된 다른 자극들을 feedback loop에 가둔 채로 비활성화되어버렸습니다. 그런데 A의 조언으로 B는 다시한번 이미지를 보고 feedback loop가 활성화되며 추가적으로 고릴라를 발견하였습니다.
인풋 x를 받고 x1에서 활성화된 정보에 따라 y라는 결과를 얻어냅니다. 하지만 결과 y와 x를 이용해 x1에 피드백 자극을 준다면 y는 좀더 나은 추론 결과를 보여줄 것입니다.
Look and Think Twice 메커니즘이란 일반적인 feed forward network에 feedback 레이어를 추가한 신경망(extra feedback network)을 의미합니다. 인간 시각 피질을 좀 더 자세히 모사한 모델이라고 할 수 있습니다. 그렇다면, Look and Think Twice 메커니즘(feedback network)을 어떻게 구현하느냐에 따라 알고리즘의 성능이 판가름 날 것이라고 생각해 볼 수 있을 것 같습니다.
DetectoRS는 임의의 이미지 $x_0$를 input으로 받아 feature map을 추론하는 네트워크입니다. 주로 object detection, instance segmentation 등의 computer vision 문제를 해결하는데 활용될 수 있습니다.
본 논문에서는 Look and Think Twice 메커니즘(feedback network)를 구현함에 있어서 Recursive Feature Pyramid를 소개합니다. 기존의 Feature Pyramid Network(FPN) 구조를 변경한 것입니다. 아래에서 자세히 소개합니다.
Recursive Feature Pyramid의 개요도 기존 FPN에서 검정색 실선 화살표로 표시된 extra feedback connection이 추가된 것이 특징이다.
backbone network로는 feedback connection을 포함하도록 변형된 ResNet을 사용합니다. 더불어 multi-scale feature를 얻기 위해 **Switchable Atrous Convolution(SAC)**을 소개하는데 Bottom-up backbone인 ResNet을 구성하는 3x3 Convolution을 대체합니다.
그림이 좀 이상한듯 하지만, 어떤 피쳐를 두가지 스케일로 보고 어떤 스케일로 본 피쳐가 더 좋은지 선택하는 switch function에 대해 소개합니다.