• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

데이터 증강에 대하여

22.06.14 22:56 작성 조회수 206

0

선생님, 안녕하세요! 강의 잘 수강하고 있습니다.
이미지 데이터 증강에 대해 이해가 어려운 점이 있어 질문드립니다.
 
1. 데이터 증강은 원본 학습 데이터의 갯수 자체를 늘리는 것이 아니라, 학습 시마다 개별 이미지를 변형해서 학습을 수행하는 것이라고 하셨는데.. 원본 데이터 갯수를 늘리는 것과, 학습 시마다 변형시키는 것에 정확도 차이가 있을까요? 왜 꼭 학습 시마다 변형시키는 것인지 궁금합니다.
 
2. ImageDataGenerator 을 이용해 증강할 값의 범위(밝기, 회전각도 등) 만 지정하고 증강을 수행하면,
모든 경우의 수에 대해 학습시켜볼 수 없는 걸까요?
 
data_datagen = ImageDataGenerator(rescale=1./255,
rotation_range=20,
brightness_range = [0.7, 1.3],
width_shift_range=0.1,
height_shift_range=0.1,
zoom_range=0.2,
fill_mode='nearest')
예를 들어 위 코드에서 밝기 범위가 [0.7,1.3]인데,
원본 대비 각각 0.7,0.8,0.9,1.0,1.1,1.2,1.3배의 밝기를 가지는 이미지들에 대해 모두 학습시키고 싶은데.. 그것은 불가능한 걸까요?
 
 
감사합니다.
 
 
 
 

답변 1

답변을 작성해보세요.

0

안녕하십니까, 

1. 데이터 증강의 필요성은 이미지 모델의 학습에 필요한 이미지 데이터가 적어서 입니다.  때문에 학습 시 batch 수행시 마다 원본 이미지를 살짝 변형해서 여러 다양한 데이터를 모델이 학습하도록 유도하는 것입니다. 

일반적으로 데이터가 많다면 그러니까 특정 클래스당 수만장 이상이라면 데이터 증강의 필요성이 좀 작아질수는 있지만, 그렇다고 데이터 증강을 적용하지 않을 필요는 없습니다. 데이터 증강은 모델 성능 향상을 위해 중요한 요소이기 때문입니다. 

왜냐하면 데이터가 많아도 너무 비슷하거나 실제 테스트할 데이터와는 다르게 다양한 각도에서 사물을 판단하게 생성된 학습 데이터가 아니라면 성능이 좋지 않을 수 있습니다. 많은 이미지도 중요하지만 다양한 이미지 역시 중요합니다. 때문에 증강을 사용하지 않을 이유는 없습니다. 

2. 음, ImageDataGenerator로 Brightness를 특정 값으로 고정할 수는 없습니다. 이게 나중에 강의에서 말씀드릴 albumentations를 적용해도 어려운 부분이 있습니다. 

만약에 albumentations를 적용하시면 RandomBrightnessContrast같은 것을 고정되게 밝기 값으로 설치하고 이걸 OneOf를 사용하여 여러개 만들어서 시도해 볼수는 있겠지만, 되는지 까지는 테스트 해보지 않았습니다. 

감사합니다.