1. Transfer Learning (전이 학습)
전이 학습(Transfer Learning)은 특정 분야에서 학습된 신경망의 일부 능력을
유사하거나 전혀 새로운 분야에서 사용되는 신경망의 학습에 이용하는 것을 의미한다.
쉽게 말해서 학습이 잘 된 pre-trained model을 가져와서, 나의 문제에 맞게 활용하는 것이다.
아래 링크에서 Tensorflow에서 제공하는 pre-trained 모델들을 확인할 수 있다.
2. Transfer Learning (전이 학습) 절차
1. pre-trained model 중에 Head model 은 제외하고 Base model만 가져온다.
- Base model : 이미지로부터 특징을 효과적으로 추출하는 부분
- Head model : fully-connected layer, 추출된 특징을 학습해서 이미지를 알맞은 카테고리로 분류하는 부분
2. 부분 학습을 수행한다.
- 부분 학습 : 이미 잘 학습된 Base Model은 학습되지 않게 하고(Frozen) Head model만 학습하게 한다.
3. Fine Tuning(파인 튜닝)
파인 튜닝은 트랜스퍼 러닝을 마친 뒤에, 조금 더 개선이 가능한지 수행하는 방법이다.
Base model의 일부를 학습가능하게 변경한 후, 추가 학습해서 성능 향상이 있는지 확인해본다.
물론 성능이 떨어질 수도 있다.
Tensorflow 공식 문서에 따르면,
파인튜닝은 pre-trained 모델을 훈련불가능으로 설정하여 head model을 훈련한 후에만 시도해야 한다.
pre-trained 모델에 무작위로 초기화된 분류기(head model)를 추가하고 모든 레이어를 공동으로 훈련하려고 하면
gradient 업데이트의 크기가 너무 커지고 pre-trained 모델은 배운 것을 잊어버리게 된다고 한다.
다음 포스트에서는 Transfer Learning 하는 방법을 코드로 알아보겠다.
https://donghyeok90.tistory.com/171
'Machine Learning > Deep Learning' 카테고리의 다른 글
Tensorflow - 콜백을 이용해 로그와 모델 저장하기 (0) | 2023.01.08 |
---|---|
Tensorflow - Transfer Learning 예제 (2) | 2023.01.03 |
파일을 Train/Test 디렉토리로 나눠서 저장하는 방법 (0) | 2023.01.02 |
Tensorflow - ImageDataGenerator를 이용한 이미지 전처리와 이미지 증강 (0) | 2023.01.01 |
Tensorflow - CNN 모델 예제 (0) | 2022.12.31 |