https://youtu.be/FyJWsQ6UHck
https://youtu.be/ZdlPsVlaMbQ
- 만일 기존 모델을 사용하는데, 데이터셋이 달라지면 어떻게 될까?
- 같은 cat 라벨이지만 index가 다르고, apple은 없던 것이 생김.
- 만일 위와 같이 항공기 내에서 기종만 다르게 분류하고자 한다면 어떻게 될까?
- 데이터셋이 충분하지 않을 때 다른 모델을 가져와서 학습을 시켜서 사용할 수 있다.
- Transfer Learning이랑 기존 모델을 이용해서 fine-tuning 하는 것을 말함
- 목표로 하는 타겟이 아닌 큰 데이터셋으로 학습하는 것을 pre-training이라고 함. 그런 모델을 pretrained model이라고 함.
- 그렇게 학습된 모델을 자신이 목표로하는 데이터 class에 맞게 output layer 쪽만 조금 변형하는 것을 fine-tuning이라고 함.
- 이미 공개된 pre-trained 된 모델을 가져다가 fine-tuning 하여 원하는 모델을 만든다.
- ImageNet 예제
- 기존에 학습되어 있는 ImageNet 모델을 가져와서
- 데이터셋이 작다면 마지막 레이어만 고치고 나머지 레이어는 고정 시켜놓고 다시 학습 시킴
- 만일 데이터셋이 좀 많다면 뒷 부분의 몇 개의 레이어를 학습 시킴
- 이때 재학습하려는 layer는 초기화한 후 학습함. random initialize 한다.
- 앞부분은 이미지의 feature를 뽑는 단계이기 때문에 그대로 사용하고, 마지막 부분이 분류하는 부분이기 때문에 그 부분만 다시 학습 함