Deep learning/Studying

Random Initialization이 필요한 이유

비비이잉 2021. 9. 10. 15:22
반응형

사전에 학습된 네트워크를 사용하려면, 내가 가지고있는 새로운 데이터셋에 사용할 수 있는 네트워크의 구조적 제약이 있다.

예를 들면 사전에 학습된 네트워크로 부터 컨볼루션 레이어를 내 마음대로 제거할 수 없지만, 몇몇 변화들은 할 수 있다. 파라미터를 공유하고 있는 특성 때문에 다른 공간에서의 사이즈로된 이미지에 대해서 사전의 학습된 네트워크를 쉽게 돌릴 수 있다. 

 

 

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

 

CS231n Convolutional Neural Networks for Visual Recognition

(These notes are currently in draft form and under development) Table of Contents: Transfer Learning In practice, very few people train an entire Convolutional Network from scratch (with random initialization), because it is relatively rare to have a datas

cs231n.github.io

https://blog.lunit.io/2017/09/22/borrowing-treasures-from-the-wealthy-deep-transfer-learning-through-selective-joint-fine-tuning/

 

Borrowing Treasures from the Wealthy: Deep Transfer Learning Through Selective Joint Fine-Tuning

2017년 CVPR에서는 수많은 딥러닝 관련 논문들이 쏟아져 나왔습니다. 그 중에 학습 데이터가 부족한 상황에서 fine-tuning 성능을 끌어올릴 수 있는 방법을 제안한 논문이 있어 소개드리려고 합니다.

blog.lunit.io

https://whereisend.tistory.com/262

 

[Pytorch Tutorials] Image and Video - Transfer Learning for Computer Vision Tutorial

이번 튜토리얼에서는 transfer learning(전이학습)을 사용하여 image classification용 CNN을 어떻게 학습하는지를 배운다. transfer learning의 두 가지 주요 시나리오는 다음과 같다. Finetuning the convnet 랜..

whereisend.tistory.com

 

반응형