반응형
사전에 학습된 네트워크를 사용하려면, 내가 가지고있는 새로운 데이터셋에 사용할 수 있는 네트워크의 구조적 제약이 있다.
예를 들면 사전에 학습된 네트워크로 부터 컨볼루션 레이어를 내 마음대로 제거할 수 없지만, 몇몇 변화들은 할 수 있다. 파라미터를 공유하고 있는 특성 때문에 다른 공간에서의 사이즈로된 이미지에 대해서 사전의 학습된 네트워크를 쉽게 돌릴 수 있다.
Convolutional Net의 weight들은 상대적으로 이미 좋은 상태이고, 그 위에 있는 새로운 선형 분류기는 랜덤 초기화로 부터 학습이 되어져야 하기 때문에 더 큰 보폭으로 search를 해야 최적화가 되기 쉽다.
- Learning rates. It’s common to use a smaller learning rate for ConvNet weights that are being fine-tuned, in comparison to the (randomly-initialized) weights for the new linear classifier that computes the class scores of your new dataset. This is because we expect that the ConvNet weights are relatively good, so we don’t wish to distort them too quickly and too much (especially while the new Linear Classifier above them is being trained from random initialization).
<Fine Tuning>
학습하고자 하는 모델의 파라미터값을 랜덤으로 초기화하는 대신에 ImageNet과 같은 데이터에서 학습된 모델의 파라미터 값으로 초기화하여 학습을 진행하는 것이다.
<Transfer Learning 두 가지 시나리오 >
1. 랜덤 초기화 대신 , imagenet 데이터셋으로 학습된 모델 같이 pretrained 된 네트워크를 사용하여 네트워크를 초기화한다.
2. 마지막 fully connected layer를 제외한 모든 weight를 고정시키고(freeze), 마지막 fully connected layer를 랜덤 weight로 새롭게 구성하고 그것만 학습시킨다. (지금 기존에 진행하고 있는 방법)
출처 :https://cs231n.github.io/transfer-learning/#tf
https://whereisend.tistory.com/262
반응형
'Deep learning > Studying' 카테고리의 다른 글
Tensorflow 2.0 prediction model.predict vs model( .. , training =False) 차이 (0) | 2021.10.22 |
---|---|
deep learning ai (0) | 2021.09.13 |
Tensorflow Weight Initializer (0) | 2021.09.10 |
Group Normalization vs Batch Normalization (0) | 2021.09.10 |
Batch Normalization(배치 정규화) (0) | 2021.09.10 |