ResNet
Degradation Problem
- 레이어가 깊어질수록 성능이 떨어지는 현상이 발생 왜지? 아 optimization이 제대로 안 되니까 문제네!
- 그러면 optimization할 양을 줄이기 위한 방법이 뭐 없을까? → 자기 자신을 한 번더 가져와서 optimization의 양을 줄여보자.(그걸 residual block이라고 부름)
- 그래서 residual block을 추가했을때, 기존 plain한 구조에서는 오히려 depth가 깊어질수록 성능이 떨어지는 문제가 발생했는데, resnet구조로 바꾼 뒤에는 이를 해결하였다!
- image classification 뿐만아니라 object detection에도 유용함
EfficientNet
CNN의 성능을 높일 수 있는 요소:depth?width?resolution?
학자들이 CNN 성능을 높이고자 아래 4가지 요소를 기준으로 성능 변화를 실험함
- baseline CNN 모델 선택
- CNN의 width(필터개수)를 늘린다.
- CNN의 depth(레이어개수)를 늘린다.
- 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을 진행한다.
- 데이터셋이 크고, 기존 pre-trained model의 데이터셋과 다른 경우
- → 전체 모델 train 진행
- 데이터 셋이 크고, pre-trained model의 데이터셋과 유사한 경우
- → 몇 layer는 학습하고 나머지는 frozen
- 데이터셋이 작고, pre-trained model의 데이터셋과 다른 경우
- → 몇 layer는 학습하고 나머지는 frozen
- 데이터셋이 작고, pre-trained model의 데이터셋과 유사한 경우
- →앞에는 다 frozen하고 뒤의 일부분만 학
ResNet
Degradation Problem
- 레이어가 깊어질수록 성능이 떨어지는 현상이 발생 왜지? 아 optimization이 제대로 안 되니까 문제네!
- 그러면 optimization할 양을 줄이기 위한 방법이 뭐 없을까? → 자기 자신을 한 번더 가져와서 optimization의 양을 줄여보자.(그걸 residual block이라고 부름)
- 그래서 residual block을 추가했을때, 기존 plain한 구조에서는 오히려 depth가 깊어질수록 성능이 떨어지는 문제가 발생했는데, resnet구조로 바꾼 뒤에는 이를 해결하였다!
- image classification 뿐만아니라 object detection에도 유용함
EfficientNet
CNN의 성능을 높일 수 있는 요소:depth?width?resolution?
학자들이 CNN 성능을 높이고자 아래 4가지 요소를 기준으로 성능 변화를 실험함
- baseline CNN 모델 선택
- CNN의 width(필터개수)를 늘린다.
- CNN의 depth(레이어개수)를 늘린다.
- 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을 진행한다.
- 데이터셋이 크고, 기존 pre-trained model의 데이터셋과 다른 경우
- → 전체 모델 train 진행
- 데이터 셋이 크고, pre-trained model의 데이터셋과 유사한 경우
- → 몇 layer는 학습하고 나머지는 frozen
- 데이터셋이 작고, pre-trained model의 데이터셋과 다른 경우
- → 몇 layer는 학습하고 나머지는 frozen
- 데이터셋이 작고, pre-trained model의 데이터셋과 유사한 경우
- →앞에는 다 frozen하고 뒤의 일부분만 학