AI VIDEO BRIEFING

Show, Attend and Tell 논문 리뷰: 이미지 캡셔닝 어텐션과 소프트·하드 방식 차이

이미지를 문장으로 옮기는 캡셔닝 모델에 사람의 시선처럼 움직이는 어텐션을 붙인 2015년 논문을, 국내 논문 리뷰 세미나 발표를 토대로 소프트·하드 두 방식의 차이와 어텐션 시각화가 주는 설명력까지 차근차근 정리했다.

사진을 보고 문장을 짓는 모델, 그리고 '어디를 봤는지' 보여주는 어텐션 영상 대표 이미지

핵심 메시지

  • 이미지 캡셔닝은 사진 속 사물과 사물 사이의 관계까지 자연어 문장으로 풀어내는 과제이며, 이 논문은 여기에 어텐션을 도입했다.
  • 사람이 그림을 볼 때 정지된 한 장으로 받아들이지 않고 눈동자를 옮겨 두드러진 부분을 훑는다는 점에서 착안해, 모델도 단어를 뱉을 때마다 이미지의 다른 곳을 보게 만들었다.
  • 합성곱 신경망이 이미지의 부분별 특징 벡터를 뽑고, LSTM 디코더가 그 중 어디에 얼마나 집중할지 정한 뒤 한 단어씩 문장을 완성한다.
  • 어텐션 방식은 두 가지다. 확률적으로 한 곳을 골라 뽑는 하드 어텐션은 몬테카를로 샘플링으로 학습하고, 여러 곳의 기대값을 쓰는 소프트 어텐션은 미분이 가능해 역전파로 바로 학습된다.
  • 모델이 단어마다 본 위치를 그림 위에 겹쳐 보여줄 수 있어, 잘 맞힌 이유뿐 아니라 틀린 이유까지 눈으로 설명된다는 점이 이 논문의 큰 매력이다.

쉽게 이해하기

이 발표는 2015년에 나온 이미지 캡셔닝 논문을 다시 읽고 정리한 세미나 기록이다. 발표자는 처음엔 오래된 논문인 줄 모르고 읽다가 중간에 알아챘다고 말할 만큼, 지금 기준으로는 어려운 대목이 거의 없는 논문이라고 소개한다. 대신 '옛날에는 이렇게 풀었구나' 하는 관점에서 보면 얻을 것이 많다는 것이 발표의 출발점이다.

과제 자체는 단순하게 들린다. 사진 한 장을 넣으면 그 안에 무엇이 있고 그것들이 어떤 관계인지를 문장으로 내놓는 것이다. 사람은 0.1초 만에 두드러진 부분을 잡아내고 관계까지 짐작하지만, 기계에게는 오래 어려운 문제였다. 합성곱 신경망과 순환 신경망, 그리고 큰 데이터셋이 갖춰지기 시작한 시점에서야 이미지를 벡터로 바꾸고 그 표현을 문장으로 옮기는 구조가 가능해졌다.

구조는 인코더와 디코더로 나뉜다. 인코더는 합성곱 신경망으로, 이미지 전체를 하나의 벡터로 뭉개는 대신 이미지의 여러 부분에 대응하는 여러 개의 특징 벡터를 만든다. 디코더인 LSTM은 이전 단계의 은닉 상태와 직전에 만든 단어, 그리고 '지금 이미지의 어디를 보는가'를 담은 문맥 벡터를 받아 다음 단어를 내놓는다. 이 문맥 벡터를 만드는 함수가 곧 어텐션이다.

어텐션에는 두 갈래가 있다. 하드 어텐션은 매 시점 어느 위치를 볼지 하나 고르는 확률 변수를 두고, 그 선택을 다항 분포로 본다. 목적함수는 로그 가능도의 하한을 최대화하는 형태인데, 모든 경우를 다 계산하기에는 비용이 커서 몬테카를로 샘플링으로 근사한다. 대신 분산이 커지므로 이전 가능도 값을 지수 이동평균으로 누적해 기준선으로 쓰고, 선택 분포의 엔트로피 항까지 더해 흔들림을 줄인다. 발표자는 이 과정이 강화학습과 비슷한 결이라고 짚는다.

