전이학습(Transfer Learning) 이란?

아현·2025년 2월 5일
1

AI

목록 보기
15/18

출처


1. 전이학습(Transfer Learning) 이란?


  • 위키 백과에서는 '한 분야의 문제를 해결하기 위해서 얻은 지식과 정보를 다른 문제를 푸는데 사용하는 방식'으로 정의

  • 이를 딥러닝의 분야에서는 '이미지 분류' 문제를 해결하는데 사용했던 네트워크(DNN;Deep Neural Network)를 다른 데이터셋 혹은 다른 문제(task)에 적용시켜 푸는 것을 의미합니다.

    • 특히나 기계의 시각적 이해를 목표로 하는 컴퓨터 비전의 영역에서 전이 학습으로 수행된 모델들이 높은 성능을 보이고 있어 가장 많이 사용되는 방법 중에 하나입니다.

    • 전이학습을 수행하지 않은 모델들보다 비교적 빠르고 정확한 정확도를 달성할 수 있는 것이죠. 어떻게 이런 것들이 가능할까요?

    • 바로 네트워크가 다양한 이미지의 보편적인 특징 혹은 피처(Feature)들을 학습했기 때문입니다.

  • 일반적으로 네트워크가 깊어질수록 서로 다른 종류의 피처들을 학습한다고 알려져 있는데 낮은 층에서 학습되는 피처를 low-level features, 깊은 층에서 학습되는 피처들은 high level features라고 부릅니다.

    • low-level feature의 예로는 이미지의 색이나 경계(edge) 등을 말할 수 있고 high level features는 이보다 더 심화된 객체의 패턴이나 형태를 의미합니다.

    • 그림을 보면 각각의 단계에서 이미지의 특징들을 추출하는 필터를 시각화한 그림입니다. 단계별로 서로 다른 형태를 띄고 있음을 알 수 있습니다.

      • low-level feature의 필터의 경우 색의 변화나 경계의 방향 등을 추출한다고 유추할 수 있다.

      • high-level feature는 동그라미가 반복되는 패턴이나 새의 부리 등의 이미지를 분류하는데 있어서 주요한 특징들을 학습한다고 말할 수 있다.

  • 네트워크가 이러한 특징을 학습하기 위해서는 대량의 데이터셋이 필요한데 가장 대표적으로 ImageNet을 들 수 있습니다.

    • ImageNet은 2010년~2017년까지 매해 열린 대회 ImageNet Large-Scale Visual Recognition (ILSVRC)을 위한 데이터셋으로 자동차나 고양이를 포함한 1000개의 클래스, 총 1400만개의 이미지로 구성되어 있습니다.

    • 해당 데이터셋을 가지고 이미지 분류를 수행한 모델들은 매년 뛰어난 성능을 보여주고 있는데 2015년 이후에는 사람보다 뛰어난 정확도를 가진 모델이 등장하였습니다.

      • 참고로 Russakovsky et al 에 따르면 사람의 이미지 분류 오류는 5.1%에 달합니다.

  • 2012년 AlexNet 이후에 VGG, GoogleNet, ResNet 등 주요 CNN 구조들은 전이 학습을 수행하는데 네트워크의 기저(base 또는 backbone)으로 사용되고 있습니다.

    • 논문을 살펴보면 ResNet을 기반으로 한 여러 모델을 찾아보실 수 있으실 겁니다.

    • ImageNet으로 학습시킨 CNN 구조는 정말 많이 사용되기 때문에 pytorch나 tensorflow 같은 딥러닝 프레임워크에서 API 저장되어 있어 간편하게 불러와서 사용하실 수 있습니다.

    • 이렇게 구현할 수 있는 모델의 목록은 공식 문서(tensorflow, keras, pytorch) 등을 통해 확인하실 수 있습니다.

    • 주요 CNN 구조인 GoogleNet과 ResNet에 대해서는 중요한 구조이니만큼 꼭 게시글을 확인해보시면 좋을 것 같습니다.



2. 사용방법


  • 전이학습을 위해서는 ImageNet과 같은 대량의 데이터셋으로 이미 학습이 되어있는 모델을 사용합니다.

    • 이를 '사전에 학습된 모델' 혹은 'pretrained model'이라고 부릅니다. 데이콘 대회에 참여하시면서 규정사항에 pretrained model을 사용할 수 있다/없다 등으로 접해본 용어일 수도 있겠네요.
  • 몇가지 경우에 대해서 pretrained 모델 외에 학습시키는 레이어의 양이 달라질 수 있습니다.

    • 만약 ImageNet과 비슷하지만 소량의 데이터셋을 가지고 있다면 ImageNet으로 학습시킨 CNN을 구조를 그대로 두고 뒷단에 분류를 위해 새로운 완전연결레이어(FC;Fully Connected Layer)를 붙여서 학습시키면 됩니다.

      • 만약 ImageNet과 비슷하지만 더 많은 데이터셋을 가지고 있다면 뒷단에 여러 FC레이어를 묶어서 학습시켜도 좋습니다.
    • 만약 내가 가진 데이터셋이 ImageNet과 다른 경우에는 어떨까요? 데이터가 많은 경우에 뒷단의 여러 FC 레이어를 묶어서 학습시키는 것이 충분할 것입니다.

      • 하지만 데이터가 적은 경우엔 pre-training이 효과적이지 않을 수 있습니다. 데이터 증식으로 데이터의 양을 늘려서 전체 네트워크를 학습시키는 등 다른 방법을 생각해야합니다.



3. 전이학습의 효과


  • 전이학습, 이론적으로는 알겠으나 실제로 효과가 있는 것이 맞나? 나는 그냥 기본 모델에서 학습시키면 되는데?라고 생각하실 수도 있습니다.

    • 이에 대한 답으로 2018년 FAIR(Facebook AI Research) 논문에서 실험을 통해 '전이학습이 학습 속도 면에서 효과가 있다'라는 것을 밝혀냅니다.

    • 동일한 조건에서 바닥부터 훈련시키는 것(train from the scratch)이 사전 학습된 모델을 사용하는 것보다 2~3배의 시간이 더 걸린다는 것을 보여주고 있습니다.

  • 아래 그림에서 랜덤으로 모델을 초기화를 시키는 것보다 사전 학습된 모델의 초기값을 사용하였을 때 더 빠르게 높은 정확도에 도달한다는 것을 보여주고 있습니다. 더 궁금하신 분들은 논문을 읽어보셔도 좋겠네요.



profile
For the sake of someone who studies computer science

0개의 댓글

관련 채용 정보