Transfer Learning(pre-training, fine-tuning)의 개념에 대하여 (Prologue)
✅ Intro
R-CNN에 대해 공부하다가 접하게 되어 기본적인 개념에 대해 알고자 작성하게 되었습니다.
✅ Pre-training (사전 학습)
어떤 목적을 갖는 모델을 만들어야 할 때, 이미 잘 만들어진 모델을 가지고 조금 변형을 줘서 사용할 수 있겠다 싶은 판단이 들 때가 있습니다. 그때, 이미 잘 만들어진 모델은 Pre-trained Model이라고 합니다.
예를 들어, 개와 고양이를 분류하는 ResNet, ImageNet 등 좋은 모델을 가져와서 쓴다고 할 때, Pre-trained Model은 이렇게 선정했다고 말할 수 있습니다.
또한, 이런 경우가 아니더라도 Labeled data가 많이 없는 케이스도 Pre-training을 고려할 수 있습니다.
왜냐하면, Unsupervised Learning을 통해 어느 정도의 적절한 Parameter를 찾고, Labeled data를 학습(Supervised Learning, Fine-tuning)시키면서 원래의 목적에 맞게끔 학습시킬 수 있습니다.
+ 하지만, 이러한 방식은 많은 기술의 발전(Dropout, Image Augmentation 등)으로 '굳이 그럴 필요 없다'라는 의견들이 나오면서 Supervised Learning을 방식만으로도 좋은 결과를 가져올 수 있게 되었습니다.
✅ Fine-tuning (미세 조정)
Pre-trained Model로써 좋은 모델을 발견했지만 이 모델이 Binary Classification을 하고, 우리의 목적은 Multi-Class Classification이라고 했을 때는 Pre-trained Model의 Layer를 수정할 필요가 있습니다.
즉, Pre-trained Model 기반의 Architecture를 새로운 목적에 맞게끔 변형하고, 새로운 목적에 대한 성능을 높이도록 학습하여 Parameter를 정교하게 수정하는 과정입니다.
이러한 과정을 Fine-tuning이라고 합니다.
필요한 Layer를 붙여서 Parameter를 잘 Initialize 시켜 전체적으로 재학습시키는 방법도 있고, 새로 더할 부분만 학습시켜서 붙이는 여러 가지 방법이 있습니다.
✅ Transfer Learning (전이 학습)
앞서 말한 일련의 과정들이 모두 Transfer Learning에 포함이 됩니다.
또한, 앞서 말한 것 말고도 많은 종류가 있기 때문에 추후에 다루도록 하겠습니다.
이러한 Transfer Learning이 갖는 장점은 pre-trained model을 사용하면, 기존의 Low-level(점, 선, 곡선 등)에 대한 지식을 유용하게 쓸 수 있기 때문에 널리 알려진 방식입니다.
이 장점을 가지고 보았을 때, 괜찮은 모델을 가져오는 것에 대한 생각뿐만 아니라 Target Task에 대한 데이터가 부족할 때도 Transfer Learning을 고려할 수 있겠습니다.
✅ References
[DL] Transfer Learning vs Fine-tuning, 그리고 Pre-training
딥러닝에서 신경망을 공부하다보면 transfer learning과 fine tuning이라는 단어를 심심치않게 접할 수 있다. 둘 사이에는 무슨 차이가 있을까? 사실 필자도 생각없이 혼용하다(ㅋㅋ) 의문점을 해소할
heeya-stupidbutstudying.tistory.com
https://eehoeskrap.tistory.com/186
[Deep Learning] pre-training 과 fine-tuning (파인튜닝)
Pre Training 이란? 선행학습(pre-training) 사전훈련(pre-training) 전처리과정(pre-training) 이라고도 하는데, 이는 Multi Layered Perceptron (MLP)에서 Weight와 Bias를 잘 초기화 시키는 방법이다. 이러한 Pre-training을
eehoeskrap.tistory.com
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=laonple&logNo=220884698923
[머신러닝] 15. 머신러닝 학습 방법(part 10) - AutoEncoder(2)
쉽게 읽는 머신 러닝 – 학습방법 (part 10) – AutoEncoder2 지난 10월 말 Facebook은 “Style Trans...
blog.naver.com
https://hyoeun-log.tistory.com/entry/WEEK5-Transfer-Learning
WEEK5 : Transfer Learning
learning from multiple task transfer learning multi-task learning Transfer Learning 1) Transfer Learning이란? 사전 작업(source task)에 대하여 학습된 정보를 목표 작업(target task)에 활용하는 방법 2) Transfer Learning의 장점 tar
hyoeun-log.tistory.com
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=flowerdances&logNo=221189533377
[인턴일지] Transfer Learning (전이 학습) 이란?
[왜 Transfer Learning 인가?] - 머신러닝(Machine Learning)의 많은 모델은 적용하려는 데이터가 학습...
blog.naver.com