소프트 어텐션은 훨씬 간단하다. 매 시점 위치를 뽑는 대신 문맥 벡터의 기대값을 바로 쓴다. 그러면 모델 전체가 매끄럽게 이어져 미분이 가능해지고, 평범한 역전파로 끝에서 끝까지 학습할 수 있다. 각 위치의 가중치는 소프트맥스로 정규화되어 '이 단어를 만들 때 이 부분을 얼마나 참고했는가'를 그대로 나타낸다.

실험은 Flickr8k, Flickr30k, MS COCO 세 데이터셋에서 이뤄졌고, 기계 번역에서 쓰던 BLEU와 METEOR로 성능을 쟀다. 이미지 특징은 VGG 계열 신경망에서 뽑았고, 문장 길이가 제각각이라 학습 시간이 가장 긴 문장에 끌려가는 문제는 길이별로 묶어 미니배치를 만드는 방식으로 해결해 가장 큰 데이터셋에서도 사흘 정도로 줄였다. 결과 표에서 소프트·하드 어텐션 두 줄이 당시 최고 성능을 대부분 가져갔다.

주요 인사이트

  • 어텐션의 가치는 성능 숫자보다 설명 가능성에 있다. 단어를 하나 만들 때마다 이미지 위에 밝게 표시된 영역을 겹쳐 보면, 모델이 왜 그 단어를 골랐는지 사람이 직관적으로 납득할 수 있다.
  • 틀린 경우가 오히려 더 유용하다. 실패 사례에서 모델이 본 지점을 확인하면, 엉뚱한 물체의 끄트머리 무늬를 보고 다른 사물로 착각한 식의 오류 과정이 그대로 드러난다.
  • 당시 다른 캡셔닝 시스템들은 물체 검출 결과를 재료로 문장을 만들었지만, 이 방식은 검출된 물체 목록에 의존하지 않아 물체가 아닌 배경이나 상태까지 문장에 담을 수 있었다.
  • 소프트와 하드는 같은 캡션을 내놓기도 한다. 발표 중 질의응답에서도 두 방식이 동일한 문장을 만들되 주목한 위치의 분포만 다르게 나타나는 예가 확인됐다.
  • 복잡한 학습 기법이 붙은 이유는 대부분 분산을 줄이기 위해서다. 샘플링으로 근사하는 순간 기울기가 요동치므로, 이동평균 기준선과 엔트로피 항 같은 장치가 따라붙는다.

자주 묻는 질문

소프트 어텐션과 하드 어텐션은 무엇이 다른가요?

하드 어텐션은 매 시점 이미지의 한 위치를 확률적으로 골라 그 부분만 보는 방식이라 몬테카를로 샘플링으로 기울기를 근사해야 합니다. 소프트 어텐션은 위치를 고르는 대신 여러 위치의 문맥 벡터 기대값을 사용하므로 미분이 가능해 일반적인 역전파로 학습됩니다.

이 모델은 어떤 데이터와 지표로 평가했나요?

Flickr8k, Flickr30k, MS COCO 세 데이터셋을 사용했고, 기계 번역에서 흔히 쓰이는 BLEU와 METEOR로 캡션 품질을 측정했습니다. 이미지를 문장으로 옮기는 일이 번역과 비슷한 성격이라 같은 지표를 가져다 썼습니다.

어텐션을 시각화하면 무엇을 알 수 있나요?

각 단어를 생성한 시점에 모델이 이미지의 어느 부분에 가중치를 뒀는지 그림 위에 표시할 수 있습니다. 맞힌 문장에서는 사람이 볼 법한 곳을 보고 있고, 틀린 문장에서도 어떤 부분을 잘못 봤길래 그런 단어가 나왔는지 확인할 수 있습니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식