본문 바로가기
coding 📟/deep learning 👨‍💻

[DeepLearning] Transfer Learning, Fine Tuning - 1

by 고돌한 데이터 사이언스 2022. 3. 8.
반응형

[Transfer Learning]

딥러닝 모델을 생성시,

가장 좋은 방법은 대용량 즉 가능한 많은 데이터를 확보하는 것이다.(데이터가 많다고 항상 좋은건 아니지만...)

 

하지만, 현실 세계 real world 에서는

데이터 확보에 대한 비용 등 여러가지 문제에 부딪혀 충분한 데이터를 수집하는 것은 어렵다.

 

이를 해결하기 위한 방안 중 하나로 Transfer Learning (전이학습) 을 이용한다.

 

Transfer Learning (전이학습) 이란, 어느 특정 분야로 학습된 신경망의 일부 기능을 

유사 분야 또는 전혀 다른 새로운분야에서 사용되는 신경망의 학습에 이용하는 방법이다.

 

이때, 전이 학습에서 이용되는 학습된 신경망을 pretrained model 이라 칭하며,

대규모 데이터셋으로 잘 훈련된 pretrained model 을 가지고 

사용자의 환경에 맞게 모델의 가중치를 약간씩 변화하여 사용한다.

 

실제로 딥러닝을 이용하는 경우 처음부터 가중치 및 Bias 를 초기화하는 것 보단,

pretrained model 을 사용하여 어느 정도 진행된 값을 가진 가중치를 이용한다.

(복잡한 모델일수록 시간과 많은 비용 소모, 하이퍼파라미터, 처음부터 Train 하기에는 너무 골치아픈 일이다...)

 

목적에 따라 Classifier가 바뀌어야 하기 때문에, 우선 기존의 기존의 Classifier 부분을 우선 제거한다.

새로운 목적에 맞게 Classifier 새로 구성하고, task에따라 적절히 Fine Tuning을 진행한다.

 

[Fine Tuning]

기존에 학습되어져 있는 모델을 기반으로 아키텍쳐를 새로운 목적(나의 이미지 데이터에 맞게)변형하고 이미 학습된 모델 Weights로 부터 학습을 업데이트하는 방법을 말한다. 

 

Fine Tuning을 진행 시 , 완전히 랜덤한 초기 파라미터를 사용하거나,

가장 아래쪽의 레이어의 파라미터를 학습하게 되면 overfitting(과적합)이 발생하거나 전체 파라미터가 망가질 수 있으니 주의해야한다.

 

 

 

참고:

https://eehoeskrap.tistory.com/186 [Enough is not enough]

https://driip.me/c3a638be-6bff-491d-8b73-b81c7b27f327

https://newindow.tistory.com/254

 

반응형

댓글