본 글은 [논문] ExpansionNet-v2를 바탕으로 작성하였음을 명시합니다.
▶️ Image Captioning
Image captioning은 입력 데이터 Image X0에 대하여 인간의 개입 없이 Image X0을 묘사하는 sentence 혹은 text를 출력하는 모델을 의미합니다. 또한, Image를 이해하는 기술 ( → visual understanding )과 text를 이해하는 기술 ( → language understanding )이 필요한 multimodal task입니다.
이전 연구들에는 Image Captioning 모델로 Encoder-Decoder 기반 모델을 사용했습니다.
- Encoder : Image X0로부터 visual feature를 추출합니다.
- Decoder : Image X0를 가장 잘 묘사하는 sentence 혹은 text를 출력합니다.
본 글에서는 Expansion mechanism을 적용한 ExpansionNet-v2에 대해 다루고자 합니다.
▶️ Expansion mechansim
기존의 모델들은 input sequence(입력 시퀀스)의 길이에 제약을 받고, 이로 인해 더 복잡하고 다양한 이미지를 설명하는 데 어려움이 존재합니다. 이에 반해 Expansion mechansim은 input seqence의 길이에 제한을 받지 않습니다.
- Expansion mechansim은 input sequence의 내용을 더 많은 요소 또는 임의의 개수의 요소로 분배하고 처리한 후( → forward expansion ), 이 과정을 되돌리는 backward expansion을 수행함으로써 기존의 길이로 다시 복원합니다.
Expansion mechanism에 대한 구체적인 내용은 Section 1에서 다루고자 합니다.
▶️ ExpansionNet-v2
ExpansionNet-v2는 Swin-Transformer를 기반으로 하는 Encoder-Decoder 구조로 이루어져 있습니다.
또한, ExpansionNet-v2는 Encoder, Decoder에 Expansion mechanism을 사용함으로써 input seqeunce의 길이에 제약을 받지 않는다는 특성을 보유하고 있습니다.
ExpansionNet-v2에 대한 구체적인 내용은 Section 2, Section 3에서 다루고자 합니다.
▶️ Contents
1️⃣ Expansion mechanism의 구성 요소인 Static Expansion과 Dynamic Expansion에 대해서 수식과 함께 살펴 보겠습니다.
2️⃣ ExpansionNet-v2의 모델 구성(architecture)에 대해 살펴 보겠습니다.
1. Expansion Mechanism
Expansion mechanism은 크게 두 단계로 구성됩니다.
1️⃣Forward expansion
2️⃣Backward expansion
1.1 Forward Expansion
Forward expansion은 임의의 요소를 갖는 expanded sequence를 생성합니다. Expanded sequence Ffwi,i∈{1,2}를 계산하는 과정을 수식과 함께 살펴보겠습니다.
▶️ Notations
- x: input data
- QE: Expansion Query
- BE: Expansion Bias
- NE: expansion sequence의 크기
1️⃣ Length Transformation Matrix M∈RNE×NE를 정의합니다.
M=QEKT√dm
- QE∈RNE = Expansion query
- K∈RNE = Linear projections of input ( → K=wTx+b)
Length Transformation Matrix M은 K와 expansion query QE간의 dot-product similarity로 정의가 됩니다. QE에 대한 자세한 식은 Section 1.3에서 살펴보겠습니다.
2️⃣ Rfwi∈RNE×NE을 계산합니다.
Rfwi=Ψ(ReLU((−1)iM),ϵ),i∈{1,2}
Ψ(X,ϵ)ij=xij∑N2z=1xiz+ϵ
- ϵ∈R+/{0}: row-wise normalization function
식 (2)를 확인하면, M의 부호만 다르게 함으로써 2번 반복합니다. 이는 행렬이 오직 0으로만 구성될 가능성을 줄이기 위해서 사용합니다.
3️⃣ Expanded Sequences Ffwi∈RNE
Ffwi=RfwiVi+BEi∈{1,2}
- Vi∈RNEi∈{1,2} = Linear projections of input
- BE∈RNE = Expansion Bias
1️⃣ ~ 3️⃣ 과정을 통해 입력 시퀀스를 크기가 NE인 Expanded Sequences로 변환할 수 있습니다.
1.2 Backward Expansion
Backward Expansion은 크기가 NE인 expanded seqence Ffwi를 기존 input sequence의 길이로 복원하는 과정입니다.
1️⃣Length Transformation Matrix M를 transpose합니다.
MT=(QEKT√dm)T
2️⃣ Equation (2)와 같이 MT를 이용하여 Rbwi∈RNE×NE를 계산합니다.
Rbwi=Ψ(ReLU((−1)iMT),ϵ),i∈{1,2}
3️⃣ 행렬 Rbwi와 Expanded sequence Ffwi를 곱합니다.
Bbwi=RbwiFfwi,i∈{1,2}
- Bbwi∈RNE
4️⃣Sigmoid function을 사용해 Bbw1과 Bbw2를 합 해 줍니다.
out=σ(S)⊙Bbw1+(1−σ(S))⊙Bbw2
- S∈RL : a linear projection of the input (Selector)
- L = input seqeunce의 길이
식 (7)을 통해 최종적으로 expanded sequence Ffwi∈RNE는 크기가 input sequence의 원래 길이 L인 sequence로 복원됩니다.
앞서 살펴본 Forward Expasion과 Backward Expansion 작동 과정을 바탕으로, ExpansionNet-v2는 두 가지 방법론 Static Expansion과 Dynamic Expansion을 정의합니다.
1.3 Static and Dynamic Expansion

