본문 바로가기
Theory/Pytorch

[파이토치 트랜스포머 #11] 4장 파이토치 심화 - 5) 사전 학습된 모델

by 남디윤 2024. 7. 3.

 

 

사전 학습된 모델

  • 사전 학습된 모델 Pre-trained Model: 대규모 데이터세트로 학습된 딥러닝 모델, 이미 학습이 완료된 모델
    • 모델 자체를 현재 시스템에 적용하거나, 사전 학습된 임베딩 Embeddings 벡터를 활용해 모델 구성 가능
    • 처음부터 모델 구성, 학습 x, 이미 학습된 모델의 일부 활용, 추가 학습을 통해 모델 성능 향상
    • 예) 늑대와 사자 구별하는 모델 구축
      • 개와 고양이 구별하는 사전 학습된 모델 활용
      • 동물의 형태를 구분하고 각 개체가 가진 특징을 구분하는 계층에 대한 학습이 완료된 모델
    • 이러한 사전 학습된 모델을 사용하면 안정되고 우수한 성능 기대 가능
    • 대규모 데이터세트에서 데이터의 특징을 학습했기 때문에 유사한 작업에 대해서도 우수한 성능 기대 가능
    • 학습에 필요한 시간 대폭 감소, 모델 개발 프로세스 가속화 가능, 모델 성능 향상 가능
  • 사전 학습된 모델은 전이 학습 Transfer Learning과 같은 작업뿐만 아니라 백본 네트워크 Backbone Netowrks 로 사용

 

 

백본

  • 백본 Backbone: 입력 데이터에서 특징을 추출해 최종 분류기에 전달하는 딥러닝 모델 또는 딥러닝 모델의 일부를 의미
    • 합성곱 신경망CNN 모델이 VGG, ResNet, MaskR-CNN 논문 등에서 간접적으로 언급됨
    • 합성곱 계층이 입력 이미지를 고차원 특징 벡터로 변환해 이미지 분류 작업을 돕는 특징 추출기의 역할로 사용될 수 있다는 점에서 백본이라는 용어가 등장
  • 백본 네트워크는 입력 데이터에서 특징 추출, 노이즈와 불필요한 특성 제거, 가장 중요한 특징 추출 가능
  • 합성곱 신경망에서 백본 활용 예시
    • 이미지에거 객체를 검출하는 합성곱 신경망은 초기 계층(하위 계층)에서 점이나 선과 같은 저수준의 특징 학습. 중간 계층에서 객체나 형태 학습. 최종 계층(상위 계층)에서 이전 계층의 특징 기반으로 객체 이해 및 검출
    • 객체 검출 모델이 아닌 포즈 추정 Pose Estimation 모델이나 이미지 분할 Image Segmentation 모델로 확장하려 한다면, 처음부터 구성 x, 객체 검출 합성곱 신경망의 특징값을 가져와 최종 계층을 바꿔 기존 모델과 다른 모델을 구성
  • 백본을 활용한다해서, 모델의 성능이 급격하게 좋아지지 않음
    • 백본도 딥러닝 모델이므로 수행하려는 작업에 따른 장단점 존재
    • → 해결하려는 작업에 적합한 백본 선택 필요
  • 백본으로 사용하는 딥러닝 모델에는 많은 수의 매개변수 존재. 학습 데이터에 따라 쉽게 과대적합 발생 가능. 정규화 혹은 정칙화 기술 적용 권장
  • 사전 학습된 백본은 미세 조정이나 전이 학습 적용해 과대적합 피할 수 있음
  • 자연어 처리와 컴퓨터비전 작업에서 백본이 되는 모델은 BERT, GPT, VGG-16, ResNet과 같이 초대 규모 딥러닝 모델 Hyper-scale deep learning models 사용

 

 

