📙 Fundamentals/ML&DL

Transfer Learning_전이학습

Lento_ 2025. 4. 24. 17:43

"전이학습"이란?

: 어떤 작업을 수행하기 위해 사전 학습된 모델을 다른 작업에 재사용하여 새로운 작업이나 관련 도메인의 성능을 향상시킬 수 있는 기술을 말한다.


전이 학습의 필요성

1. 데이터 부족 문제 해결

    : 전이학습은 대규모 데이터에서 학습된 모델을 사용하여 적은 데이터로도 높은 성능을 달성할 수 있다.

 

2. 학습 시간 단축

    : 처음부터 모델을 학습하는 대신, 사전 학습된 모델의 가중치를 활용하면 학습 시간을 크게 줄일 수 있다.

    : 특히, 네트워크 구조가 크고 복잡할수록 전이 학습이 효과적이다.

 

3. 성능 향상

    : 사전 학습된 모델은 다양한 데이터에서 일반적인 특징을 이미 학습한 상태이므로, 새로운 문제에서도 성능 향상에 도움을 준다.

 

4. 효율적인 자원 활용

    : 대규모 데이터셋에서 모델을 학습하려면 고성능 GPU가 필요하지만, 전이학습은 상대적으로 적은 자원으로도 높은 성능을 제공한다.


전이 학습 종류

Domain Adaptation

: 사전 학습된 모델을 라벨링 된 데이터가 부족한 다른 도메인에 적응시키는 방법

: 언제 사용해?) 사전 학습된 도메인과 타겟 도메인이 다르지만 유사성이 있을 때 효과적이다.

 

Multi-task learning

: 여러 관련 작업을 동시에 학습하는 방법 (다양한 전이 학습 스타일 포함됨)

: 가장 중요한 특징) 둘 이상의 작업을 해결하기 위해 하나의 모델을 학습하는 것

: 하나의 모델이 여러 작업을 학습함으로써 각 작업 간의 공통된 정보를 활용할 수 있다.

 

Feature extraction

: 사전 학습된 모델이 학습한 기본 패턴을 가져와 문제에 더 적합하도록 출력을 조정하는 방법

: 사전 학습된 모델의 가중치를 고정하고, 마지막 레이어만 새 데이터셋에 맞게 재학습한다.

: 이 방법은 모델의 초기 레이어는 변형하지 않고, 마지막 레이어만 재학습한다.

언제 사용해?) 

  - 데이터 양이 적을 때 주로 사용

 

Fine tuning

: 사전 학습된 모델 전체 또는 일부 레이어를 새로운 작업에 맞게 재학습하는 방법

: 언제 사용해?) 

  - 사전 학습된 모델의 원래 기능을 유지하면서 보다 전문적인 사용 사례에 맞게 조정하는데 사용

  - 데이터가 충분하고 세밀한 조정이 필요 시 주로 사용


전이 학습  장점과 한계

(장점)

- 효율성 : 데이터와 자원이 부족한 상황에서도 높은 성능을 제공

- 빠른 학습 : 모델 초기화 상태에서 학습하지 않아 학습 시간이 단축

- 일반화 성능 : 다양한 데이터에서 학습된 특징을 활용하여 일반화 능력을 강화

 

(한계)

- 도메인 차이 문제 : 사전 학습 데이터셋과 새 데이터셋이 크게 다를 경우, 성능이 저하될 수 있음

- 고정된 가중치의 한계 : Feature Extraction 방식에서는 초반 계층이 고정되므로 새로운 데이터셋에 완전히 적응하지 못할 수 있음

- 데이터 의존성 : 사전 학습된 모델의 성능은 학습된 데이터셋의 크기와 품질에 따라 달라질 수 있음


전이 학습 순서

1. 사전 훈련된 모델의 선택과 인스턴스화

: 대규모 데이터셋으로 사전 훈련된 모델을 선택하고 인스턴스화한다.

: 선택 기준 ) 문제 특성, 모델의 복잡도, 리소스 제약 등

: EX ) VGGNet, ResNet, DenseNet 등

 

2. 모델 로드 및 분석

: 모델의 구조(특히, convolutional 부분과 분류기 부분)를 이해하고, 어느 부분을 재학습할지 결정한다.

 

3. 분류기 수정

: 기존 분류기를 새로운 데이터셋의 클래스 수에 맞게 재설계한다.

: EX) ImageNet의 1000 클래스 → 새로운 작업의 클래스 수(ex.10)

 

4. 가중치 동결/해제 결정

: 선택한 모델의 상위 층을 동결시킴으로써, 이미 학습된 특징들이 새로운 데이터로 인해 손상되는 것을 방지할 수 있다.

: 여기서 동결은 해당 층의 가중치가 학습 과정에서 업데이트되지 않도록 하는 것을 의미한다.

 

5. 새로운 출력 층의 추가

: 모델에 새로운 작업에 적합한 출력 층을 추가한다.

 

6. 새로운 데이터셋으로 훈련

: 추가된 새로운 층과 기존 모델의 일부 층을 새로운 데이터셋으로 훈련한다.

: 이 과정에서 모델은 새로운 데이터에 특화된 특징을 학습한다.

 

7. 전체 모델의 미세 조정

: 미세조정은 모델이 새로운 데이터에 잘 적응하도록 돕는 과정이다.

: 새로운 층이 어느정도 학습이 되면, 전체 모델의 동결을 해제하고 전체 모델을 미세 조정할 수 있다.

: 이 단계에서는 학습률을 낮게 설정하여 사전 학습된 가중치를 세밀하게 조정한다.

 

8. 모델 학습 및 평가

: 새로운 데이터셋에 대해 학습을 진행하고, 검증 및 테스트를 통해 성능을 평가한다.

 

 

 

(참고)

https://hi-ai0913.tistory.com/32

https://kr.appen.com/blog/transfer-learning/