카테고리 없음

probabilistic machine learning-Transformer이후

leejeong6 2025. 4. 17. 10:35

15.5.6 Transformers for images

CNN은 이미지 데이터를 처리하는 데 가장 널리 사용되는 모델입니다

그 이유는 내재된 inductive bias를 가지고 있기 때문입니다 

 

inductive bias : 귀납적 편향
"이 모델은 세상을 이렇게 바라보는 경향이 있어"라는 선천적인 추론 방식이나 가정
머신러닝 모델은 데이터를 보고 규칙을 학습하는데, 이때 데이터만 보고는 해결할 수 없는 부분을 메꾸기 위해 모델이 세상에 대래 미리 갖고 있는 가정이 필요하며 그게 바로 inductive bias이다
CNN에서는
Locality:근처 픽셀끼리 관련 있다는 가정
Translation equivariance:어떤 패턴이 사진의 어디에 있든 같이 처리하겠다는 성질
Weight sharing:같은 필터를 전체 이미지에 적용 
Pooling:일부 위치 변화에 대해 invariance
Transformer는 이미지에 대한 어떠한 indeuctive bias도 없다. 
커널이나 pooling weight sharing도 없기 때문에 데이터를 엄청 많이 줘야만 이미지를 이해하는 것

 

Transformer도 이미지 분류 작업에서 좋은 성능을 낼 수 있음이 밝혀졌는데, 충분한 양의 데이터로 학습시킬 수 있다면 

(transformer는 이미지에 특화된 inductive bias가 부족하므로, 이를 극복하려면 데이터가 많이 필요하다)

좋은 성능을 낼 수 있다고 합니다

 

이 방법으로 ViT라는 모델이 나왔습니다

ViT는 입력 이미지를 16X16 패치 단위로 나눈 후 각 패치를 임베딩 하고 Transformer에 입력합니다

입력 앞에는 특별한 [CLASS]임베딩 x0가 추가되고 지도 학습 방식으로 훈련된다고 합니다

 

작은 데이터셋에서 학습했을 경우 ViT는 미리 학습된 CNN기반 모델인 BiT보다 성능이 낮았다고 합니다.

하지만 ImageNet-21k(1400만장 이미지)또는 JFT와 같은(3억 300만 장) 데이터로 학습시켰을 때 ViT가 BiT보다 더 나은 성능을 보인다는 걸 알게 되었습니다

 

15.5.7 Other transformer variants

Transformer에서 유래된 모델들이 존재합니다

Gshard논문은 일부 FeedForward레이어를 "Mixture of Experts"회귀 모듈로 교체함으로써 Transformer를 더 큰 규모로 확장했습니다

이 방식은 "sparse conditional computation"을 가능하게 합니다. 즉 입력마다 모델의 전체가 아니라 일부만 사용되는 것입니다

또 다른 예로는 Conformer논문은 Transformer 구조 안에 Convolutional layer를 추가해서 음성 인식 작업에서 효과적임을 보여줬습니다.

Conformer는 CNN의 로컬특징, self-attention의 글로벌 특징을 병렬로 음성->텍스트로 변환하는 장점이 있는 모델이라고 합니다

 

15.6 Efficient transformers

Transformer의 연산량은 N제곱입니다. 그래서 긴 시퀀스에는 적용하기 어렵다는 단점이 있습니다

15.6에서는 Transformer를 어떻게 효율적으로 변형했냐에 대한 섹션입니다

 

15.6.1 Fixed non-learnable localized attention patterns

Attention메커니즘을 단순하게 수정하는 방법 중 하나는 각 토큰이 정해진 고정된 지역범위 내의 토큰들만 참조하도록 제한하는 것입니다. 예를 들어, 입력 시퀀스를 k개의 블록으로 나누고 attention을 블록 내부에서만 수행한다면 N제곱에서 N제곱/k로 줄어들 것입니다. k가 클수록, 계산 효율성은 크게 향상되며 꼭 블록 형태일 필요도 없다고 합니다

다른 방법으로는 strided/dilated windows/hybrid patterns/fixed attention pattern이 있다고 합니다

 

이 부분에 대해 좀 더 자세하게 찾아보았습니다.

일단 Transformer의 attention은 N개의 토큰이 N개를 다 비교하니까 N제곱의 연산량입니다.

예를 들어 시퀀스가 N=12라면 k=3개의 블록으로 나누어 각 블록의 길이가 N/k=4로 나눈다는 것입니다.