전이 학습

  • 전이 학습 Transfer Learning: 어떤 작업을 수행하기 위해 이미 사전 학습된 모델을 재사용해 새로운 작업이나 관련 도메인 Domain 의 성능을 향상시키는 기술
    • 특정 영역의 대규모 데이터세트에서 사전 학습된 모델을 다른 영역의 작은 데이터세트로 미세 조정해 활용
    • 예) 개와 고양이 분류 모델 → 늑대와 사자 분류 모델
      • 개와 고양이의 특징과 유사한 동물 특징 영역을 학습하여 소스 도메인 Source Domain에서 학습한 지식을 활용해 타깃 도메인 Target Domain 에서 성능 향상
    • 더 적은 데이터와 학습 시간으로 더 높은 성능
  • 업스트림 Upstream과 다운스트림 Downstream 영역으로 구별
    • 전이 학습을 수행하기 위해 사전 학습된 모델: 업스트림 모델
      • 대규모 특정 도메인의 데이터세트에서 학습한 모델. 해당 도메인에 대한 특징과 특성 학습
      • 전이 학습 파이프라인 중 시작 부분에 위치
    • 미세 조정된 모델: 다운스트림 모델
      • 업스트림 모델에서 학습한 지식을 활용해 작은 규모의 타깃 도메인 데이터세트에서 학습한 모델
      • 전이 학습 파이프라인 중 마지막 부분에 위치
      • 사전 학습된 모델의 계층을 하나 이상 사용

 

귀납적 전이 학습

  • 귀납적 전이 학습 Inductive Transfer Learning: 기존에 학습한 모델의 지식을 활용하여 새로운 작업을 수행하기 위한 방법
  • 이전 작업에서 학습한 지식을 새로운 작업에 활용 → 모델의 일반화 능력 향상
  • 자기주도적 학습 Self-taught Learning, 다중 작업 학습 Multi-task Learning
    • 자기주도적 학습
      • 비지도 전이 학습 Unsupervised Transfer Learning의 유형 중 하나
      • 레이블이 지정되지 않은 대규모 데이터세트에서 특징을 추출하는 오토 인코더와 같은 모델을 학습시킨 다음, 저차원 공간에서 레이블링 된 데이터로 미세 조정하는 방법
      • 소스 도메인의 데이터세트에서 데이터 양은 많으나 레이블링 된 데이터의 수가 매우 적거나 없을 때 사용하는 방법.
    • 다중 작업 학습
      • 레이블이 지정된 소스 도메인과 타깃 도메인 데이터를 기반으로 모델에 여러 작업을 동시에 가르치는 방법
        • 모델 구조는 공유 계층 Shared Layers과 작업별 계층 Task Specific Layer 로 구분됨
        • 공유 계층에서 소스 도메인과 타겟 도메인의 데이터세트에서 모델을 사전 학습한 다음, 단일 작업을 위해 작업별 계층마다 타깃 도메인 데이터세트로 미세조정하는 방법
        • 소스 도메인과 타깃 도메인 데이터를 한의 데이터세트로 구축하는 것이 아닌, 작업마다 서로 다른 학습 데이터세트를 사용해 모델을 미세 조정
        • 공유 계층에서 서로 다른 작업의 특징을 맞추기 위해 동시에 학습 → 하나의 작업에 과대적합 x → 일반화된 모델
        • 서로의 작업이 동일한 도메인 사용. 성능 향상에 기여

 

