인프런 커뮤니티 질문&답변

modric e님의 프로필 이미지
modric e

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

pre-trained 학습 관련해서 질문이 있습니다!

작성

·

186

0

안녕하세요 

강의 잘 수강하고 있습니다!

pre-trained 학습 관련해서 궁금한 점이 있는데요,

학습을 좀 더 빠르게 하기 위해 pre-trained된 weight를 load해서 학습을 하는 것으로 알고있는데요

기존 20개 class를 구분하는 yolo model의 weight 를 load해서

새로운 1개 class를 추가적으로  구분해낼 수 있는 yolo model을 만들고자 한다면,

21개  class에 대해서 다시 학습 해줘야 하는게 맞나요?

아니면 20개에 대해 이미 학습된 weight을 갖고 있기 때문에 1개 class에 대해서 추가적인 학습만으로도 

21개 class에 대한 model을 만들 수 있는지 궁금합니다.

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

20개로 학습된 weight가 있다면 새로운 1개 추가 class의 경우에 기존 학습된 weight(pretrained 모델)를 그대로 적용하는게 좋습니다. 물론 21개 모델을 처음부터 학습해도 무방하지만, 만약 20개 모델이 매우 잘 최적화 되었다면 이를 사용하지 않을 이유가 없습니다.

pre-tranined 모델을 이용하여 재 학습을 하려는 이유는 이미 학습된 모델의 weight로 새로운 모델의 초기화 값으로 사용하기 위함입니다.그렇지 않으면 새로운 모델의 초기값을 Random하게 부여하는데 이 경우 최적화에 시간이 필요하거나 올바른 방향으로 최적화가 되지 않을 우려가 있습니다.

정확한 weight값일 필요는 없으므로 기존 20개의 pretrained 모델을 그대로 활용할 수 있습니다. 다만 맨 마지막 classification layer는 20개를 사용하지 않습니다. 대부분의 classification layer가 fully connected 입니다. 20개가 아니라 21개로 fix된 Fully connected가 되어야 하기에 20개로 pretrained 된 classification layer는 재활용하지 않습니다. 따라서 대부분의 pretrained 모델을 Feature Map layer만 재 활용합니다.

감사합니다.

modric e님의 프로필 이미지
modric e

작성한 질문수

질문하기