▶️Learnable Parameter
모델 학습 파라미터는 EQ,EB∈RNE×dm으로 정의하겠습니다.
▶️ Static Expansion
Static Expansion는 forward expansion에서 사용되는 query expansion QE과 Bias expansion BE에 대해서는 식 (8)과 같이 정의합니다.
QE=EQ,BE=EB
즉, 식 (1) Length Transformation Matrix를 M=QEKT√dm=EQKT√dm으로 계산하는 것입니다.
또한, Static Expansion는 input seqence L 길이에 상관없이 expanded sequence의 길이는 NE로 지정합니다.
[Figure 1]의 Static Expansion은 forward expansion 과정을 통해 NE=5인 expanded seqence를 생성해 낸 것을 볼 수 있습니다.
▶️ Dynamic Expansion
Dynamic Expansion은 Static Expansion과는 다르게 expanded seqnece의 길이를 NE⋅L로 지정합니다. 또한, QE와 BE는 식 (9)와 같이 정의합니다.
QE=(CTHE)T+(ETQIE)T,BE=(CTHE)T+(ETBIE)T
- C∈RL×dm : a linear projecion of the input
- HE∈RL×(L⋅NE)
HE=[10⋯001⋯0⋮⋮⋱⋮00⋯1],1,0∈R1×NE
- IE∈RNE×(L⋅NE) : the column-wise concatenation of $L$ identity matrices of size NE×NE
IE=[ILIL⋯,IL],IL∈RNE×NE
식 (9)에서 QE와 QB는 learable parameter EQ,EB와 input sequence s1,s2,s3의 broadsum operation을 이용하여 계산됩니다.
[Figure 1]에서 Dynamic sequence는 L=3, NE=3으로 L⋅NE=9를 갖는 expanded sequence를 생성해 내는 것을 볼 수 있습니다.
또한, Static Expansion에서 식 (4), 식 (7)에서와 같이 행렬 곱을 하는 것 대신에 Dynamic expansion에서는 maksed 행렬 곱을 하는 것을 알 수 있습니다. 이는 특정 위치의 값을 무시하기 위해 사용되는 기법으로 Dynamic expansion에서는 미래정보를 마스킹하는 것입니다.
2. ExpansionNet-v2
ExpnansionNet-v2의 모델 구조는 [Figure 2]와 같습니다.

