2022. 1. 24. 03:15ㆍ인공지능/기초
우선 전이 학습에 대한 기본 지식이 필요하다!
전이 학습(Transfer Learning) 포스팅 따로 참고..
올리고 나서 주소 첨부하겠다
기존에 학습되어져 있는 모델을 기반으로 아키텍처를 새로운 목적으로 변형하고 이미 학습된 모델 weights로부터 학습을 업데이트 하는 방법
=> 즉 전이학습을 수행할 때, 모델의 파라미터를 미세하게 조정하는 행위가 필요함
왜? 라는 질문을 던지면 예를 들어서 살펴보자
🙄예를 들어 10개의 클래스로 분류하도록 학습된 모델을, 2개의 클래스로 분류하도록 학습시킬 때는 조정이 필요하다는 것!
* 혼동될 수 있는 개념이지만, transfer learning= fine tuning으로 봐도 무방하다고 한다.
엄밀히 보면 다른 개념이지만, transfer learning은 모델을 가져온다는 개념을 중점적으로 생각하면 될 것 같고 fine tuning은 전이학습 내에서의 파라미터 조정을 말하는 것 같다.
Fine tuning에는 크게 4가지 방법이 존재한다고 한다!
1. Large dataset, but different from the pre-trained model's dataset
(현재 해결하려는 task의 dataset size가 충분하지만, 선행 학습되었던 데이터 셋과 많이 다를 경우)
보통 base model을 Backbone이라고 하며, Conv layer를 거쳐서 나온 특성들을 Bottleneck feature라고한다
현재 데이터셋은 학습할 만큼 충분하고, 선행 학습된 네트워크와 데이터 셋이 차이가 있는 케이스라 네트워크 전부를 다시 학습해주어 좋은 퍼포먼스를 기대한다!
2. Large dataset and similar to the pre-trained model's dataset
(현재 해결하려는 task의 dataset size가 충분하지만, 선행 학습되었던 데이터 셋과 비슷한 경우)
학습할 dataset size는 충분하지만, 선행 학습된 데이터셋과는 유사한 경우에는 굳이 시간을 써서 모든 Conv layer를 학습할 필요는 없다!
Conv layer 초기 계층은 lr을 0으로 걸어서 Frozen시키고, 현재 task에 조금 더 fit한 특징을 유도하도록 Convlayer 후기 계층과 FC Layer만 fine tuning 해준다.
3. Small dataset and different from the pre-trained model's dataset
(현재 해결하려는 task의 dataset size이 작고, 선행 학습되었던 데이터 셋과 많이 다를 경우)
데이터셋 사이즈가 작은데, 선행학습 되었던 데이터와도 차이가 있는 경우에는 문제가 생긴다.
데이터가 너무 작아서 오버피팅을 조심해야하기 때문에 전체 계층을 다시 학습 시킬 수도 없으므로 위와 같이 fine tuning 해준다.
4. Small dataset and similar to the pre-trained model's dataset
(현재 해결하려는 task의 dataset size가 작고, 선행 학습되었던 데이터 셋과 많이 다를 경우)
데이터 셋이 작을때는 항상 오버피팅을 조심해야하기 때문에 이러한 경우에는 Conv layer를 frozen시키고 bottleneck feature를 뽑아서 FC layer만 학습시킨다.
앞부분의 convolution base를 재학습시킬 경우에는 미리 학습된 가중치를 잊지 않으면서도 추가로 학습을 해 나갈 수 있도록 learning rate를 작게 잡아주는 것이 바람직하다.
'인공지능 > 기초' 카테고리의 다른 글
Image Warping 이란? (0) | 2022.01.24 |
---|