딥러닝 기초 - 전이 학습 이해하기

sp·2022년 3월 9일
3

딥러닝 기초

목록 보기
2/2
post-thumbnail

전이 학습이란?

전이학습(Transfer learning)은 어떤 목적을 이루기 위해 학습된 모델을 다른 작업에 이용하는 것을 말합니다. 즉 모델의 지식을 다른 문제에 이용하는 것으로 볼 수 있습니다. 아래 그림은 간단한 전이 학습이 사용되는 예시를 나타내고 있습니다.

전이 학습을 수행하기 위해서는 학습된 모델이 필요합니다. 여기서는 1000개의 클래스로 구별하기 위해 큰 데이터셋으로 학습된 모델을 사용하고자 합니다. 그리고 개와 고양이를 분류하기 위해 새로운 작은 데이터셋을 준비해 학습할 때, 학습된 모델을 모두 가져오고, 제일 마지막 레이어만 새로 학습을 할 수 있습니다.

다른 예시로는 semantic segmentation, pose estimation이나 object detection와 같은 다른 task를 풀 때 컨볼루션 레이어들을 가져오고, 다른 네트워크와 붙여서 사용되기도 합니다. 여기서, 다른 task를 푸는 데 feature map을 만드는 데 사용되는 컨볼루션 레이어들로 구성된 네트워크를 backbone 네트워크라고 합니다. 사용하는 backbone 네트워크로는 이미지 분류를 하는 데 사용되는 ResNet, VGGNet, XCeption, MobileNet 등이 있습니다.

전이 학습을 사용하는 이유

큰 데이터셋을 활용해 학습을 할 때 얻은 지식을 활용했을 때 다음과 같은 장점들이 있습니다.

  • 학습이 빠르게 수행될 수 있습니다. 이미 입력되는 데이터에 대해 특징을 효율적으로 추출하기 때문에, 학습할 데이터에 대해 특징을 추출하기 위한 학습을 별도로 하지 않아도 되기 때문입니다.

  • 작은 데이터셋에 대해 학습할 때 오버피팅을 예방할 수 있습니다. 적은 데이터로 특징을 추출하기 위한 학습을 하게 되면, 데이터 수에 비해 모델의 가중치 수가 많을 수 있어 미세한 특징까지 모두 학습할 수 있습니다. 전이 학습을 이용해 마지막 레이어만 학습하게 한다면, 학습할 가중치 수가 줄어 과한 학습이 이루어지지 않게 할 수 있습니다.

사전 학습과 미세 조정

전이 학습을 하기 위해서는 학습된 모델과 새로 학습할 데이터셋이 필요합니다. 여기서 학습된 모델을 만드는 과정을 사전 학습(pre-training)이라고 합니다. 미세 조정(fine-tuning)은 사전 학습된 모델을 새로운 문제에 적용하기 위해 일부 가중치를 조절하는 학습 과정을 말합니다.

참고로, 전이 학습과 미세 조정을 헷갈릴 수 있는데, 전이 학습은 모델을 효율적으로 학습하기 위한 하나의 큰 접근 방법이며, 미세 조정은 전이 학습에서 사용되는 기법 중 하나라고 볼 수 있겠습니다.

전이 학습이 잘 되기 위한 조건

사전 학습된 모델은 새로 학습할 데이터에도 적용할 수 있는 지식을 추출할 수 있어야 합니다. 전이 학습이 잘 이루어지기 위해 사전 학습된 모델의 조건은 크게 두 가지가 있습니다.

  • 사전 학습에 사용한 데이터와 새로운 데이터가 비슷한 형태를 가지고, 새로 학습할 데이터에도 비슷한 특징을 활용할 수 있어야 합니다. 많이 다른 형태의 데이터를 사전 학습된 모델에 적용한다고 해도 특징의 재추출이 필요할 것이기 때문입니다.

  • 일반적으로 새로운 데이터보다 많은 데이터로 사전 학습이 수행되었어야 합니다. 새로운 데이터가 사전 학습에 사용된 데이터가 많으면, 해당되는 지식의 의미 자체가 없어질 수 있기 때문입니다.

참고
https://www.youtube.com/watch?v=yofjFQddwHE
https://developer.ibm.com/articles/transfer-learning-for-deep-learning/

0개의 댓글