본문 바로가기
AI Research/Deep Learning

[딥러닝 기본지식] Transfer Learning과 Fine Tuning

by ga.0_0.ga 2023. 3. 4.
728x90
반응형

▶Transfer Learning(전이 학습)이란?

Transfer Learning이란 한 분야에서 학습된 신경망의 일부 능력을 유사하거나 새로운 분야에서 사용되는 신경망의 학습에 이용하는 방법입니다. 데이터의 수가 적을 때 효과적입니다. 또한, 전이 학습 없이 밑바닥부터 새로 학습할 때 보다 훨씬 더 높은 정확도와 빠른 학습 속도를 얻을 수 있습니다.

Transfer Learning에서 사용되는 학습된 신경망을 pretrained model 이라고 합니다. 대표적으로는 ImageNet, ResNet, GoogleNet, VGG 등이 있습니다. 대규모 데이터에서 잘 학습된 모델을 가지고 와서 사용자가 적용하려는 문제에 맞게 weight를 조금씩 변화하여 사용하면 됩니다. 따라서 첫 학습부터 어느 정도 합당한 weight를 이용할 수 있게 됩니다.

모델을 재설계 했다면 기존 pretrained model의 가장 마지막 부분에 있는 분류기는 삭제하고, 내가 가진 데이터셋에 맞는 새로운 분류기를 추가합니다. 이렇게 새롭게 만들어진 모델을 Fine Tuning을 진행합니다. Fine Tuning은 기존의 신경망을 이용하는 재학습 과정을 의미합니다.

▶ Fine Tuning 이란?

기존에 학습된 모델을 기반으로 새로운 목적에 맞게 변형하여, 학습된 모델의 가중치를 미세하게 조정하여 재학습 하는 방법을 말합니다. Fine Tuning에는 크게 3가지 방법이 있습니다.

1. 모델 전체를 새로 학습

학습된 모델의 구조만 사용하고 새로운 데이터에 맞게 모델을 전부 새롭게 학습시키는 방법입니다. 크기가 크고 학습된 모델의 학습 데이터와 유사성이 적을 때 사용하는 방법입니다. 데이터가 충분히 많다면 모델을 다시 처음부터 재학습시킬 수 있기 때문에 이 방법을 선택하는 것이 효과적입니다.

2. 일부만 재학습

Conv base의 일부분은 freezing(고정)하고 나머지와 분류기를 재학습합니다. 새로운 데이터의 양이 충분히 많고 유사성도 높을 때 사용할 수 있는 방법입니다. 데이터의 유사도가 높기 때문에 사전 학습된 모델이 갖고 있는 지식을 활용하면 큰 효과를 얻을 수 있습니다.

또한, 데이터의 양이 작고 유사성이 적을 떄도 사용할 수 있는 방법입니다. 그러나 이때는 너무 많은 레이어를 재학습하면 과적합이 생길 수 있고, 너무 적은 레이어만 재학습하면 제대로 학습되지 않기 때문에 주의해야 합니다.

3. 분류기만 재학습

모든 Conv base는 freezing하고 분류기만 재학습하는 방법입니다. 컴퓨터 연산능력이 부족하거나 데이터의 양이 적고 유사성이 높을 때 사용하는 방법입니다. 기존의 CNN들은 feature추출기로 그대로 사용하고 분류기 부분만 변경하여 학습시켜주면 됩니다.

지금까지 Fine Tuning의 다양한 방법에 대해 설명했습니다. 한가지 주의할 부분은 Conv base를 재학습하는 Fine Tuning의 경우에는 미리 학습된 weight에 담긴 정보를 잊지 않고 추가로 학습을 해 나가기 위해 learning rate를 작게 설정해주는 것이 좋습니다.

728x90
반응형

댓글