Boostcamp - 221012 (2) Data augmentation

권규보·2022년 10월 12일
0

boostcamp

목록 보기
5/9

딥러닝은 데이터가 무조건 많이 필요함. 근데 모두 레이블 되어있는 거대 데이터를 얻기란 쉽지 않음. 가장 대표적인 딥러닝을 적용할 때의 어려움임. 이런 문제를 해결하기 위한 연구가 많이 진행되어 왔음.

데이터 부족 문제를 어떻게 완화할까?

1. Data augmentation

1.1 Learning representation of dataset

우리가 사용하는 데이터들은 biased 되어 있다. 사람이 보기 좋게 찍은 것이므로. dataset 자체에 bias가 있다.

이게 왜 문제일까?

우리가 실제로 취득할 수 있는 데이터는 매우 일부임. 실제 데이터에 비해 못 보는 것이 너무 많음. 일부 샘플링 된 데이터 때문에 많이 보지 못하고 있는데 심지어 biased 되어 있음.

학습데이터는 구축했는데 이것들이 밝은 영상의 데이터라면? 다크한 고양이는 제대로 인식하지 못할 것임. 모델의 문제라고 볼 수도 있겠지만 데이터가 현실을 충분히 담아내지 못한 문제라고 보는 것이 합당함.

그럼 이걸 조금이라도 채워보려는 몸부림이 data augmentation

1.2 Data augmentation

색깔 변환, 밝기 변환, 자르기, 돌리기 등등

1.3 Various data augmentation methods

  • rotate
  • crop
  • affine transformation
  • cutmix
  • RandAugment (여러가지 영상처리 기법을 조합)

2. Leveraging pre-trained information

데이터를 적게 쓰고도 좋은 성능을 발휘하기 위해서 다른 데이터 셋에서 학습된 정보를 어떻게 활용할지에 대해서 살펴보겠음.

2.1 Transfer learning

한 데이터 셋에서 배운 지식을 다른 데이터 셋에서 활용!

  1. pre trained 된 모델에서 Convolution layer는 남겨 놓고 FC layer 만 떼어내서 우리가 원하는 태스크를 수행하는 FC layer로 갈아 끼우고 Convolution layer는 weight를 freeze시킨 채로 새 FC layer만 학습 시킨다.

  2. 두번째 방법도 비슷함. 다른 점은 아예 Convolution layer를 freeze 시키는 것이 아니라 low learning rate로 학습을 시키고 FC layer는 high learning rate로 학습을 시키는 것임. 첫번째 방법은 데이터 수가 매우 적을 때 사용하고 그것보다 데이터가 조금 더 많다면 이 방법으로 fine tuning 시킬 수도 있음.

2.2 Knowledge distillation

Teacher Model -> Student Model

Teacher model은 pre-trained, Student Model은 Not trained
두 모델에 동일한 Input을 넣고 나온 Output에 대해서 KL div. Loss를 계산해서 역전파로 Student Model만 학습시킴.

이 과정 중에 Label을 전혀 사용하지 않음. Unsupervised라고 생각할 수도 있음. 아무 데이터나 사용할 수 있음.

Hard label vs Soft label

  • Hard label은 정답만 나타내는 one hot vector
  • Soft label은 정답의 확률이 나오는 것.

Softmax with temperature

  • 극단적으로 0과 1이 나오는 것보다는
profile
기록장

0개의 댓글