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

kjyn0124님의 프로필 이미지
kjyn0124

작성한 질문수

[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지

업데이트를 할까? 말까? - 모델 동결(Model Freezing)

사전 학습 모델에서의 layer 변경에 대한 질문

해결된 질문

작성

·

86

1

안녕하세요 강사님, 강의 잘 보고 있습니다.

다름이 아니라, pretrained model에서 강의에서와 같이

(1) model의 feature extraction 부분에서 Conv2d의 kernel_size를 줄이고 (2) model의 fully connected layer에서 출력 크기를 10으로 줄인 부분에서 의문이 있어서 글을 남기게 되었습니다.

(2)의 경우는 사실 fully connected layer가 복잡한 구조..?를 가지지는 않는다고 생각하여 다시 학습하는 데 별로 문제가 없다고 생각합니다.

하지만, (1)의 경우, 모델의 초반에서 아예 kernel size를 변경했고, 모델 프리징 강의에서 언급하신 바와 같이 그렇게 바꾸게 되면 임의의 랜덤 값으로 가중치가 초기화된다고 말씀하셨는데..! 그렇다면 Imagenet 모델로 사전 학습한 것이 의미가 있는건지 살짝 의문이 듭니다ㅠㅠ

사전 학습 모델의 목적이 그대로 웨이트를 사용한다는 것보다 모델의 구조를 가져온다는 것이라면 납득이 되지만, 사전 학습에서의 가중치가 transfer learning 될 때 어떻게 사용되고 변하는지를 잘 몰라서 이런 궁금증이 생긴 것 같습니다..

항상 좋은 강의 감사합니다!!

답변 1

0

딥러닝호형님의 프로필 이미지
딥러닝호형
지식공유자

안녕하세요.

좋은 질문 입니다!

4가지로 말씀 드릴 수 있을 것 같아요:)

  1. 기존 모델을 불러와 일부 레이어만 변경 시키고 나머지를 동결 시키면 학습 수렴이 빠릅니다.

  2. 데이터와 학습 방법에 따라 다를 수 있지만 사전 학습 된 모델의 가중치가 다수 반영이 되어 있기 때문에 전체 랜덤 초기화 된 가중치로 학습을 시작할 경우 대비 정확도가 유사하거나 더 좋게 나올 수 있습니다. 따라서 사전 모델을 동결없이 혹은 일부만 동결하여 재학습하는 것은

    가중치 초기화 관점에서 큰 의미가 있다고 할 수 있습니다.

  3. 사전 모델에서 사용된 데이터와 현재 데이터가 상이한 경우 모델 가중치 전이학습은 효과가 없을 수도 있습니다.

  4. 상황에 따라 말씀하신대로 가중치를 그대로 사용할 수도 있고 모델 구조만 사용할 수도 있습니다!

 

감사합니다.

 

딥러닝호형 드림

kjyn0124님의 프로필 이미지
kjyn0124

작성한 질문수

질문하기