Pre-training ( 사전 학습 )
- 방대한 데이터를 사용하여 모델을 사전 학습 시키는 것
- Pre-trained 모델을 비슷한 task에 대해 새로운 모델을 만들 때 사용하면 학습 시간을 상당히 줄일 수 있음
- CV, NLP 등 다양한 분야에서 사용되지만, 주로 NLP에서 단어의 의미나 문장의 구조 등을 이해하기 위해 사용
- Unsupervised learning, Supervised learning 모두 가능 (주로 unsupervised learning 방식으로 이루어짐)
Transfer Learning ( 전이 학습 )
- Pre-trained model을 사용하여 새로운 문제를 해결하는 기술
- 비교적 적은 양의 데이터로도 빠르게 정확한 모델을 만들 수 있으며, 컴퓨팅 리소스와 시간을 절약할 수 있음
Fine-tuning ( 미세 조정 )
- Transfer Learning의 일종으로, 미리 학습된 모델의 일부 또는 전체를 새로운 문제에 맞게 조정하는 과정
- 기존에 학습된 layer에 새로운 데이터를 추가로 학습시켜, 파라미터를 업데이트
주의 사항
1. 완전히 랜덤한 초기 파라미터 사용
2. 가장 아래 레이러의 파라미터 학습
시 overfitting이 발생하거나 전체 파라미터가 망가질 수 있음
fine-tuning은 크게 다음과 같은 4가지 경우가 있다.
새로 훈련할 데이터가 적지만, 기존 학습 데이터와 유사할 경우
- 데이터의 양이 적어, 전체 네트워크를 fine-tuning 하는 것은 overfitting의 위험 존재
- 새로 학습할 데이터가 기존 학습 데이터와 유사하기 때문에 FC layer에 대해서만 Fine-tuning을 진행
새로 훈련할 데이터가 적으며, 기존 학습 데이터와 다른 경우
- fine tuning하기에는 학습효과가 부족하고,적은 데이터셋에 의해 overfitting 발생 (제일 문제인 경우)
- 데이터의 양이 적고, 데이터가 서로 다르기 때문에, FC layer만 학습하는 것은 좋지 않음
- 적당한 양의 layer만 Fine tuning을 진행 ( 어려운 문제 ,, )
- 일반적으로 네트워크 초기 부분의 특정 layer를 학습시키는 것이 좋음
초기 부분의 특정 layer를 학습 시키는 이유
1. 보통 초기 layer는 이미지 처리에서는 low-level feature를,
자연어 처리에서는 단어의 의미와 같은 기본적인 정보를 추출하는데,
새로운 데이터에서도 그 역할이 중요하기 때문!
2. overfitting을 방지할 수 있음
Pre-trained 모델에서 이미 학습된 가중치를 사용하면서 초기 레이어를 fine-tuning 하는 것은,
전체 모델을 fine-tuning하는 것보다 일반화 능력이 높은 모델을 만들기 위해 필요한 파라미터의 수가 줄어들기 때문!?!
새로 훈련할 데이터가 많으며, 기존 학습 데이터와 유사할 경우
overfitting의 위험이 낮으므로, 아래와 같은 방법을 적용할 수 있음
- 전체 layer를 fine-tuning
- 일부 layer만 fine-tuning ( 데이터 셋이 유사하기 때문에, 학습 시간을 감안 )
새로 훈련할 데이터가 많지만, 기존 학습 데이터와 다른 경우
- 데이터가 많기 때문에, 아예 새로운 network를 만들 수도 있지만, transfer learning의 효율이 더 좋음
- 데이터 셋에 차이가 있으므로, 적은 Conv. layer를 Fine tuning 하면은 좋은 학습효과를 낼 수 없음
- 전체 네트워크를 fine-tuning (데이터셋이 충분하므로 overfitting 문제가 크게 발생하지 않음)
'AI' 카테고리의 다른 글
BERT (Bidirectional Encoder Representations from Transformers) (0) | 2023.05.09 |
---|---|
Transformer: Attention Is All You Need (0) | 2023.05.09 |
Optimizer (0) | 2023.05.09 |
Gradient Descent (0) | 2023.05.08 |
Dropout (0) | 2023.05.02 |