Priceless

[부스트코스] 컴퓨터 비전과 딥러닝 본문

ComputerVision

[부스트코스] 컴퓨터 비전과 딥러닝

Hyun__ 2023. 9. 20. 19:59

1. 데이터 부족 문제 완화

1-1. Data Augmentation (데이터 증강, 보강)

Data Augmentation이 필요한 이유

 

우리가 찍는 이미지는 대부분 보기 좋게 찍힌 사진일 것이다

하지만 실제로 카메라로 수집될 데이터는 우리가 아무렇게 찍을 수 있기 때문에 다를 것이다

 

데이터에 접목을 시키면

수집된 데이터셋을 보면 잘 가공된 데이터로 편항되어 있다

사람이 수집한 데이터는 실제 데이터는 실제로 얻을 수 있는 데이터 중에 극히 일부만 얻을 수 있다

실제 환경에서 새롭게 데이터를 수집한다면 전혀 다르게 나타나는 데이터를 수집할 것이다

아래 사진처럼 실제로 샘플에 없는 데이터는 이 세상에 정말 많다

 

 

 

동물을 분류하는 모델을 만든다고 가정했을 때

갈색 동물 사진의 데이터셋만 학습한 모델에 검은색 동물 사진을 입력한다면

올바르게 분류하지 못 할 것이다

모델 생성을 위해 사용한 데이터셋이 실제 데이터를 충분히 표현하지 못하기 때문이다

실제 데이터를 표현하기에는 데이터셋이 부족한 것이다

 

 

 

 

실제로 수많은 데이터를 수집할 수 없기 때문에

다른 방법을 통해 다른 데이터를 추가한다

 

기본적인 연산을 통해 데이터를 늘린다

회전, 자르기, 밝기 증가 등

 

Augmentation 기법 

밝기

밝기 조절인 경우 이미지 값을 단지 올리면 된다

0~255 범위 이내

Rotation

rotate 와 flip도 있다

Crop

Crop으로 자르면 된다

Affine Transformation

affine transformation

길이는 그대로 유지하는 튜닝

Cutmix

cutmix(advanced)

다른 사진의 일부를 자르고 붙여서 합성하는 방식

labeling 할 때도 비율을 반영해야 한다

물체의 위치를 정교하게 알 수 있고, 낮은 분포에서도 찾는 확률을 높일 수 있다

 

 

randAugment

수많은 aug 기법 중 랜덤하게 적용하여 성능이 높은 것을 찾는 방법

파라미터로 적용할 augment 기법들(policy)과, augment 강도를 받는다

1-2. Efficient Learning ( 효과적 학습)

Leveraging Pre-trained information (사전 학습된 정보 활용)

데이터가 부족한 상황에서

Tranfer Learning

적은 학습 능력으로도 새롭게 적용한다

한 데이터셋에서 학습한 지식을 다른 데이터 셋에도 적용하는 방법

연관된 새로운 테스크에 적용

 

첫 번째 방법

기존의 cnn 레이어를 그대로 두고 fc 레이어의 차원을 높여 가중치를 업데이트 하여 결과물의 차원을 높인다

데이터가 적을 때 유용하다

 

두 번째 방법

새로운 FC 레이어를 대체한다

conv 레이어는 학습률을 낮추고 새로운 레이어의 학습률을 높인다

업데이트가 느리다가 타깃이 바뀌면 업데이트가 빠르도록 한다

데이터가 많을 때 효과적이다

 

Knowledge Distillation

teacher-student learning

큰 모델에서 더 작은 모델에 사용하는 방식

모델 압축에 유리하다 

 

미리 학습된 모델을 준비하고

학습되지 않은 스튜던트 모델을 준비한다

동시에 학습을 진행한 후 측정하여 얻은 로스를 통해

스튜던트 모델을 업데이트 한다

 

업그레이드된 버전으로 로스를 두 개 설정하여

Distillation Loss: KLdiver를 통해 계산(soft label)

Student Loss: 크로스 엔트로피를 사용(hard label)

 

 

분류 모델에서 예측 값을 나타낼 때 원핫 레이블로 나타낸다

이를 하드레이블이라 한다

확실하지 않아 0과 1로 나눠지지 않는 레이블을 소프트 레이블이라 한다

 

softmax의 t를 통해 값의 차이를 더욱 크게 한다

 

Leveraging unlabeled dataset for training

Semi-supervised learning

 

supervised 는 레이블링이 필요하기 때문에 대규모로 구축하는 것에 한계가 있다

레이블 되지 않은 거대한 데이터에 일부 레이블된 데이터를 사용한다

 

label 데이터로 먼저 학습하여 모델 생성 후

언레이블 데이터의 수도 데이터를 가짜 레이블을 생성

 

이후 레이블 데이터와 합쳐서 다시 학습

 

 

self-training

이미지를 먼저 학습한 후 

300배의 언레이블 데이터를 수도 레이블 데이터로 변환하여 기존 학습 모델과 합쳐서 학습

스튜던트 모델 학습이 끝나면 새로운 모델을 날리고

스튜던트 모델이 계속 커진다

 

 


아래 사이트를 정리한 자료입니다

컴퓨터 비전의 모든 것 > 오리엔테이션 : 부스트코스 (boostcourse.org)

2강 컴퓨터 비전과 딥러닝 -  데이터 부족 문제 완화