데이터중심 AI강좌: 데이터세트 구축 및 효율적인 데이터 학습 방법
이미지 인식 모델을 학습시킬 때 데이터양이 중요한 요소 중 하나임을 소개했습니다. 이는 일반적인 다운스트림 태스크 학습과 이후 설명할 사전학습 모두에 해당됩니다. 특히 모델의 크기가 클수록, 충분한 데이터양이 더욱 중요한 요소로 작용합니다.
그러나, 이미지 데이터를 수집하고 이에 대해 어노테이션을 수행하는 비용은 데이터세트의 종류에 따라 엄청날 수 있습니다. 예를 들어, ImageNet처럼 수백만건 규모로 다양한 다운스트림 태스크에 대응할 데잍터를 수집하는 것은 현실적으로 어려운 일입니다.
이번에는 제한된 데이터로 모델을 견고하게 학습시키기 위한 기법으로 데이터 확장(Data Augmentation)기술과 데이터확장이나 시뮬레이션을 활용해 어노테이션이 포함된 데이터를 생성하는 기술 및 학습방법에 대해 설명합니다. 물론 이 2가지 기술 모두 강력한 도구이지만 단점도 존재한다는 것을 염두해두고 읽어주시기 바랍니다.
이미지 인식 모델을 학습할 때 데이터 확장(Data Augmentation)은 매우 중요한 역할을 합니다. 이미 수집된 이미지를 그대로 학습하는 것과 비교해, 적절한 데이터확장을 적용하면 정확도가 크게 향상될 수 있습니다. 특히, 대규모 모델을 학습할 때 데이터 확장을 전혀 적용하지 않는 경우는 거의 없으며 과적합이 일어나기 쉬운 ViT같은 모델에서는 그 효과가 더욱 두드러집니다.
데이터 확장은 단순히 데이터의 양을 늘리는데 그치지 않고, 이미지에 발생할 수 있는 미세한 변형에 대해 견고한 인식을 실현한다는 측면에서도 중요합니다. 이번에는 일반적인 데이터 확장 기법을 소개하고, 그 응용사례와 장점, 적용시 주의사항등을 논의합니다. 설명에 사용한 예시와 용어는 아래 깃허브 오픈소스를 사용하였으며 이 파이썬 패키지는 다양한 이미지에 대한 데이터 확장을 간단히 적용할 수 있는 기능을 제공합니다.
관련 GitHub 리파지토리: https://github.com/aleju/imgaug
① 기본적인 데이터확장 기법
위 그림은 대표적인 데이터확장 예시입니다. 가장 널리 알려진 데이터 확장 기법으로는 Horizontal Flip, Crop, Pad, Resizing등이 있습니다.
Horizontal Flip: 이미지를 수평방향으로 뒤집는 작업입니다. 이미지 내 콘텐츠는 그대로 유지하면서, 실제 데이터의 양을 2배로 늘릴 수 있기 때문에 널리 사용되는 데이터 확장기법입니다.
Crop: 이미지 내부에서 특정 너비와 높이를 가진 영역을 잘라내는 작업입니다. 이렇게 Crop한 이미지를 학습에 사용하면, 물체 일부만 잘려 나온 상황에 대해서도 모델이 견고한 인식을 할 수 있게 도와줍니다.
Pad: 이미지를 일정 크기로 맞출 때, 남는 공간을 특정값(예: 0, 평균값)으로 채우는 작업입니다. Crop등으로 인해 이미지 크기가 변하면, 이미지 인식모델에 입력하기 위해 다시 크기를 통일해야 하므로 자주 사용됩니다.
Resizing: 이미지를 축속하거나 확대하는 작업입니다. Pad와 마찬가지로 이미지 크기를 맞추는 용도로 쓰이며, 이미지의 종횡비(가로세율 비율)까지 변형할 수 있어 물체크기에 대한 모델의 견고성을 높이는 효과를 기대할 수 있습니다.
이러한 기법들은 이미지 인식에서 가장 기초적인 데이터 확장 방법이지만 적용시 '데이터 확장 작업이 이미지가 가진 본래 콘텐츠를 훼손하지는 않는가?'를 주의해야 합니다. 예를 들어, 위 그림에서 Crop을 적용했을 때, 쥐가 전혀 보이지 않는 부분만 잘려나간다면, 이 데이터 확장이 적절한 것인지 의문이 생길 수 있습니다. 모델은 학습 시 해당 이미지를 보고도 '쥐'라고 인식하도록 파라미터를 업데이트하게 되므로, 부적절한 데이터 확장으로 인해 노이즈가 포함된 데이터가 생성될 위험이 있습니다.
모델 학습을 제대로 진행하려면, 적절한 데이터 확장 기법을 선택했는지, 데이터 확장에 쓰이는 하이퍼파라미터가 적절한지등을 고려해야 합니다.
② 픽셀값 변화를 통한 데이터 확장
위 그림은 픽셀값 변화를 통해 데이터를 확장하는 기법들의 예시를 보여줍니다.
Contrast: 이미지의 어두운 부분과 밝은 부분의 차이를 더욱 부각시킵니다.
Sharpness: 이미지의 엣지(윤곽)성분을 더욱 강조하는 작업을 적용합니다.
Brightness: 이미지의 밝기를 변화시킵니다. 예시에서는 전체적으로 밝아진 것을 확인할 수 있습니다.
Gaussian Noise: 픽셀단위(혹은 여러 픽셀 단위)로 랜덤한 값을 추가하여 노이즈를 삽입합니다.
Shot Noise: 픽셀값에 기반해 포아송분포에서 노이즈를 샘플링하는 방법입니다.
Motion Blur: 이미지 촬영시 발생하는 움직임에 의한 블러 효과를 모방합니다.
Defocus Blur: 이미지의 초점이 제대로 맞지 않은 듯한 효과를 적용합니다.
③ 고급 데이터 확장기법
지금까지 설명한 기법들은 이미지 처리 분야에서 오랫동안 사용되어 온 기본적인 데이터 확장방법들입니다. 이러한 기법들은 딥러닝이 등장한 초기부터 학습 데이터 양을 인위적으로 늘리기 위해 활용되어 왔습니다. 한편 고급 데이터 확장 기법으로는 Cutout, Mix-up, CutMix등이 있으며, 아래 그림의 예시가 제시되어 있습니다. 이 기법들은 단순해 보이지만 단독으로도 모델정확도를 크게 향상시킬 수 있어 주목받고 있습니다.
Cutout: 이미지의 일부 사각영역에 대해, 해당 영역의 픽셀값을 랜덤 또는 고정값으로 채워넣어 사각 영역내의 콘텐츠를 제거하는 방식입니다. 매우 단순한 데이터확장이지만 강력하여 최신 모델 학습 시에도 종종 사용되는 기법입니다. 이는 Neural Network의 정규화 기법인 Dropout과 유사한 개념으로 중간 특징량을 랜덤하게 0으로 만드는 것과 달리, 입력된 콘텐츠의 일부를 지워 정규화 효과를 기대할 수 있습니다. Neural Network는 학습하기 쉬운 특징부터 학습하는 Short-Cut Learning현상이 발생하기 쉬운데 예를 들어 개와 고양이를 분류할 때 귀나 눈의 모양만을 근거로 학습할 가능성이 있습니다. 그러나 다양한 입력 이미지에 대해 견고하게 분류를 수행하기 위해서는 여러 특징들을 학습하는 것이 필요합니다. Cutout과 같은 데이터 확장은 일부영역을 숨김으로써 모델이 다양한 특징을 기반으로 분류하도록 유도합니다.
지금까지 소개한 데이터 확장 기법들은 단일 이미지에 대해 변형을 가하는 방식이며, 이미지에 대한 라벨은 변형 전과 동일하게 사용됩니다.
Mix-up: 두 이미지의 픽셀값을 선형 결합하고, 해당 이미지의 라벨도 one-hot라벨 공간에서 선형으로 결합하여 사용하는 기법입니다. 이 데이터 확장 기법은 매우 강력한 도구로 알려져 있으며, ViT와 같은 모델학습에도 활용되고 있습니다. 입력 이미지 x와 이에 대응하는 one-hot라벨 y가 주어졌을 때, 두 이미지를 다음과 같이 선형결합을 합니다.
여기서,
는 혼합비율을 나타냅니다. 이렇게 결합된 이미지 x를 모델에 입력하고 최적화할 손실함수로는
를 사용합니다. 여기서 L(h(x), y)는 모델출력 h(x)와 라벨 y사이의 크로스 엔트로피 손실을 의미합니다. 이 손실을 최소화하기 위해서는 혼합된 두 이미지에 포함된 클래스뿐만 아니라, 혼합비율 λ까지도 반양해야 하므로, 단순히 L(h(x), y)만을 최소화하는 것과는 차이가 있음을 알 수 있습니다.
Mix-up의 장점은 테스트 데이터에 대한 정확도 향상에 그치지 않습니다. 예를 들어, 분류 모델을 속이기 위해 생성된 적대적 샘플에 대한 견고성이 향상된다는 보고도 있습니다. Mix-up을 사용하면 학습 데이터에 대해 모델의 과적합을 방지할 수 있습니다. 또한, 클래스 분류와 같은 예측 결과에 대해 모델이 얼마나 확신(confidence)을 가지는지를 평가하는 것은 의료영상진단등 응용 분야에서 매우 중요한 기능이며, 일반적으로 Softmax층의 스코어를 활용해 확신도를 계산합니다. Mix-up은 Softmax함수 출력 스코어가 예측 확신도를 보다 잘 표현하도록 하고, 학습시 사용되지 않은 데이터에 대해서는 낮은 확신도 예측을 내기 쉽도록 한다는 보고도 있습니다.
CutMix: CutOut과 Mix-up을 결합한 데이터 확장 기법입니다. 위 그림에 나타난바와 같이, Mix-up이 두 이미지를 전체적으로 선형결합하는 반면, CutMix는 이미지 전체를 더하는 대신, 한 이미지 내의 특정 사각 영역에 다른 이미지의 해당 영역을 잘라붙여 두 이미지를 결합합니다. 잘라 붙일 영역은 랜덤하게 결정됩니다. 또한, 예측 라벨 y는 잘라붙여진 이미지 영역의 크기에 따라 결정되며, Mix-up과 유사하게 손실이 계산됩니다. 데이터 확장에 대한 자세한 내용은 Sangdoo등 논문을 참조하시기 바합니다. CutMix를 학습에 활용하면, 이미지 내에 존재하는 2가지 콘ㅌ텐츠를 동시에 인식하고, 잘라붙여진 영역의 크기를 고려하는 능력을 향상시킬 수 있습니다. 이러한 이유로 CutMix를 사용하여 사전학습한 모델은 이미지 분류뿐만 아니라 물체검출등 다양한 태스크에서 Mix-up등의 데이터 확장기법보다 더 우수한 성능을 보인다는 보고가 있습니다.
④ 데이터확장을 수행할 때 주의할 점
대부분의 이미지 인식 태스크에서는 '데이터 확장은 반드시 수행해야 한다'는 공통된 이해가 있습니다. 하지만, 데이터확장은 무턱대고 적용할 문제가 아니며, 특히 3가지 요소에 대해 주의가 필요합니다. 이 3가지 요소는 별도로 고려하기 어렵지만, 데이터 확장이 제대로 작동하지 않을 경우 참고할 지침이 될 수 있습니다.
첫번째, 데이터확장이 이미지 외관을 과도하게 변화시키지 않는가?
특히 다운스트림 태스크 학습에서 데이터 확장이 과도하게 적용되면 테스트 시 제공되는 이미지와 크게 달라질 가능성이 있습니다. 예를 들어, 학습 데이터가 노이즈가 많은 이미지들로만 구성될 경우, 테스트시 노이즈가 없는 이미지를 보면 정확도가 떨어질 수 있습니다. 이는 도메인 시프트(domain shift)현상으로 학습 데이터와 테스트 데이터의 특성이 다름에 따라 발생하는 정확도 저하를 의미합니다.
예를 들어, 꽃 종류를 분류하는 모델 학습시 색상 정보가 매우 중요하지만, 앞서 설명한 색상 변화를 과도하게 적용하면 모델이 색상정보를 분류에 활용하지 못하게 되어 정확도가 낮아질 수 있습니다, 'MixUp이나 CutMix는 이미지 외관을 크게 변경하는 것 같은데 문제가 없을까?'라는 의견도 있을 수 있습니다. 물론 Mix-up과 CutMix도 만능 데이터 확장 기법은 아니지만, 이들 기법에는 데이터 확장의 강조를 제어할 하이퍼파라미터가 존재합니다. 아래 표에서 제시된 것처럼 이 값에 따라 이미지 외관이 원본 이미지에 가깝게 유지될 수 있습니다. 따라서 이러한 하이퍼파라미터를 적절히 조절함으로써 데이터 확장이 과도해지는 것을 방지할 수 있습니다.
두번째, 데이터세트의 양과 모델 크기의 관계
ViT처럼 소량의 데이터에 대해 과적합이 발생하기 쉬운 모델의 경우, 데이터를 늘리는 것이 기본적인 대응 반안입니다. 그러나, 이 방안이 항상 유효한 것은 아닙니다. 표현능력이 제한된 소형모델에 무턱대고 데이터 확장을 적용하면, 원래 이미지에 대한 학습이 충분히 이루어지지 않을 가능성이 있습니다. 이미 학습 데이터가 다양하고 충분히 준비되어 있으며, 학습하는 모델이 CNN등 비교적 소형인 경우에는 데이터 확장을 과도하게 적용하는 것을 피해야 할수도 있습니다. 일부 연구에서는 데이터 확장이 적용된 데이터와 적용되지 않은 데이터 모두에 대해 높은 정확도를 내기 어려움을 보고하고 있으며, 이는 분류모델의 견고함(robustness)를 측정하는 연구에서 자주 언습됩니다. ResNet과 같은 모델에서도 이 현상이 보고되고 있습니다.
세번째, 데이터확장이 이미지에 부여된 맵정보와 상충하지 않는가?
Crop을 적용할 경우, 이미지의 카테고리를 식별할 수 없는 영역만 잘라낼 위험이 있습니다. 또한, 이미지와 설명문 페어로 학습하는 경우, 이미지를 수평반전시키면 '개 오른쪽에 고양이가 앉아있다'는 설명문과 상품하는 입력 이미지가 생성될 수 있습니다.
이러한 문제들을 방지하기 위해서는 하이퍼파라미터 및 데이터 확장 기법을 적절히 선택해야 하며, 아래에서 설명할 자동으로 데이터 확장기법을 선택하는 방법이 제안되고 있습니다.
AutoAugment 실험결과
⑤ 데이터 확장 기법 탐색 방법
AutoAugment등의 기법은 'Validation데이터에서 정확도를 최대화하는 데이터 확장 조합이 무엇인가?'를 탐색합니다. Validation 데이터의 정확도를 참고하여 데이터 확장방법을 탐색함으로써 앞서 언급한 문제들이 발생하는 것을 방지하고, 높은 정확도의 모델 구축을 실현합니다. AutoAugment에서는 16종류의 데이터 확장기법에 대해 각각 10단계 확장 강도를 설정하고, 각 데이터 확장을 적용할 확률을 11단계의 값으로 표현합니다. 이를 하나의 데이터 확장정책으로 정의하고 총 5가지 정책을 탐색합니다. 그 결과, 탐색공간은 엄청나게 커져 약
가지 경우의 수가 됩니다. 이 방식을 강화학습을 통해 탐색하고, 탐색된 정책을 이용해 모델을 학습합니다.
위 표에는 분류결과의 예시가 제시되어 있습니다. 이 결과를 통해, 예를 들어 Cutout과 같이 학습 데이터 양에 따라 분류 정확도를 떨어뜨리는 데이터 확장이 존재함을 확인할 수 있습니다. (SVHN 결과 참고) 반면에, AutoAugment를 활용하여 확장방법을 탐색하면, 그러한 데이터세트에 대해서도 적절한 확장방법을 선택하여 정확도를 향상시킬 수 있음을 알 수 있습니다. 또한, 학습 샘플수가 적은 경우에는 탐색기반 데이터확장이 더욱 유익하다는 것이 드러났습니다.
그러나, AutoAugment의 단점은 탐색공간이 매우 방대하여 데이터 확장정책을 결정하는데 많은 비용이 든다는 것입니다. 이러한 단점을 극복하기 위해 제안된 것이 RandAugment입니다. RandAugment의 특징은 탐색공간을 대폭 축소하면서도 데이터 확장을 통해 얻을 수 있는 이미지 다양성을 보장하여, 보다 빠르게 데이터 확장 방법을 탐색할수 있도록 한 것입니다.
아래 그림에서는 RandAugment에 따른 강도별 데이터 확장 예시가 제시됩니다. 구체적으로 기본으로 사용하는 K개의 데이터 확장기법 중에서 랜덤으로 N개의 확장을 선택하여 이를 연속적으로 이미지에 적용합니다. 각 데이터 확장의 강도는 모두 동일하게 M으로 정합니다. 그 결과, 탐색해야 할 파라미터는 M과 N 2가지가 됩니다.
AutoAugment가 데이터 확장의 강도와 적용확률을 각 확장마다 하이퍼파라미터로 설정했던 것에 비해, RandAugment는 매우 단순화되어 있습니다. 탐색 공간이 매우 좁아 RandAugment에서는 그리드 탐색을 사용하여 M과 N의 값을 탐색합니다. 논문에서는 ImageNet, CIFAR, SVHN등 이미지 분류 데이터세트와 물체검출 데이터세트에 대해 검증을 진행했으며, AutoAugment와 거의 동일한 정확도를 보였습니다.
이미지 인식 모델을 학습시킬 때는 데이터 확장 외에도 다양한 하이퍼파라미터가 존재하기 때문에, 데이터 확장 탐색에 과도한 리소스를 할당하기보다는 단순하면서도 효과가 보장되는 데이터 확장기법을 선택하는 것이 비용절감에 도움이 되는 경우가 많습니다.
⑥ 데이터확장을 통한 모델 견고함 보장
데이터 확장의 가장 큰 장점 중 하나는 도메인변화에 대해 모델의 견고함(robustness)을 높일 수 있다는 점입니다. 예를 들어, 이미지 인식모델은 입력 이미지에 소량의 노이즈만 추가되어도 인식 정확도가 크게 떨어지는 것으로 알려져 있습니다. 이는 모델의 분류정확도를 악화시키기 위해 디자인된 적대적 샘플(adversarial samples)뿐만 아니라, 이전에 제시했던 데이터확장, 이미지타일의 변화, 물체의 자세변화에 대해서도 보고된 문제입니다. 다양한 환경에서도 견고하게 인식하는 이미지 인식모델이 요구되는 여러 애플리케이션에서 데이터 확장을 기반으로 한 여러 방법들이 이러한 문제를 해결하기 위해 제안되고 있습니다.
모델의 견고함을 향상시키는 대표적인 기법중 하나인 AugMix를 소개합니다. 이 기법은 아래 그림에 나타난바와 같이, 데이터 확장을 적용한 이미지에 대한 분류 정확도 향상을 목표로 합니다. 앞서 언급한 바와 같이 노이즈가 없는 깔끔한 이미지에 대한 정확도와 노이즈가 포함된 이미지에 대한 정확도를 동시에 높이는 것은 어려운 문제입니다. 보통 깔끔한 이미지에 대해 높은 정확도를 보이는 모델은 노이즈가 있는 이미지에 취약하고 반대로 노이즈에 강한 모델은 깔끔한 이미지에 대한 정확도가 낮아지는 경향이 있습니다.
AugMix는 고급 데이터 확장 기법과 확장된 이미지에 대해 새로운 학습 라벨을 도입하여, 두 경우 모두 높은 정확도를 달성할 수 있는 모델을 만들어 냅니다. 구체적으로 AugMix는 다음과 같은 장점을 제공합니다.
단일 이미지에 대해 다양한 데이터 확장 요소를 동시에 적용할 수 있습니다.
원본이미지와 결합하여 원래 콘텐츠가 과도하게 손실되지 않도록 합니다.
이와 같이 생서오딘 이미지와 클래스 라벨을 이용해 학습하는 것도 가능하지만, AugMix는 해당 이미지를 모델 출력의 부드러움(smoothness)을 보장하는데 활용하여 정확도를 향상시킵니다. 구체적으로 한 학습 데이터(예:
)로부터 위 데이터 확장기법을 사용해 2개의 이미지
를 생성하고, 이들에 대응하는 모델의 Softmax출력
를 얻은 후, 이들 사이의 관계를 이용하여 모델을 최적화합니다.
각각의 P가 일치하도록 하는 손실함수를 도입합니다. (여기서는
에 대해서도 클래스 분류 손실을 계산합니다. M과 각각의 P가 일치하기 위해서는 모델이 데이터 확장에 대해 불변한 출력을 반환해야 하며, 이러한 특성이 모델의 견고함(robustness)으로 이어진다고 볼 수 있습니다. 또한 M을 P에 대한 지도라벨로 간주할 수도 있는데 이때 M이 소프트(soft)라벨로 표현되는 점도 정확도 향상의 원인 중 하나로 생각됩니다. 일반적인 one-hot라벨은 하드(hard)라벨이라고도 하며, 특정 클래스에 확률1, 다른 클래스에 0을 할당할 때 손실이 최소화됩니다. 반면에 소프트라벨은 다른 클래스에도 일정확률을 확률을 할당할 수 있도록 허용합니다. MixUp의 경우에도 두 클래스에 대해 0이 아닌 값을 라벨에 부여하는데 이것 역시 소프트라벨의 일종입니다. 이와 같이 소프트 라벨 데이터 확장된 샘플에 부여하는 것도 정확도 향상의 한 요인으로 작용합니다.
또한, 논문에서는 다양한 데이터 조합에 대한 검증을 수행했으며 , 여기서 설명한 방법이 가장 우수한 것으로 나타났습니다. 아래 표에는 CIFAR-10에 대한 실험결과가 제시되어 있습니다. CIFAR-10 데이터세트에 대해 다양한 강도의 여러 확장 기법을 적용하여 평가한 결과, AugMix가 모든 모델에서 가장 높은 정확도를 향상시켰으며, AutoAugment와 같은 방법 역시 정확도 향상에 기여함을 확인할 수 있습니다. 이러한 결과는 실제 응용에서도 매우 유용한 지식이라고 할 수 있습니다.
다양한 머신러닝 모델에서 중요한 것은 '정확하게 어노테이션된 데이터를 대량으로 확보하는 것'입니다. 이 조건이 충족되면 고정밀도의 모델 구축이 기대됩니다. 그러나, 정확한 어노테이션을 수행하는 것과 대량의 데이터를 호가보하는 것은 반드시 쉬운 일만은 아닙니다. 이러한 문제를 해결하기 위해 인위적으로 데이터를 생성하는 기술이 활용되고 있습니다. 이번에는 시물레이션 환경을 활용하여 데이터를 생성하는 방법과 데이터 확장기법을 통해 의사적으로 데이터를 만들어내는 방법의 예시를 설명합니다.
① 시뮬레이션 환경을 활용한 데이터 생성
시뮬레이션 환경은 '데이터를 생성하는 프로세스가 완전히 알려진 환경'으로 해석할 수 있습니다. 이런 환경에서 생성된 데이터는 생성과정이 명확하기 때문에 어노테이션을 완벽하게 수행할 수 있으며, 파라미터를 변화시켜 대량의 데이터를 생성하는 것도 가능합니다.
시뮬레이션을 이용한 모델 구축 사례로는 자율주행을 위한 시뮬레이션 데이터가 가장 유명합니다. 시뮬레이터를 활용하면 다양한 상황을 재현하ㅏ여 차량제어에 필요한 데이터를 얻을 수 있습니다. 시뮬레이터에서 얻을 수 있는 센서정보 중 하나가 RGB이미지이며 해당 이미지에 대응하는 물체등에 대한 어노테이션을 자동으로 생성할 수 있습니다.
위 그림은 시뮬레이터로부터 얻은 이미지와 그에 대응하여 자동 생성된 어노테이션 예시를 보여줍니다. 대표적인 오픈소스 시뮬레이터로 CARLA가 있으며, SYNTHIA, GTA5에서는 시뮬레이터에서 랜더링된 이미지와 그에 대응하는 세그먼테이션 마스크등을 공개하고 있습니다. 이러한 이미지는 수만건 단위로 제공됩니다.
비슷한 시기 또는 그 이전에 공개된 Cityscape, KITTI등의 데이터세트가 수천장 이하 규모임을 감안하ㅏ면 시뮬레이터로부터 데이터를 생성하는 방식의 장점을 알 수 있습니다. 또한 시뮬레이션을 통해 생성된 세그먼테이션 마스크는 매우 정밀하고 정확도가 높습니다. 예를 들어, Cityscape에서는 1장의 이미지를 어노테이션하는데 평균 1.5시간 이상이 소요된다는 점을 고려하면, 시뮬레이션을 통해 고정밀 어노테이션 데이터를 즉시 얻을 수 있다는 것은 큰 장점입니다.
한편, 시뮬레이션 데이터 활용에는 다음과 같은 단점도 있습니다. 현실세계와 유사한 시뮬레이션 환경을 구축하는데 높은 비용이 든다는 것입니다. 현실세계 이미지의 다양성과 사실감을 보장하려면 상당한 비용이 소요됩니다. 시뮬레이션 환경상의 건물이나 물체의 3D모델은 대부분 수작업으로 정의되며, 다양성을 높이기 위해서는 인적 자원이 투입되어야 합니다. 또한 실제 세계의 조명상태, 촬영된 물체, 카메라자세(포즈)등 요소를 세밀하게 고려하여 실제 이미지에 가깝도록 만드는 작업에도 막대한 비용이 든다는 점을 염두에 두어야 합니다.
시뮬레이션을 활용한 학습기법은 어노테이션 비용이 막대하거나, 정확한 어노테이션이 어려운 상황에서 자주 고려됩니다. 그중 하나가 3차원 인체 자세 추정(3D human pose estimation) 태스크입니다. 이는 RGB이미니나 비디어를 입력받아, 사람의 자세를 3차원 정보로 인식하는 문제입니다. 2D 이미지나 비디어를 수집하는 것은 비교적 용이하지만, 3D정보를 포함한 정확한 라벨링(어노테이션)은 매우 어렵습니다. 따라서 시뮬레이션 데이터를 활용한 학습이 제안되었습니다.
위 그림은 이러한 데이터의 예시 중 하나를 보여줍니다. 인체 3D 모델 데이터세트인 SURREAL에서 가져온 사람 3D 모델과 해당 이미지 데이터를 실제 영상 위에 합성하여 학습용 데이터를 생성한 사례입니다. SURREAL이 제공하는 3D 모델정보를 이용하면 합성된 이미지와 3D모델 자세를 통해 추정모델을 학습할 수 있습니다.
② 시뮬레이션 데이터의 문제점
자율주행을 갭발하는 대기업들은 현실세계를 정밀하게 모사한 시뮬레이션 환경을 구축하지만, 시뮬레이션 환경과 현실세계는 완전히 동일하지 않습니다. 실제로 시뮬레이션 환경에서만 모델을 학습하고, 이를 실제 데이터로 테스트하면, 실데이터로 학습했을 때보다 정확도가 크게 떨어집니다. 시뮬레이터 품질에도 좌우되지만, 이러한 문제는 도메인 갭(domain cap)문제로 불리며, 다양한 시뮬레이션 데이터와 실제 데이터 간 격차에 대한 연구가 이루어져 왔습니다.
개선책 중 하나는 실제 데이터를 어떤 형태로든 활용하여 시뮬레이션으로 생성된 어노테이션 데이터에 의존하면서도 실제 데이터에 대한 일반화 성능을 높이는 것입니다. 이 분야를 '도메인 적합(domain adaptation)'이라 부르며 여러 방법이 제안되어 왔습니다.
적대적 학습(Adversarial Learning)등을 활용하여 시뮬레이션 이미지를 실제 이미지와 유사한 스타일로 변화하는 기법
의사라벨(pseudo-label)을 사용해 라벨이 없는 실제 데이터를 활용하는 기법
또한, 가능한 적은 비용으로 생성된 데이터에 다양성을 부여하려는 시도도 있습니다. 예를 들어, 위에서 언급한 3D 인간 자체 추정 학습 데이터 생성시, 실제 이미지를 배경으로 잘라 붙여 배경의 다양성을 높여 현실 데이터에 대한 일반화성능을 개선하고자 합니다. 이러한 방법을 도메인 랜덤화(Domain Randomization)이라고도 부릅니다.
③ 수식기반 데이터생성으로 사전학습하기
인위적 데이터 생성방법들은 다운스트림 태스크와 유사한 환경을 만들어 다운스트림 태스크와 동일한 태스크를 학습하기 위한 목적이었습니다. 여기서 소개할 방법은 모델사전학습을 위한 데이터 생성방식으로 제안된 수식기반(수식드리븐) 데이터생성 기법입니다. 이 방법에서는 위 그림과 같이 수식을 토대로 프랙탈(fractal)이미지를 생성합니다. 파라미터에 따라 매우 다양한 형태의 물체가 생성되는 것을 확인할 수 있으며, 이러한 다양한 형태의 파라미터로 결정됩니다. 이때 이미지 생성에 사용된 파라미터를 기반으로 클래스를 결정하여 모델 사전 학습에 활용합니다.
이미지를 만드는 과정을 간단히 설명하면 다음 수식에 기반해 점열(point sequence)을 생성하고 이를 바탕으로 위 그림과 같은 형태의 이미지를 만들어 냅니다.
실제로는 xo이라는 점에서 시작하여, 점의 좌표를 사전 정의된 행렬과 벡터를 이용해 x1, x2를 순차적으로 생성합니다. 이때 행렬과 벡터를 정의하는 파라미터(ai, ei)에 따라 점들의 형상이 결정되므로 해당 파라미터를 기반으로 클래스를 설정하고 자동으로 레이블을 생성하는 방식입니다.
사전학습 후, CIFAR-10, ImageNet과 같은 다운스트림 데이터세트를 활용하여 모델을 파인튜닝하고 평가하는데 100만개 정도의 데이터로 학습된 모델이 ImageNet1K와 같은 실제 이미지 데이터로 학습한 모델과 비교해도 크게 뒤떨어지지 않은 성능을 보였습니다. 이처럼 복잡한 환경을 수작업으로 구축하지 않고도 자동으로 데이터를 생성할 수 있다는 점은 큰 장점이라고 할 수 있습니다.
④ 데이터 확장을 활용한 레이블된 데이터 확장기법
이전에 설명한 시뮬레이션 데이터는 인공적으로 이미지를 생성하여 모델학습에 활용하는 방법이었습니다. 하지만, 이런 방식으로 생성된 이미지는 실제 입력 이미지와 성질이 다를 가능성이 있다는 단점이 있습니다. 따라서 이번에는 실제 이미지를 활용하여 새로운 라벨 데이터를 생성하는 방법을 소개합니다.
CutPaste는 이상탐지(Anomaly Detection)태스크를 다루는 방법입니다. 이상탐지란, 입력 이미지를 정상과 이상을호 이진분류하는 태스크로 예를 들어 제조공정에서 제품의 결함여부를 감지하여 불량품을 걸러내는 자동화시스템에 적용될 수 있습니다.
하지만 이 문제를 해결하기 위해 모델을 학습하려면 이상(Anomaly)에 해당하는 데이터 샘플을 충분히 확보해야 하는데, 이는 현실적으로 매우 어렵습니다. 예를 들어, 공장에서 생산되는 제품 대부분은 정상 상태에서 결험(이상)데이터를 확보하는 것은 매우 제한적이기 때문입니다.
CutPaste는 이상 데이터가 부족한 문제를 해결하기 위해 기존 정상 데이터를변경하여 인위적인 이상 데이터를 생성하는 방법을 제안했습니다.
CutPaste의 데이터 생성방식 (위 그림 참조)
정상적인 이미지의 특정패치를 랜덤하게 잘라내어 해당 이미지를 다시 다른 위치에 붙이는 방식으로 이상데이터를 생성합니다.
원본 이미지는 '정상(라벨=0)', 변형된 이미지는 '이상(라벨=1)'로 설정하여 모델을 학습합니다.
CNN모델을 학습한 후, Gaussian Density Estimator(GDE)를 이용하여 이상탐지를 수행합니다.
GradCAM과 같은 기술을 활용하여 모델이 이상을 감지하는 근거를 시각화할 수 있습니다.
CutPaste의 성공은 패치단위로 잘라낸 영역을 다른 위치에 붙이는 단순한 방법ㅂ이 실제 이상(anomaly)데이터와 유사한 특징을 가질 수 있기 때문이라고 볼 수 있습니다.
CopyPaster는 CutPaste와 유사한 방식으로 기존 이미지에서 일부 영역을 잘라내어 다른 이미지에 붙ㅇ여넣는 방법을 활용합니다. CutPaste는 이상탐지를 위한 데이터 확장을 수행하지만, CopyPaste는 인스턴스 분할(isntance segmentation)을 기반으로 객체탐지(object detection)데이터를 확장하는 방식입니다.
CopyPaste의 데이터 생성방식 (아래 그림 참조)
객체가 포함된 영역을 인스턴스 세그먼테이션 마스크를 활용하여 분리한 후, 이를 다른 배경이미지에 붙여넣어 새로운 데이터를 생성합니다.
이 방식은 원본 이미지와 유사한 속성을 유지하면서도 새로운 학습 데이터를 생성할 수 있어, 데이터 부족 문제를 해결하는데 유용합니다.
실제로 COCO데이터세트의 10%만을 사용한 실험에서 모델 성능이 약 5포인트 개선되는 효과를 보였으며, 특히 데이터수가 적거나 특정 카텍로리에 데이터가 편중된 상황(Long-Tailed Object Detection)에서 더욱 효과적인 방법임이 입증되었습니다.
CutPaste는 비정상(이상) 데이터를 확보하기 어려운 경우, 기존 정상 데이터를 변형하여 이상데이터로 활용하는 방식으로 이상 탐지 모델을 효과적으로 학습할 수 있게 합니다.
CopyPaste는 객체탐지(Object Detection) 태스크에서 데이터 확장을 위해 사용되며 특히 적은 데이터세트에서도 강력한 성능향상을 제공하는 방법입니다.
기존 데이터세트를 변형하는 방식으로 데이터를 증강(Augmentation)할 수 있으며 인공지능 모델의 일반화 성능을 높이는데 중요한 역할을 합니다.
©2024-2025 GAEBAL AI, Hand-crafted & made with Damon Jaewoo Kim.
GAEBAL AI 개발사: https://gaebalai.com
AI 강의 및 개발, 컨설팅 문의: https://talk.naver.com/ct/w5umt5