Object detection의 Faster R-CNN, Libra R-CNN의 경우, backbone 모델에 따라 판독 성능이 차이나는 것을 확인할 수 있음
ResNet-50-FPN, ResNet-101-FPN, ResNeXt-101-FPN 순으로 정확도 향상
ImageNet 기반에서 1~2% 성능 차이가 나는 경우 실제 모델 적용 상황(targettask)에서도 2~3% 이상 성능 차이 발생
그림의 왼쪽, 오른쪽 column은 ImageNet Classification에서 1~2% 성능 차이가 나는 모델로, COCO2017에서 backbone으로 사용되었을 때 2~3% 성능 차이를 보였으나, 실제 detection 결과는 매우 차이남
더 좋은 Backbone을 사용한다면 더 높은 detection 수준을 가질 것으로 기대
Transfer learning: Pre-trained model을 가져와 사용하는 것
Fine tuning: 사전 학습된 가중치를, 사용 목적에 맞도록 업데이트하는 것
Object detection의 YOLO v1 모델을 가져와 transfer learning을 진행할 때, 추가된 layer의 가중치를 학습하기 위해 backbone의 가중치를 고정하고 미세 튜닝
사전 학습 모델을 자신의 프로젝트에 적합하도록 변형하기 위해, 기존 모델의Classifier을 적절한 Classifier로 대체함
1) 전체 모델 새로 학습 : 사전 학습된 모델의 구조를 사용하되, 데이터셋에 맞춰 새로 학습시키는 방법. 대규모 데이터셋과 우수한 컴퓨팅 능력이 필요함
2) Convolutional base의 일부만 고정하고, 나머지 계층과 Classifier 새로 학습 : 신경망의 가중치 파라미터 중 어느 정도까지 재학습할지 결정해야 함
● 낮은 라벨 계층: 모든 문제 해결에 있어 보편적인 특징 추출
● 높은 레벨 계층: 문제에 따라 달라지는 구체적인 특징 추출
데이터셋이 작은데 많은 레이어를 재학습하는 경우 Overfitting 주의
3) Convolutional base는 고정하고, Classifier만 새로 학습 : Convolutional base는 feature extractor로 계속 사용하고, Classifier만 재학습 시키는 방법. 컴퓨팅 연산이 부족하거나 데이터셋이 너무 작은 경우 및 해결하고자 하는 문제와 사전에 학습된 모델이 해결할 수 있는 문제가 매우 비슷한 경우 고려할 수 있음
필요한 라이브러리, class 선언
데이터 비율 체크
데이터 train과 validation을 위한 데이터 split
Custom Dataset 만들기
Data Augmentation, Data loader
data loader, loss function, device
model choose
이렇게 함수구현까지만 했고 나머지 부분은 내일 진행
알 수 없는 오류가 떠서 실행이 안되었다.
구글에 검색한 후 해결
코드 분석이 과제인데 너무너무넘누너무너무 너무 어렵다