본문 바로가기
Deep Learning

[DL] Transfer learning _ 기본 option

by ram_ 2023. 2. 16.

 

출처 https://medium.datadriveninvestor.com/introducing-transfer-learning-as-your-next-engine-to-drive-future-innovations-5e81a15bb567

전이학습 (transfer learning)

: 잘 학습된 모델의 weight를 가져와서, 조금 수정 후 사용한다.

  이미지 세상에서 꽤 유용한 것으로 알려져 있다.

 

Freeze

: 가중치 고정

 

Trainable

: weight를 가져오지만 training 시킬 거고, 구조만 따로 사용한다.


 

data_transforms = {
    'train' : transforms.Compose([transforms.Resize([64,64]),
                                 transforms.RandomHorizontalFlip(), transforms.RandomVerticalFlip(),
                                 transforms.RandomCrop(52), transforms.ToTensor(),
                                 transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ]),
                   
    'val' : transforms.Compose([transforms.Resize([64,64]),
                                transforms.RandomCrop(52), transforms.ToTensor(), 
                                transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])])
}

RandomHorizontalFlip, RandomVerticalFlip

: 기하학적 증강이라고 부른다. 이미지의 수가 많지 않다면, argmentation(증강)을 하게 된다. 

  이미지의 수가 충분하더라도 주로 과적합 방지용으로 사용한다.

  단, 좌우 순서가 중요하거나 이미지를 랜덤하게 돌리면 안될 경우 조심해야 한다. (ex 숫자 6과 9의 이미지)

 

RandomCrop

: 사진의 아무곳이나 crop한다. 기본값이 52이다

 

Normalize

: []안의 숫자들은 RGB 색상값이다.

  0~1사이로 minmaxScaling이 되어있다고 본다면, 평균값이 어느것으로 지정할 것인가에 대한 내용이다. 

  첫번째 list는 평균, 그 뒤의 list는 표준편차이다. 이를 normalize 시킨다.

  보통, 색상분포 histogram을 찾아야한다. normalize를 해두면 효과가 있다고 알려져 있다.

  색상에 대한 학습 능력이 올라간다.

'Deep Learning' 카테고리의 다른 글

[DL] t-SNE  (0) 2023.02.19
[DL] AutoEncoder. Latent Vector  (0) 2023.02.19
[DL] options in DeepLearning ( Transfer learning)  (0) 2023.02.16
[DL] Deep Learning Scratch  (0) 2023.02.13
[DL] CNN  (0) 2023.02.08