본문 바로가기

KHUDA 활동 아카이브/CV 기초

[CV] Data augmentation 및 Transfer learning

딥러닝 분야는 데이터의 다다익선이 분명한 분야이다.

 

따라서 한정된 실제 데이터를 최대한 많이 늘리는게 중요한데, 이 떄 사용되는게 data augmentation이다.

 



만약 밝은 사진으로만 저렇게 동물 사진을 학습했다고 하자. 이때 검은색 바탕의 고양이의 사진을 받으면 모델은 잘 추론하지 못할 수 있다.

 

 따라서 원래 데이터의 밝기를 낮추거나, 색깔을 변화시키는 등의 변화로 데이터셋을 늘려 모델을 더 잘 학습시킬 수 있다.



대표적인 augmentation 기법으로는 Crop, shear, brightness, perspective, rotate, affine 이 있다.

 

  • 밝기 변화

 

 

  • crop

 

  • affine







augmentation할 때에는 어떤거 쓸건지, 얼마나 세게 할건지 두개의 파라미터가 필요하다.



2. pre-trained 된 모델 활용하기



  • Transfer learning : pre-trained된 모델을 이용해 적은 비용으로 새 모델에게 학습시키는 것.

 

  • Approach 1

 

 

왼쪽이 pre-trained된 모델이다. 저기서 convolutaion layer만 놔두고, CL 부분만 우리에게 맞게 수정하는게 기본적인 transfer learning의 원리이다



  • Approa ch 2

 

CL 레이어를 바꾸는건 똑같지만, approach1 에서는 convolution layer는 안건드렸던 것과는 달리 여기서는 낮은 학습률로 weght를 건드린다. 성능적으로는 좀더 좋겠지만, 데이터는 더 많이 필요하다.




  • knowledge distillation

 

 

pre-trained 모델을 따라하게하는 방법이다. 레이블이 필요 없으므로 비지도 학습이라고도 볼 수 있다.



  • semi-supervised learning

 

기존 모델을 가지고 psudo-lable을 잔뜩 생성한다. (원래 레이블이 없던 데이터들)

 

기존 레이블이 있던 데이터와 pseudo lable을 가지고 새 모델을 학습시키는 방법이다. 



  • 실제로 최근에 가장 좋은 성능을 보이는 이미지 분류 모델은 위 semi-supervised learning을 적극 사용했다.  self-learning이라고 부른다. 과정은 아래와 같다.

 

semi-supervised learning 방법을 반복하는 것과 유사하다.