일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- DP
- 회고록
- dfs
- 분할 정복
- 크루스칼
- NEXT
- tensorflow
- 가끔은_말로
- Overfitting
- 2023
- 조합론
- 플로이드 와샬
- 세그먼트 트리
- pytorch
- 미래는_현재와_과거로
- 너비 우선 탐색
- dropout
- 백트래킹
- 문자열
- 자바스크립트
- 이분 탐색
- lazy propagation
- back propagation
- c++
- object detection
- 알고리즘
- 우선 순위 큐
- 다익스트라
- BFS
- 가끔은 말로
- Today
- Total
Doby's Lab
Transfer Learning(pre-training, fine-tuning)의 개념에 대하여 (Prologue) 본문
Transfer Learning(pre-training, fine-tuning)의 개념에 대하여 (Prologue)
도비(Doby) 2023. 2. 4. 11:25✅ 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
https://eehoeskrap.tistory.com/186
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=laonple&logNo=220884698923
https://hyoeun-log.tistory.com/entry/WEEK5-Transfer-Learning
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=flowerdances&logNo=221189533377
'AI > Concepts' 카테고리의 다른 글
Label Encoding의 문제점 (with Chat GPT) (0) | 2023.07.20 |
---|---|
Precision과 Recall이 반비례 관계인 이유에 대한 고찰 (0) | 2023.06.17 |
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift (4) | 2023.01.22 |
Activation이 Non-linearity를 갖는 이유 (0) | 2023.01.21 |
Gradient Vanishing / Exploding에 대하여 (1) | 2023.01.17 |