그렇게 되면 [x1 x2 x3 x4] [x5 x6 x7 x8] [x9 x10 x11 x12]로 나뉘니까 x1은 x2,3,4만 볼 수 있고 블록 사이에서는 attention을 하지 않습니다.

 

firxed는 attention패턴이 고정되어 있음, non-learnable은 학습을 통해 바뀌는 게 아님 localized는 주변 토큰만 참조(global x)

즉 fixed(이 방식은 어떤 토큰이 누구를 바라볼지 미리 정해져 있고) non-learnable(학습을 통해 바뀌지 않고) localized(멀리 있는 토큰을 무시하고 가까운 것들만 본다)는 의미입니다 따라서 15.6.1의 이름이 이랬던 것 같습니다

 

15.6.2 Learnable sparse attention patterns

learnable:학습 가능

sparse:모든 토큰이 다른 토큰을 바라보지 않고 일부 토큰만을 참조한다는 뜻

15.6.1처럼 패턴을 미리 정의했는데, 15.6.2는 이 패턴이 학습 가능하게 정의하겠다는 뜻입니다

Hashing-based접근 방법은 모든 토큰에 hash함수를 적용하여 각 토큰을 특정 hashing-bucket에 배정하는 것입니다

예를 들어 Reformer아키텍처에서는 Locality Sensitive Hashing을 사용해서, 각 토큰을 hash 하고 그 결과에 따라 각각의 토큰이 특정한 hashing bucket에 속하게 됩니다. 이 방법의 연산은 NM^2 logM이며 여기서 M은 토큰 임베딩 차원을 의미합니다

 

Clustering-based접근 방법은 k-means클러스터링 같은 표준 클러스터링 알고리즘을 이용합니다. 이 방법을 사용한 모델은 Clustering Transformer라고 불리며 만약 k개의 크기가 동일한 클러스터를 사용한다면, attention모듈의 복잡도는 N^2/k로 줄어듭니다. 

 

이 부분도 추가로 설명하겠습니다

Hashing이라는 것은 데이터를 일정한 규칙에 따라 특정 위치에 매핑하는 방법입니다. 즉 어떤 데이터를 고정된 길이의 Key로 변환하는 과정을 말합니다. 예를 들어 apple이라는 단어를 해싱한다고 하면 해시 함수는 이 단어를 숫자로 반환합니다.

"5"라고 됐다면 apple은 숫자 5위 치에 저장되거나 참조되는 것이라고 합니다

h("apple")=5 이런 식이라고 합니다. 해싱을 사용하면 데이터를 빠르게 찾을 수 있고, 같은 해시 값을 가진 데이터는 같은 bucket에 들어가기 때문에 apple과 banna라는 두 단어가 있다면 h("apple")=5, h("banana")=7로 매핑하여 둘을 다른 위치에 저장할 수 있고 나중에 apple을 찾고 싶을 때는 5번 위치만 확인하면 되므로 매우 빠르다고 합니다

 

Reformer와 같은 모델에서 해싱을 사용해서 각 토큰을 해싱하여 특정 버킷에 학당하고 그 버킷 내에서만 attention을 계산할 수 있다고 합니다. 따라서 각 토큰이 참조할 수 있는 범위가 줄어들고, 계산을 효율적으로 할 수 있다고 합니다.

 

클러스터링은 attention전에 각 클라스터 내에서만 attention을 적용하니까 다른 클러스터는 무시하면 되는 것입니다

따라서 앞의 15.6.1과 같이 N^2/k의 연산량을 가질 수 있게 됩니다.

 

근데 이 부분이 왜 learnable인지 GPT에게 물어보니 버킷에 배분하는 방법은 학습이 가능하며 k-means는 어떻게 분배해야 가장 효율적 일지 조정할 수 있기 때문에 learnable 하다고 하는 것 같습니다

 

<15.6.1> <15.6.2>는 다른 차이점이 어떻게 self-attention의 N^2 연산량을 줄일 거냐 인데 

15.6.1은 k로 하이퍼 파라미터로 고정하여 연산량을 줄이는 것이고

15.6.2는 k를 동적으로 조정하며 연산량을 줄이는 것이라고 이해했습니다

 

15.6.3 Memory and recurrence methods

Memory module은 외부 메모리 공간을 활용하여 여러 토큰에 동시에 접근할 수 있도록 하는 방식입니다.

