GAP Transfer Learning (전이학습) / 주요 CNN 모델

강민정·2023년 7월 25일

Deep Learning

목록 보기
7/8
post-thumbnail

GAP Transfer Learning (전이학습)

GlobalAveragePooling (GAP)

  • 입력 Feature map의 채널별로 평균값을 추출하여 1 x 1 x channel 의 Feature map을 생성하는 Pooling
  • model.add(keras.layers.GlobalAveragePooling2D())
  • GAP는 네트워크를 효율적으로 만들고, 과적합(overfitting)을 줄이고, 모델의 일반화 능력을 향상시키는 데 도움이 됨
  • GAP는 가중치를 사용하지 않고 입력 특성의 평균을 계산하여 하나의 고정된 길이 벡터를 생성
  • 출력이 클래스 수에 관계없이 항상 고정된 길이의 벡터가 되기 때문에, 다양한 크기의 입력 이미지에 대해 일관된 방식으로 처리 가능
  • 파라미터 수가 줄어들어 모델이 더 가볍고 효율적으로 동작
  • 전이 학습(Transfer Learning)과 함께 자주 사용

Transfer learning (전이학습)

  • 대규모 데이터셋에서 사전에 학습된 모델을 사용하여 유용한 지식과 특징을 습득한 다음, 이를 새로운 작업에 적용하는 기법
  • Transfer Learning을 이용해 해결할 수 있는 요소
    1. 데이터 부족문제
      1. 새로운 작업에 충분한 양의 데이터가 없는 경우에도 전이학습을 통해 높은 성능을 얻을 수 있음
    2. 과다한 계산량
      1. 미리 학습된 모델의 Layer들을 사용하기 때문에 새로 학습하는 것 보다 적은 학습으로 좋은 결과를 얻을 수 있음
    3. 사전에 학습된 모델은 대규모 데이터셋에서 학습된 지식을 포착하고 있으며, 이러한 지식은 다른 작업에도 유용하게 적용될 수 있음
      1. 보통 Pretrained Model에서 Feature Extraction 부분을 사용
      2. Computer Vision 문제의 경우 Bottom 쪽의 Convolution Layer(Feature Extractor)들은 이미지에 나타나는 일반적인 특성을 추출하므로 다른 대상을 가지고 학습했다고 하더라도 재사용할 수 있음
  • 사용 방법
    1. 사전에 학습된 모델을 불러와서 새로운 작업에 맞게 미세 조정(fine-tuning)
      • 사전에 학습된 모델의 일부 또는 전체 가중치를 고정시키고, 새로운 데이터셋에서 추가 학습을 진행하는 과정
    2. 새로운 작업에 맞게 추가적인 레이어를 추가하여 모델을 보완하는 것

Fine-tuning(미세조정)

  1. 전체 모델을 전부 학습시킨다.
  2. Pretrained 모델 Bottom layer들(Input과 가까운 Layer들)은 고정시키고 Top layer의 일부를 재학습시킨다.
  3. Pretrained 모델 전체를 고정시키고 classifier layer들만 학습시킨다.

주요 CNN 모델

ILSVRC 대회

  • ILSVRC (ImageNet Large Scale Visual Recognition Challenge)
  • 2010년부터 2017년까지 진행된 컴퓨터 비전 분야의 경진 대회
  • ImageNet의 이미지 중에서 1000개 카테고리에 대한 약 120만 장의 학습용 이미지, 5만 장의 검증 이미지, 그리고 15만 장의 테스트 이미지를 활용하여 진행
  • ILSVRC에서 우승하거나 좋은 성적을 올린 모델들은 컴퓨터 비전 분야의 발전에 큰 역할을 해왔습니다. 특히 딥러닝 알고리즘이 발전하는 데에 기여하며, 이후 다양한 컴퓨터 비전 분야에서의 네트워크 모델의 백본으로 사용되고 있음

VGGNet (VGG16)

  • 2014년 ILSVRC 대회에서 준우승한 모델
  • Visual Geometry Group에서 제안한 딥러닝 기반의 컴퓨터 비전 네트워크로, 간결한 구조와 뛰어난 성능으로 인해 많은 관심을 받고 있는 모델
  • VGG16의 구조
    • 모든 레이어에서 동일한 크기의 3x3 필터와 1x1 크기의 max pooling을 사용
    • stride는 1로 고정
    • 컨볼루션 레이어를 여러 번 쌓아 올려 구성되며, 필터의 수를 64, 128, 256, 512 두 배씩 키워가며 레이어를 쌓음
    • 각각의 레이어에서 3x3 필터를 두 개를 연속으로 사용하여 5x5 필터 하나를 사용하는 것보다 더 적은 파라미터를 사용하여 좋은 성능
  • VGG16의 단점
    • 마지막에 분류를 위해 Fully Connected Layer 3개를 추가하여 파라미터 수가 많아진다는 점
    • 대부분이 Fully Connected Layer에 속하며, 이로 인해 모델의 크기가 커지고 계산량이 증가하는 문제가 발생

ResNet (Residual Networks)

  • ILSVRC 2015년 대회에서 우승을 차지한 모델
  • Microsoft Research에서 2015년에 제안된 딥러닝 네트워크로, "Residual Learning"이라는 개념을 도입하여 딥러닝 네트워크의 깊이에 따른 최적화 문제를 해결
  • 입력값 X를 통과시켜 얻은 출력값 H(X)를 실제 정답인 Y가 아닌 입력값 X와 합쳐서 최적화하는 것이 목표 → "잔차(Residual)"를 찾는 것
  • ResNet의 구조
    • Residual Block들을 쌓아서 네트워크를 구성
    • 레이어를 통과해서 나온 값이 입력값과 동일하게 만들기 위한 Identity Block을 사용하여 Gradient Vanishing 문제를 해결
    • 전달된 Gradient가 앞쪽 Layer로 그대로 전달되어 Gradient Vanishing 문제를 해결하고, 더 깊은 네트워크에서 더욱 풍부한 특성을 추출하여 성능을 향상
    • 더 깊은 네트워크를 구성함으로써 다양한 특성을 추출하게 되어 성능이 향상

MobileNet

  • 2017년에 Google에서 제안한 경량 딥러닝 네트워크
  • 스마트폰과 같은 저성능 환경에서 딥러닝을 실행하기 위해 다양한 기법들이 사용
  • 모델의 크기와 연산량을 줄여 스마트폰에서도 빠르고 효율적으로 딥러닝을 실행
  • 일반 Convolution Layer를 먼저 쌓고, 이후에 Depthwise Separable Convolution을 계속 쌓는 구조
  • MobileNet의 주요 기법
    1. Channel Reduction
      1. MobileNet은 입력 이미지의 채널 수를 줄이는 기법을 사용
      2. 불필요한 정보를 제거하여 모델의 크기를 줄이고 연산량을 감소
      3. 작은 모델 크기로도 효과적인 딥러닝 실행이 가능
    2. Distillation & Compression
      1. MobileNet은 큰 모델(Teacher Model)이 미리 학습한 정보를 작은 모델(Student Model)에 전달하여 성능을 향상시키는 기법을 사용
      2. 델 가지치기(Model Pruning) 등의 기법을 적용하여 네트워크의 크기를 줄이는 방법 사용
    3. Depthwise Separable Convolution
      1. MobileNet은 Depthwise Convolution과 Pointwise Convolution을 조합한 Depthwise Separable Convolution을 사용
      2. 연산량을 크게 줄이면서도 네트워크의 성능을 유지
      3. Depthwise Separable Convolution은 컴퓨팅 자원이 제한된 환경에서 효율적인 연산을 가능

0개의 댓글