Neural Image Caption 이론¶
1. Image Caption Generation?¶
- 이미지를 설명하는 문장을 생성하는 기술분야
- 대표적인 모델로는 Neural Image Caption(NIC)가 있다.
- CNN 네트워크를 이용해 이미지의 특징을 추출한 뒤 RNN을 거쳐 문장을 생성
- 이미지를 입력으로 받아 이미지를 설명하는 문장을 생성
- 이미지 캡션 생성은 "이미지를 번역"하는 문제로 보기
- 입력 : 이미지 I, 출력 : 목표 문장 S
- 따라서 가능도 P를 최대화하는 문제로 정의 가능 : 어떤 문장이 해당 이미지를 가장 잘 설명하는가?
2. 이미지 캡션 생성과 기계 번역의 공통점¶
- 기계번역에서는 P(T|S)를 최대화한다.
- 소스 문장을 대표하는 하나의 문맥 벡터를 이용
- 이미지 캡션 생성 또한 P(S|I)를 최대화하는 방향으로 문제를 해결한다.
- 단, 기계 번역 작업에서의 인코더를 RNN기반 인코더가 아닌, CNN으로 대체하여 이미지 캡션을 생성할 수 있다
3. RNN 자세히 보기¶
- 입력(input) : 각각의 입력 단어(x)
- 히든 상태(hidden state) : h
- 출력(output) : y
입력(input)으로 '노트북(x1)', '빅(x2)', '세일(x3)'이 들어왔다고 가정할 때
- 1000차원의 0번째 히든 상태와 1000차원의 첫번째 입력(input) '노트북(x1)'이 RNN에 투입
- RNN에서 히든 상태 갱신 (이하 1번째 히든 상태, 1000차원)
- 1번째 히든 상태와 1000차원의 두번째 입력(input) '빅(x2)'이 RNN에 투입
- RNN에서 히든 상태 갱신 (이하 2번째 히든 상태, 1000차원)
- 2번째 히든 상태와 1000차원 세번째 입력(input) '세일(x3)'이 RNN에 투입
- RNN에서 히든 상태 갱신 (이하 3번째 히든 상태, 1000차원)
- 더 이상의 input이 없으므로 eos 투입
- 3번째 히든 상태를 FC에 투입
- FC에서 '스팸'출력(output)(y3)
이론적으로는 RNN을 이용하여 긴 길이의 순차적인 데이터를 효과적으로 처리할 수 있으나
실제로는 토큰(token)사이의 거리가 먼 경우, 연속적인 정보가 잘 전달되지 않을 수 있음
4. LSTM(Long Short-Term Memory) 아키텍처¶
4.1. LSTM 핵심 아이디어 : 두 개의 상태 정보¶
- LSTM은 RNN과 다르게 두 개의 상태 정보를 저장 후 처리합니다.
- 장기기억 : Cell State(c)
- 단기기억 : Hidden State(h)
4.2. LSTM 핵심 아이디어 : 게이트(Gates)¶
- Forget Gate : 어떠한 정보를 잊게 만들지 결정하는 레이어 : 오래된 정보 중 필요 없는 정보는 잊게 만든다
- Input Gate : 새로운 정보를 장기기억(Cell State)에 반영하는 역할을 수행 : 새롭게 특정한 정보를 기억하도록 만든다.
- 장기 기억은 Forget Gate와 Input Gate를 이용하여 업데이트 (어떤 정보를 잊고, 어떤 정보를 기억하게 만들 것인가)
- Output Gate : 장기 기억과 현재의 데이터를 이용해 단기 기억(Hidden State)을 갱신
4.3. 생성 결과¶
- BLUE Score : NIC는 사람과 필적할 정도로 매우 높은 성능을 내고 있음
- Human Evalueation : 사람이 1점(worst)에서 4점(best)까지의 점수로 평가한 결과, 실제 정답(GT)에 비해 점수가 낮게 나오고 있음. 그럼에도 이전까지의 모델보다 성능이 뛰어남.
5.2. Seq2Seq 한계의 극복¶
- Seq2Seq 모델에 어텐션(Attention) 매커니즘을 사용
- 어텐션(Attention) : 어떤 정보가 중요한지를 "가중치"를 통해 표시하여 표현
- 디코더는 인코더의 모든 출력(outputs)을 참고
- 후속연구 "Neural Image Caption Generation with Visual Attention 참고
- Neural Image Caption(NIC) 네트워크에 어텐션(attention) 기법을 적용
- RNN을 사용할 때 이미지 전체에 대한 어텐션(attention) 정보를 활용
- 각 단어 출력 시 이미지의 어느 부위를 참고했는지를 출력할 수 있음
- Neural Image Caption(NIC) 네트워크에 어텐션(attention) 기법을 적용
'전문지식 함양 > TIL' 카테고리의 다른 글
[프로그래머스 겨울방학 인공지능 과정] Transformer 이론 기초 (0) | 2022.02.22 |
---|---|
[프로그래머스 겨울방학 인공지능 과정] Transformer 이론 기초 (0) | 2022.02.21 |
[프로그래머스 겨울방학 인공지능 과정] Sequence to Sequence Learning with Neural Networks - 이론 (0) | 2022.02.20 |
[프로그래머스 겨울방학 인공지능 과정] CNN을 활용한 풍경 이미지 분류 실습1 (0) | 2022.02.17 |
[프로그래머스 겨울방학 인공지능 과정] 자연어 처리 이론 기초1 (0) | 2022.02.14 |