이 방식은 global memoty algorithm의 형태로 구현될 수 있고, 이 방법은 각 토큰이 메모리 공간에 저장된 다른 정보를 참고할 수 있는 방식이라고 합니다. 예를 들어 Transformer모델에서 각 입력이 다른 입력들에 대한 정보를 기억하면서, 그 정보를 활용해 계싼을 진행할 수 있게 하는 방식이라고 합니다.

다른 접근으로는 recurrence with local block입니다. recurrence는 local block들을 연결하여 장기적인 의존성을 학습하는 방식으로 Transformer-XL이 대표적인 예시라고 합니다. Transformer는 각 입력이 독립적으로 처리되지만, Transformer-XL은 이전 입력들의 정보를 메모리에 저장하고, 새로운 입력을 처리할 때 이 정보를 참고할 수 있도록 만들어졌다고 합니다

이 방식은 긴 시퀀스에서 발생하는 장기적 의존성 문제를 해결하도록 도움이 된다고도 합니다.

 

두 방식 모두 장기 의존성 문제를 더 잘 도와주게끔 하는 것 같습니다

 

15.6.4 Low-rank and kernel methods

self attention의 attention matrix는  softmax(QK^T) V입니다.

Q : N x D

K : N x D

V : N x D입니다 따라서 Attention Matrix는 N x N입니다. 

Linformer 모델은 여기서 D차원의 Key, Valu를 M차원으로 축소해서 연산량을 줄이자는 제안을 합니다

랜덤 가우시안 프로젝션을 통해 D차원에서 M차원으로 투영되어 Output차원이 N x M이 됩니다

이는 Johnson-Lindenstrauss Lemma의 이론이 보장해 주는데, Johnson-Lindenstrauss Lemma란 고차원에서 벡터 간의 거리나 각도를 거의 그대로 유지하면서, 더 낮은 차원으로 투영할 수 있다는 이론입니다
X가 10*1000차원일 때(10개의 벡터가 각각 1000차원) 64차원 가우시안 분포를 기반으로 한 랜덤 행렬을 만들고, 그 축들에 투영을 하면 X가 10*64차원으로 됨 
아래는 예시로 3D에서 2D로 가우시안 랜덤 분포를 통해 투영한 결과입니다
import numpy as np
import matplotlib.pyplot as plt

# 원래 데이터: 3D 공간에 있는 100개의 점
np.random.seed(42)
num_points = 100
X_3D = np.random.randn(num_points, 3)

# 3D -> 2D로 투영할 가우시안 랜덤 행렬 생성 (3x2)
P = np.random.normal(loc=0, scale=1/np.sqrt(2), size=(3, 2))

# 차원 축소: [100 x 3] @ [3 x 2] = [100 x 2]
X_2D = X_3D @ P

# 시각화
fig = plt.figure(figsize=(12, 5))

# 원래 3D 데이터
ax1 = fig.add_subplot(1, 2, 1, projection='3d')
ax1.scatter(X_3D[:, 0], X_3D[:, 1], X_3D[:, 2], c='blue', alpha=0.6)
ax1.set_title("Original 3D Data")
ax1.set_xlabel("X")
ax1.set_ylabel("Y")
ax1.set_zlabel("Z")

# 투영된 2D 데이터
ax2 = fig.add_subplot(1, 2, 2)
ax2.scatter(X_2D[:, 0], X_2D[:, 1], c='red', alpha=0.6)
ax2.set_title("Projected 2D Data (via Random Gaussian Projection)")
ax2.set_xlabel("Proj Axis 1")
ax2.set_ylabel("Proj Axis 2")
ax2.grid(True)

plt.tight_layout()
plt.show()​

 

다음은 Performer입니다

Attention(Q, K, V)≈ϕ(Q)⋅(ϕ(K) TV)으로

이렇게 하면 O(N) 연산만으로 계산할 수 있다고 합니다

kernel Trick + Random Fourier Feature를 사용하는 데, softmax커널을 근사할 수 있는 양수 random feature함수 ϕ를 사용하는 것입니다. 

 

dot-product가 시퀀스 길이가 길어질수록 계산 비용이 많이 들기 때문에, dot-product연산을 softmax kernel로 근사합니다

즉 어텐션의 softmax연산을 커널 형태로 변환해 계산합니다

이때 사용되는 softmax kernel은 가우시안 커널과 random feature map으로 근사합니다

결과적으로 , 계산비용을 줄이면서도 트랜스포머의 성능을 유지할 수 있다고 합니다

왼쪽은 기존의 Transformer이고 오른쪽은 Performer입니다

A X V를 직접 계산하지 않고 Q와 K를 각각 random feature map을 통해 변환합니다