변환적 전이 학습

  • 변환적 전이 학습 Transductive Transfer Learning: 소스 도메인과 타겟 도메인이 유사하지만 완전히 동일하지 않은 경우
  • 변환적 전이학습에 사용되는 소스 도메인은 레이블이 존재, 타깃 도메인에는 레이블이 존재하지 않은 경우에 사용됨
  • 레이블이 지정된 소스 도메인으로 사전 학습된 모델 구축, 레이블이 지정되지 않은 타깃 도메인으로 모델을 미세 조정해 특정 작업에 대한 성능 향상
  • 도메인 적응 Domain Adaptation과 표본 선택 편향/공변량 이동 Sample Selection Bias/Convariance Shift
    • 도메인 적응: 소스 도메인과 타깃 도메인의 특징 분포 Feature Distributions를 전이시키는 방법
      • 소스 도메인과 타깃 도메인은 유사하지만 다르므로 두 도메인의 특징 공간과 분포도 서로 다름
      • 서른 다른 도메인들의 특징 분포를 고려해 학습하므로 도메인 변화 Domain Shift를 확인해 전이
      • 타깃 도메인에서 모델의 성능 향상시키는 것이 목적 → 소스 도메인 조정 가능
    • 표본 선택 편향/공변량 이동: 소스 도메인과 타깃 도메인의 분산과 편향이 크게 다를 때 표본을 선택, 편향이나 공변량을 이동시키는 방법
      • 소스 도메인과 타깃 도메인은 완전히 동일하지 x → 모델이 학습 데이터에서 좋은 성능을 보였더라도 테스트 데이터 성능이 좋지 않을 수 있음 → 무작위/비무작위 샘플링 방법이나 도메인 적응을 통해 학습치만 전이시키는 방법

 

비지도 전이 학습

  • 비지도 전이 학습 Unsupervised Transfer Learning: 소스 도메인과 타깃 도메인 모두 레이블이 지정된 데이터가 없는 전이학습 방법
    • 소스 도메인에서 타겟 도메인의 성능을 개선하는데 사용할 수 있는 특징 표현 학습
    • 레이블이 없는 전체 데이터로 학습, 데이터가 가진 특징과 특성 구분할 수 있게 사전 학습된 모델 구축, 소규모의 레이블이 지정된 데이터를 활용해 미세 조정
    • 레이블의 영향을 받지 않고 데이터 특징을 학습했기 때문에 미세 조정 시 더 효과적으로 타깃 도메인에 대한 예측 수행 가능
    • 대표적인 방법: 생성적 적대 신경망 Generative Adversarial Networks, GAN과 군집화 Clustering

 

제로-샷 전이 학습

  • 제로-샷 전이 학습 Zero-shot Transfer Learning: 사전 학습된 모델을 이용해 다른 도메인에서도 적용 가능한 전이 학습 기법 중 하나
  • 새로운 도메인에서 일반화된 성능을 가질 수 있음.
    • 학습 데이터가 부족한 경우 유용하게 사용 가능.
    • 다양한 도메인 간의 지식 전이 가능 → 일반화 성능 향상 장점
  • 예) 이미지 분류 문제
    • (”독수리”, “새”), (”참새”, “새”), (”오리”, “새”) 등의 데이터 쌍으로 모델 학습
    • “부엉이” 와 같은 새로운 이미지 분류 → 모델 일반화 성능 발휘: “새”라는 범주와 관련된 이미지인 “부엉이” 인식 분류 가능
  • 자연어 처리 모델에서도 사전 학습된 모델에 새로운 도메인에서 문장 입력시, 이전에 학습된 단어와 문맥 정보를 비교하여 일반화된 성능 발휘 가능
    • 예) “개”와 “고양이” 와 같은 단어 포함하는 문장, 이전에 학습되지 않은 단어인 “호랑이” 가 포함된 문장 → 모델이 이 문장이 “동물” 과 관련되어 있다고 판단 가능

 

원-샷 전이 학습

  • 원-샷 전이 학습 One-shot Transfer Learning: 제로-샷 학습과 유사, 한 번에 하나의 샘플만 사용해 모델 학습 방법
  • 매우 적은 양의 데이터를 이용해 분류 문제 해결
  • 원-샷 전이 학습 모델: 서포트 셋 Support Set과 쿼리 셋 Query Set 가정
    • 서포트 셋: 학습에 사용될 클래스의 대표 샘플 의미. 각 클래스당 하나 이상의 대표 샘플로 이뤄짐
    • 쿼리 셋: 새로운 클래스를 분류 위한 입력 데이터 의미. 서포트 셋에서 수집한 샘플과는 다른 샘플
    • 서포트 셋에 있는 대표 샘플과 쿼리 셋 간의 거리 측정. 쿼리 셋과 가장 가까운 서포트셋의 대표 샘플의 클래스로 분류 (유클리드 거리, 코사인 유사도 등 사용)
  • ex) 개, 고양이 분류 문제
    • 개 클래스와 고양이 클래스 각각 대표 샘플을 수집하여 서포트 셋 생성
    • 각 클래스의 대표 샘플은 개 사진과 고양이 사진 중 하나로 선택
    • 분류 대상인 새로운 개 사진을 쿼리 셋으로 생성
    • 서포트 셋에 있는 대표 샘플과 쿼리 셋 간의 거리 측정
    • 서포트 셋의 가장 가까운 대표 샘플을 가진 클래스로 분류

 

