[딥러닝 용어 정리]딥러닝 모델 경량화, 학생모델, ViT, Transformer, GPT, BERT
모델 경량화
가중치 개수가 많은 교사 모델의 출력과,
가중치 개수가 적은 학생 모델의 출력이 비슷해지도록 학습하는 것을 말합니다.
인공 신경망이 비슷한 성능을 갖되, 더 적은 가중치를 갖도록 하는 기법을 의미합니다.
지식증류 알고리즘
가중치가 많은 교사 모델을 이용해 가중치가 적은 학생 모델을 학습하는 알고리즘입니다.
1. 먼저 교사 모델과 학생 모델은 같은 입력값을 갖게 됩니다.
2. 이때 두 모델은 서로 다른 예측값을 출력합니다. ( 예측값의 차이를 '소프트라벨'이라고 합니다. )
3. 정답 데이터와 학생 모델의 예측값의 차이는 '하드 라벨'이라고 부릅니다.
하드 라벨은 학생모델의 학습이 올바른 방향으로 갈 수 있도록 해줍니다.
모델 경량화
모델 경량화와 GAN을 이용하면 데이터 없이도 학생 모델을 학습할 수 있습니다.
데이터 없이 학습할 때는 생성자보다 학생 모델을 더 많이 학습합니다.
소프트라벨과 하드라벨
학생 모델과 교사 모델의 출력의 차를 소프트 라벨이라고 합니다.
학생 모델과 정답의 차이는 하드 라벨이라고 합니다.
Transformer
RNN 계열의 알고리즘 없이, 순수하게 어텐션만으로 구성된 신경망 모델입니다.
트랜스포머는 RNN 계열 알고리즘과 다르게 인코더에서 모든 단어를 동시에 고려합니다.
어텐션 메커니즘은 인코더에서 GRU층의 은닉상태를 사용했기 때문에 모든 단어를 동시에 처리하진 못했습니다.
트랜스포머는 입력에서 순서 정보가 없습니다.
[트랜스포머 인코더]
멀티헤드 셀프 어텐션은 어텐션 메커니즘의 일종입니다.
셀프 어텐션은 자기 자신에 대해 어텐션 메커니즘을 수행하는 기법입니다.
멀티헤드 셀프 어텐션은 어텐션 메커니즘을 계산할 때,
하나의 벡터로 여러 특징을 추출할 수 있게 하는 알고리즘입니다.
즉, 한 번에 여러 개의 특징을 추출할 수 있게 입력 벡터를 나누어 계산하는 알고리즘 입니다.
셀프 어텐션은 한 번에 하나의 특징을 추출합니다.
입력 텐서를 MLP층을 이용해 쿼리, 키, 밸류를 계산합니다.
쿼리는 디코더의 현재 입력, 키와 밸류는 이노더의 모든 시점의 은닉상태 입니다.
트랜스포머는 쿼리, 키, 밸류 모두 인코더의 모든 입력 단어들이 됩니다.
쿼리, 키, 밸류를 계산했다면 다음은 각 벡터들을 균일하게 나누게 됩니다.
나누어진 벡터의 일부분을 헤드라고 부르며, 헤드를 이용해 어텐션을 계산합니다.
여러 헤드로 나누면 한 번에 여러 특징을 추출할 수 있게 됩니다.
쿼리와 키를 내적한 뒤, 소프트맥스 함수를 이용해 중요도를 구하고 밸류에 곱해주면 됩니다.
각 헤드의 어텐션 계산값을 하나로 합치면 멀티헤드 셀프 어텐션의 출력을 얻을 수 있습니다.
[트랜스포머 디코더]
트랜스포머의 디코더는 어텐션을 두 번 계산합니다.
먼저 디코더 입력의 셀프 어텐션을 계산하고, 인코더 출력과 디코더 입력의 어텐션을 계산합니다.
먼저 디코더 입력의 셀프 어텐션을 구해야 합니다.
하나의 시점에서 앞으로 오게 될 단어를 미리 알 수는 없습니다.
따라서 현재 시점 이후의 시점은 크기가 아주 큰 음의 값을 넣어주는 것으로 소프트 맥스를 계산했을 때 값이 0에 가깝게 나오도록 해서 미래의 단어는 고려하지 않도록 합니다.
마지막 중요도에서 까맣게 칠해진 부분이 음의 실수를 이용해 영향을 없애는 마스킹입니다.
디코더의 셀프 어텐션 계산이 끝나면 다음은 인코더의 출력과 디코더의 어텐션을 계산합니다.
이 때의 결과를 MLP층의 입력으로 넣어 디코더의 출력을 계산합니다.
GPT
GPT는 Generative Pre-trained Transformer의 약어입니다.
트랜스포머를 사전 학습시키기 위한 알고리즘입니다.
GPT는 두 단계를 통해 트랜스포머를 학습합니다.
각 단어들의 관계를 학습하는 사전 훈련 단계와,
입력 데이터를 이용해 정답을 예측하도록 학습하는 미세조정 단계입니다.
GPT는 디코더만을 사용하는 신경망 구조를 갖습니다.
fet-shot learning(매우 적은 양의 데이터로도 학습하는 방법)을 합니다
BERT
BERT는 MLM(Masked Language Model)이라는 전처리 기법을 사용합니다.
MLM은 한 문장의 15%에 해당하는 단어에 마스크를 씌웁니다.
단어 토큰의 일부분에 특정한 처리를 하기 위해 토큰에 표시를 남기는 것을 의미합니다.
BERT의 다음 문장 예측에서는 입력 문장에 대해 다음에 올 문장이 올바른가를 학습합니다.
사전에 데이터에 무작위성을 추가하는 것으로 매 시점 문장 전체를 이용해 추론할 수 있습니다.
BERT는 Seq2Seq의 인코더만을 사용합니다.
또한 매 시점의 어텐션을 계산할 때 모든 시점의 단어를 고려합니다.
ViT
Vision Transformer의 약자로 최초로 트랜스포머를 이미지에서 활용한 모델입니다.
이미지의 가로 세로를 일정 비율로 구역을 나눠 이미지 패치로 나눕니다.
그 다음, 각 이미지를 패치를 평탄화해 2차원 이미지를 1차원 벡터로 변환합니다.
평탄화 한 이미지는 MLP 모델의 입력으로 들어갑니다.
MLP층을 통해 임베딩 정보가 부여된 이미지 패치들은 트랜스포머 인코더의 입력으로 사용됩니다.
트랜스포머 인코더의 출력은 최종적으로 분류기의 입력으로 들어가 모델의 예측값을 출력합니다.
'AI' 카테고리의 다른 글
[용어정리] 토큰화, 어휘, BEP (0) | 2024.01.31 |
---|---|
[용어정리] 자연어 처리 (0) | 2024.01.29 |
[용어정리]SRGAN 모델 (0) | 2024.01.25 |
[용어 정리] GAN 생성 모델 (1) | 2024.01.24 |
[용어정리] 캡처 텍스트 인식 CRNN+GRU (0) | 2024.01.23 |