ResNet

Degradation Problem

  • 레이어가 깊어질수록 성능이 떨어지는 현상이 발생 왜지? 아 optimization이 제대로 안 되니까 문제네!
  • 그러면 optimization할 양을 줄이기 위한 방법이 뭐 없을까? → 자기 자신을 한 번더 가져와서 optimization의 양을 줄여보자.(그걸 residual block이라고 부름)
  • 그래서 residual block을 추가했을때, 기존 plain한 구조에서는 오히려 depth가 깊어질수록 성능이 떨어지는 문제가 발생했는데, resnet구조로 바꾼 뒤에는 이를 해결하였다!
  • image classification 뿐만아니라 object detection에도 유용함

EfficientNet

CNN의 성능을 높일 수 있는 요소:depth?width?resolution?

학자들이 CNN 성능을 높이고자 아래 4가지 요소를 기준으로 성능 변화를 실험함

  1. baseline CNN 모델 선택
  2. CNN의 width(필터개수)를 늘린다.
  3. CNN의 depth(레이어개수)를 늘린다.
  4. CNN의 인풋이미지의 resolution(크기)를 늘린다.

근데 얘네를 늘린다고 그만큼 비례해서 성능이 좋아지는 것은 아님! 그렇다면 얘네를 독립적으로 조절해 실험하는것보다는 적절한 조합을 찾아서 compound scaling을 하자.

Compound scaling method

  • 3개의 요소를 조화롭게 scaling할 수 있다!

Fine-Tuning

fine-tuning(Transfer learning)

  • 이미 학습된 NN 파라미터를 새로운 task에 맞게 fine tuning한다!
  • ⇒ transfer learning

그니까 예시를 들어주자면, 호랑이를 분류하려고 만든 모델이 존재하고, 나는 고양이를 분류하고 싶을때, 처음부터 모델을 설계하는 것이 아닌 호랑이분류모델에 파라미터를 조정하여 고양이분류모델로 바꾸는 식

Fine-Tuning 과정

상황에 맞게 어디까지 fine-tuning 대상으로 삼을지를 결정해서 fine-tuning을 진행한다.

  1. 데이터셋이 크고, 기존 pre-trained model의 데이터셋과 다른 경우
  2. → 전체 모델 train 진행
  3. 데이터 셋이 크고, pre-trained model의 데이터셋과 유사한 경우
  4. → 몇 layer는 학습하고 나머지는 frozen
  5. 데이터셋이 작고, pre-trained model의 데이터셋과 다른 경우
  6. → 몇 layer는 학습하고 나머지는 frozen
  7. 데이터셋이 작고, pre-trained model의 데이터셋과 유사한 경우
  8. →앞에는 다 frozen하고 뒤의 일부분만 학

'ML,DL' 카테고리의 다른 글

RNN  (0) 2024.05.21
CNN  (0) 2024.05.21
코코자