ExpansionNet-v2는 Swin-Transformer를 기반으로 Encoder-Decoder architecture를 따릅니다. Swin Transformer은 [Swin Transformer: Hierarchical Vision Transformer using Shifted Windows]을 참고하시기를 바랍니다.
1️⃣Swin-Transformer
- Input: image A
X0=Swin-Transf(A)
- Output: visual feature의 초기값 집합 ( → X0={x01,x02,⋯,x0N},x0i∈Rdm)
2️⃣ Encoder Nenc: Static Expansion → FeedForward blocks
Swin-Transformer의 output 값은 Encoder Layer Nenc의 입력값으로 사용됩니다. Encoder Layer의 모델 구조는 Static Expansion과 Feedfowrad blocks으로 구성됩니다. 또한, 성능 향상을 위해 skip connection과 pre-layer normalization도 이용합니다.
- Input: output of Swin-Transformer X
En=Xn−1+StaticExpn(NormSEn(Xn−1))
Xn=En+FFn(NormFFn(En))
- Output: XNec
3️⃣Decoder Ndec: Dynamic Expansion → Cross-Attention → Feedforward blocks
Decoder layer의 입력값은 각 image에 대해 묘사하는 문장들 (ground truth) 값입니다. Decoder layer의 구조는 Dynamic expansion과 Cross-Attention, FeedForward blocks로 구성됩니다. 마찬가지로, 성능 향상을 위해 skip connection과 normalization도 이용했습니다.
- Input: Y0={y01,y02,⋯,y0M},y0i∈Rdm
Bn=Yn−1+DynamicExpn(NormDEn(Yn−1))
Wn=Bn+Attention(NormCAn(Bn),XNenc)
Yn=Wn+FFn(NormFFn(Wn))
- Output: Ydec
2.1 Training
ExpanionNet-v2는 모델 훈련을 크게 2단계로 이루어집니다.
먼저, Cross-entropy loss를 사용하여 모델을 사전 훈련한 후, 사전 훈련된 모델을 바탕으로 CIDEr-D 점수를 최적화하고자 강화학습을 합니다.
1️⃣ Pre-trained model → Cross Entropy loss
모델은 Cross-Entropy loss LXE를 사용하여 사전 훈련합니다.
LXE(θ)=−T∑tlog(pθ(y∗t|y∗1:t−1,I))
pθ(y∗t|y∗1:t−1,I)는 특정 시점 t에서 이미지 I와 이전 단어 y∗t−1가 주어졌을 떄 모델이 정답 단어 y∗t에 할당하는 확률을 의미합니다.
2️⃣ Optimization → CIDEr-D score
CIDEr 점수는 SCST(Self-Critical Sequence Training)를 사용하여 최적화되며, 이는 negative expected reward LR(θ)=−Ey1:T,pθ[r(y1:T)]를 최소화하는 방식으로 진행됩니다.
∇θLR(θ)≈−(r(ys1:T)−b)∇θlogpθ(ys1:T)
- CIDEr-D는 image captioning에서 생성된 문장이 정답 문장과 얼마나 유사한 지 평가하는 지표입니다.
- SCST(Self-Critical Sequence Training)는 강화학습을 활용하여 시퀀스 생성 모델을 직접 평가 지표(CIDEr-D)에 맞게 최적화는 기법입니다.
3. Result
ExpansionNet-v2는 기존 image captioning 모델들은 Attention mechanism을 통해 seqeunce modeling을 개선했지만, 이 논문에서는 Expansion mechanism이라는 새로운 방법을 통해 sequence length의 제약을 극복하고 성능을 향상시켰다는 점에서 의의가 있습니다.
Expansion mechanism은 크게 Forward expansion과 Backward expansion으로 구성되어 있으며, ExpansionNet-v2는 expansion mechanism을 활용하여 Static expansion과 Dynamic expansion을 정의했습니다. Static Expansion은 Encoder layer에 활용되고 Dynamic Expansion은 Decoder layer에 활용됩니다.
ExpansionNet-v2의 훈련 전략은 모델의 성능을 유지하면서도 훈련 비용을 절감하는 데 기여하며, 특히 계산 자원이 제한된 환경에서 Image captioning 연구를 진행하는 데 유용합니다.
'Generative Model' 카테고리의 다른 글
CIDEr Score (0) | 2025.03.17 |
---|