전이 학습 방법 정리

유형 세부 유형 소스 도메인 라벨 타깃 도메인 라벨
귀납적 전이 학습 자기주도적 학습 X O
귀납적 전이 학습 다중 작업 학습 O O
변환적 전이 학습   O X
비지도 전이 학습   X X
제로-샷 전이 학습   O X
원-샷 전이 학습   O X

 

 

특징 추출 및 미세 조정

  • 특징 추출 Feature Extraction 및 미세 조정 Fine-Tuning: 전이 학습에 사용되는 일반적인 기술
  • 모두 대규모 데이터세트로 사전 학습된 모델을 작은 데이터세트로 추가 학습해 가중치나 편향 수정
  • 특징 추출
    • 타깃 도메인이 소스 도메인과 유사하고 타깃 도메인의 데이터세트가 적을 때 사용됨
    • 특징 추출 계층은 동결 Freeze해 학습하지 않고 않고 기존에 학습된 모델의 가중치 사용
    • 예측 모델마다 요구하는 출력 노드의 수가 다르기 때문에 모델의 분류기 Classifier만 재구성해 학습
  • 미세 조정
    • 특징 추출 계층을 일부만 동결하거나 동결하지 않고 타깃 도메인에 대한 학습 진행
    • ex) (1) 개와 고양이 분류하는 모델 → 식물 분류 모델
      • 소스 도메인과 타깃 도메인 간 유사성 매우 낮음
      • 특징 추출을 위한 모델의 구조는 유효 → 모든 계층을 동결하지 않고 전체 데이터세트로 학습 진행
      • 이 방법은 데이터 세트가 충분히 많을 때 시도 가능
    • ex) (2) 식물 분류 모델(다른 도메인), 데이터세트의 크기가 작을 때
      • 타깃 도메인에 대한 데이터세트가 작다면 전체 계층 학습 불가 → 일부 계층만 동결해 학습 진행
      • 도메인 간 유사성 매우 낮지만, 하위 계층에서 저수준의 특징 학습 시 동일한 특징으로 학습될 가능성이 높으므로 초기 계층만 동결해 학습 진행
    • ex) (3) 소스 도메인과 타깃 도메인 유사, 데이터세트 적을 때
      • 도메인 간 유사성 높으면 → 특징 추출 방법으로 모델 학습 가능
      • 도메인 유사성이 높아도, 데이터세트가 충분히 많지 않기 때문에 상위 계층으로 가면서 특징이 점점 달라짐
      • 하위 계층 동결, 일부 상위 계층을 학습하는 방법으로 모델 구축
  • 데이터의 개수와 유사성에 따라 미세조정 전략, 특징 추출 사용
    • 미세조정 3번 케이스처럼 유사성이 높을 때 데이터가 많은 경우 아예 전체 모델을 학습할 수도 있고, 미세조정 전략을 사용하여 일부 상위 계층을 학습하는 방법을 사용할 수도 있음
방법 데이터 개수 유사성 합성곱 계층
특징 추출 적음 높음 학습x (Freeze)
미세 조정(1) 많음 낮음 학습
미세 조정(2) 적음 낮음 초기 계층 학습x (Freeze)
미세 조정(3) 적음, 많음 높음 하위 계층 Freeze, 상위 계층 학습