사전 학습 모델에서의 layer 변경에 대한 질문
안녕하세요 강사님, 강의 잘 보고 있습니다.
다름이 아니라, 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 될 때 어떻게 사용되고 변하는지를 잘 몰라서 이런 궁금증이 생긴 것 같습니다..
항상 좋은 강의 감사합니다!!
Answer 1
0
안녕하세요.
좋은 질문 입니다!
4가지로 말씀 드릴 수 있을 것 같아요:)
기존 모델을 불러와 일부 레이어만 변경 시키고 나머지를 동결 시키면 학습 수렴이 빠릅니다.
데이터와 학습 방법에 따라 다를 수 있지만 사전 학습 된 모델의 가중치가 다수 반영이 되어 있기 때문에 전체 랜덤 초기화 된 가중치로 학습을 시작할 경우 대비 정확도가 유사하거나 더 좋게 나올 수 있습니다. 따라서 사전 모델을 동결없이 혹은 일부만 동결하여 재학습하는 것은
가중치 초기화 관점에서 큰 의미가 있다고 할 수 있습니다.
사전 모델에서 사용된 데이터와 현재 데이터가 상이한 경우 모델 가중치 전이학습은 효과가 없을 수도 있습니다.
상황에 따라 말씀하신대로 가중치를 그대로 사용할 수도 있고 모델 구조만 사용할 수도 있습니다!
감사합니다.
딥러닝호형 드림
수업자료 제공 부탁드립니다.
0
95
2
코드가 어디에 있는지 모르겠습니다.
0
93
2
논문 구현
0
184
2
overfitting이 나는 이유가 궁금합니다.
1
169
2
분류 성능이 잘 안 나오는 이유
0
217
1
AutoEncoder 차원 질문
1
250
2
7강 폴더 만들
0
259
1
4-3강 cross-validation에서의 best model 선정 기준
0
447
1
regression 문제에 대한 결과 시각화
0
213
1
Loss function 관련하여 질문드립니다.
0
954
1
early stopping 코드 문의
0
325
1
예측 그래프
0
353
1
데이터 불균형
1
364
1
8강 전이 학습 질문
0
395
2
data의 gpu처리 질문
0
240
1
nn.Linear(1024, 10) 관련 질문드립니다.
0
287
1
학습과 평가시 Loss 함수가 다른 이유
0
249
1
전처리 관련해서 질문 있습니다.
0
224
1
데이터 엔지니어의 역량을 기르려면 어떻게 해야할까요?
0
933
2
역전파 내용 중 미분 관련 질문 드립니다
1
282
1
8강 전이학습에서 kernel size 관련 질문 드립니다.
1
956
1
이미지분류-합성곱신경망(CNN) 피쳐맵 질문입니다.
1
585
1
14강 데이터 불균형 RandomRotation
1
481
1
3장 데이터 불러오기에서 LinearTensor를 정의하는 이유가 궁금합니다.
1
324
1