이 변환은 Q'와 K'라는 새로운 행렬을 만듭니다

여기서 M은 random feature의 차원으로 Q와 K를 N X M으로 변환합니다

변환된 Q'와 K'를 사용해 어텐션을 근사합니다

이때 일반적인 트랜스포머와 같이 Q X  KT를 하는 게 아니라 연산 순서를 바꿔 효율성을 높입니다 - 파란색 네모

이렇게 되면 시간 복잡도는 O(NMD)로 표준 어텐션의 O(N^2D) 보다 효율적입니다

 

15.7 Language models and unsupervised representation learning

RNN과 autoregressive transformer는 언어 모델입니다

이 언어모델은 시퀀스 데이터를 생성하는 모델로, 확률 분포를 학습합니다

 

여기서 x는 단어 또는 이산토큰(discrete token)입니다

p는 이전 토큰들을 조건으로 다음 토큰의 확률을 예측합니다

 

text의 continuous vector representation으로는 ht가 있습니다

이 녀석은 문장의 앞에 등장한 단어들에 의존하므로, 문맥 정보를 포함하며 이 벡터는 contextual word embedding으로 사용되며 텍스트 분류나 seq2 seq작업에 활용됩니다

 

그리고 unsupervised 방식으로 대규모 텍스트 코퍼스에서 pre-train 할 수 있습니다

이후 지도학습 방식으로 소규모 라벨링 된 작업별 데이터셋에서 fine tuning을 하는 과정을 transfer learning이라 합니다

 

만약 언어 모델의 주 목표가 텍스트 생성이 아니라 transfer learning을 위한 표현계산이라면, non-causal 모델로 대체할 수 있습니다. 이 모델은 문장을 생성하지 않고, representation을 계산하는 데 초점을 맞추며 ht는 과거, 현재, 미래의 정보를 모두 반영해 더 많은 문맥을 고려하므로 더 나은 표현을 만들 수 있습니다

 

이런 non-casual model로는 BERT가 있습니다

 

15.7.1 ELMo

문맥 정보를 포함하기 위해서는 기존에 Bidirectional RNN이 있습니다

이는 Forward RNN과 Backward RNN을 concatenation 하여 만들어진 ht가 과거와 미래의 문맥을 모두 반영한다는 의미를 가지는 모델입니다

ELMo는 양방향 LSTM이 기반이며 핵심은 모든 LSTM층의 출력을 weighted sum 하여 단어 임베딩을 만듭니다

결과적으로 동일한 단어라도 문맥에 따라 다른 임베딩을 생성하게 됩니다

입력 문장 x1, x2,,, xT의 negative log likelihood를 최소화하도록 학습됩니다

좌측값은 왼쪽에서 오른쪽 모델이 이전 단어들을 보고 다음 단어를 예측할 확률

우측값은 오른쪽에서 왼쪽 모델이 이후 단어들을 보고 현재 단어를 예측할 확률입니다

 

세타 e는 임베딩 레이어의 공유 파라미터

세타 s는 소프트맥스 출력 레이어의 공유 파라미터

세타->, <-는 각각 방향을 나타내는 파라미터입니다

이 과정은 비지도 학습으로,대규모 텍스트 코퍼스(위키피디아)에서 수행됩니다
 

추가로 https://wikidocs.net/33930에서 참고한 내용까지 정리하겠습니다

 

이 그림에서 play라는 단어가 임베딩이 되고 있다는 가정입니다

순방향 언어 모델의 출력, 역방향 언어 모델의 출력을 concatenate 합니다

그리고 각 층의 출력값 별로 가중치를 주어 더한 뒤 스칼라 매개변수를 곱한다고 합니다

이렇게 완성된 벡터를 ELMo representation이라고 합니다. ELMo representation을 기존의 임베딩 벡터와 함께 사용할 수 있다고 합니다

기존 방법론을 사용한 임베딩 벡터를 준비했다면 ELMo표현을 임베딩벡터와 concatenate 해서 입력으로 사용하여 NLP task에 입력되는 원리입니다

 

정리하자면 ELMo는 양방향 LSTM을 사용해 문장을 두 방향으로 처리하며 결과적으로 각 단어를 문맥에 따라 동적으로 벡터로 표현합니다.(임베딩) 이를 contextualized embedding이라고 부르며 위에서 언급했던 non-causal model로 대규모 텍스트로 학습되며 fine-tuning으로 다양한 NLP작업에 활용됩니다

 

15.7.2 BERT

BERT 떴냐...

BERT는 너무 중요한 만큼 책에서도 

15.7.2.1 Masked language model task

15.7.2.2 Next sentence prediction task

15.7.2.3 Fine-tuning BERT for NLP applications 

이렇게 3개의 목차로 나뉘어 있습니다

 

먼저 BERT는 ELMo와 같은 non-causal model로 text생성이 아닌 representation을 생성하는 모델입니다.

ELMo는 양방향 LSTM을 사용하지만, BERT는 트랜스포머 인코더를 사용해 더 강력한 문맥 학습이 가능합니다

 

BERT의 학습방식은 fill-in-the-blank (=cloze task)입니다. 입력 시퀀스의 일부단어를 마스크로 대체하거나 생략합니다

모델은 마스크 된 위치의 원래 단어를 예측하는 작업을 수행합니다

 

15.7.2.1 Masked language model task

BERT의 학습은 negative log pseudo-likelihood를 최소화하도록 학습됩니다

negative log pseudo-likelihood

x:입력문장 데이터 분포 D에서 샘플링됨

m:문장의 일부 토큰을 마스크 처리하기 위해 사용

x_m:마스크 된 입력 문장

p(xi|x_m):마스크 된 문맥 x_m을 보고 원래 토큰 xi를 예측할 확률

이 과정은 비지도 학습으로, 대규모 코퍼스(위키피디아)에서 진행됩니다

 

교재의 예시에는 "Let's make some chicken! It takes great with orange sauce!"라는 원문이 있을 때

마스크 된 입력은 "Let's make [MASK] chiken! [SEP] It [MASK] great with orange sauce"입니다

여기서 [MASK]는 원래 단어를 가린 토큰 [SEP]은 두 문장을 구분하는 특수 토큰입니다

 

마스크된 위치 i에서 원래 토큰 xi를 예측할 확률은 소프트맥스를 사용해 계산됩니다

h(x)는 트랜스포머의 마지막 레이어에서 위치 i의 숨겨진 벡터입니다

동작은 트랜스포머가 마스크 된 문장 xhat을 입력받아 각 위치의 숨겨진 벡터 h(x)를 생성하면 이 벡터를 단어 사전의 임베딩 e(x)와 내적하여 단어 xi의 점수를 계산합니다.

마스크된 위치에서 원래 단어의 확률을 최대화하도록 학습됩니다

이 학습 방식을 Masked Language Model(MLM)이라고 불립니다

 

15.7.2.2 Next sentence prediction task

모델의 pre-training과정에서 사용되는 두 가지 목표 중 두 번째인 Next Sentence Prediction(NSP) 작업에 대한 내용입니다

NSP 두 문장이 주어졌을 때, 두 번째 문장이 첫 번째 문장을 실제로 이어지는 문장인지 랜덤한 문장인지 분류하는 작업입니다

입력형식은 [CLS] A1,A2,,Am [SEP] B1,B2,,Bn [SEP] 으로

CLS는 분류 작업을 위한 토큰 -> 이 위치의 출력이 NSP분류에 사용

SEP은 두 문장을 구분하는 특수 토큰

만약 문장 B가 실제로 이어지는 경우 y=1,아니라면 y=0

NSP는 BERT가 문장 간의 관계를 이해하도록 돕습니다. 이는 문장 쌍 분류 작업에 유용하며 NSP를 수행할때 입력을 3가지 임베딩으로 표현합니다

1.Token embedding ->단어 사전에서 각 토큰에 해당하는 고차원 벡터

2.segment embedding ->문장 A와 B를 구분하기 위한 임베딩 

3.positional embedding ->각 단어들의 순서

이 3가지 임베딩이 더해져 최종 입력 임베딩을 형성합니다

 

15.7.2.3 Fine-tuning BERT for NLP applications

위처럼 사전학습된 후 supervised fine-tuning을 통해 다양하게 조정됩니다

이는 transfer learning의 일종으로,사전 학습된 지식을 특정 작업에 적용합니다

a : 단일 문장 분류

-CLS 벡터를 MLP에 입력해 원하는 레이블 공간으로 매핑 ex)CLS벡터->MLP->"긍정"

 

b : 문장 쌍 분류

-textual entailment(문장 A가 B를 암시하는지 판단) 또는 텍스트 유사성

"[CLS] 문장 A [SEP] 문장 B [SEP]" 을 입력으로 함 ex)CLS 벡터 → MLP →  "암시"

 

c : 단일 문장 태깅

-각 단어에 라벨을 부여 

ex)품사 태깅

 

d : 질의 응답

-질문과 배경 텍스트를 받아 답변의 시작과 끝 위치를 예측

질문(문장 A) + 배경 텍스트(문장 B) -> 두 개의 MLP ->시작위치 s + 끝 위치 e를 예측

 

bert-torch.ipynb - Colab 에서 실습을 할 수 있습니다

 

 

15.7.3 GPT

GPT는 "Generative Pre-training Transformer" 의 약자로 transformer의 decode를 사용했습니다.

GPT는 causal모델로 미래의 토큰은 참고하지 않습니다.

이는 BERT와 다른 방식으로 그림을 보면 이런 차이가 있습니다

BERT:non-causal GPT:causal

 

 

Loss함수는 L=Lcls+λLLM​ 으로 정의되었습니다.
Lcls는 입력x에 대해 정답y를 예측

λLLM는 다음 토큰을 예측할 loss인데 λ를 곱해서 중요도를 조절한다고 합니다

 

GPT를 기반으로 GPT-2, GPT-3,CPT-4.0 이 등장했고 CHATGPT에서는 RLHF를 도입했습니다

 

15.7.3.1 Applications of GPT

GPT는 사용자가 프롬프트에 질문을 입력하면 zero-shot task transfer을 통해 질문에 답을 합니다

이때 GPT가 학습하지 못한 것에 대해서도 답을 하는데, 이를 zero-shot task transfer이라고 합니다

이는 zero-shot learning을 통해 가능한 것인데 https://youtu.be/OTwS7UaoGdg?si=As2eaUAH_-HHuKNu를 참고했습니다

 

zero shot learning은 seen data와 unseen data를 모두 올바르게 예측하는 것입니다

만약 고양이,고래,사자가 학습된 모델에게 호랑이 이미지를 주었을 때 어떻게 분류할 수 있을까요?

일반적인 classification 모델 : 고양이 or 사자 (seen data로 분류)

zero-shot learning : 호랑이 (보지 못한건데 정확히 분류)

open set recognition : unseen (보지 못한건 unseen으로 분류)

 

학습방법에 대해 보겠습니다

Zero-shot learning의 구성요소는 

image,class label,side-information입니다

side-information의 종류는 다양한데 예시로는 먼저 attributes가 있습니다

얼룩말 이미지라면 attributes는 black-stripe, tall,등이 있습니다

이는 사람이 직접 입력하거나 위키피디아와 같은 코퍼스에서 추출도 가능합니다

두 번째로 hierachy similarity measures으로

다른 클래스와 얼마나 정보가 유사한지를 나타내는 것으로

말이랑 1, 악어랑 4 이런식으로 가능합니다

세 번째로 huma gaze로 사람의 눈이 어디에 얼마나 많이 가는지를 격자로 나타내어 표현할 수 있습니다

 

이외에도 다양한 side-information이 있는데, 이미지와 레이블 간 연결고리 역할을 하게됩니다

 

attributes를 side-information으로 사용하여 학습하는 approach인 embedding-based approach를 설명하자면

각 이미지에 대한 속성은 고차원의 벡터로 표현이 되는 방식입니다

이러한 속성 덕분에 이미지가 없는 상황에서도 클래스에 대한 정보를 담는 것입니다

 

https://papers.nips.cc/paper_files/paper/2013/file/7cce53cf90577442771720a370c3c723-Paper.pdf

이 논문은 구글이 발표한 embedding-based approach에 대한 논문입니다

논문이 제안하는 모델은 이미지 모델과 텍스트 모델이 합쳐지는 형태로

AlexNet과 Skip-gram으로 pre-training하여 결합된 모델은 AlexNet의 n차원 feature vector를 Skip-gram 고유의 m차원으로 선형변환하여 같은 공간 상에 매핑합니다

본 논문에서는 4096차원의 이미지 feature vector를  500/1000차원으로 선형변환하였습니다

이런 과정을 거쳐 최종적으로 유사도를 계산하게 되며 유사도가 높게 학습됩니다

 

15.7.4 T5

T5모델은 인코더-디코더,seq2seq모델로 마스크된 토큰을 예측합니다

denoising을 목표로 하는 모델은 T5는 입력 텍스트 x에 마스크를 적용해 x'를 만들고, 누락된 부분 x''를 예측하도록 만듭니다

non-causal모델과는 다르게 입력 전체를 보고 출력 시퀀스를 생성합니다