- [18′ ICLR] mixup: BEYOND EMPIRICAL RISK MINIMIZATION
- [19′ ICML] Manifold Mixup : Better Representations by Interpolating Hidden States
- [19′ ICCV] CutMix : Regularization Strategy to Train Strong Classifiers with Localizable Features
- [20′ ICLR] AUGMIX: A SIMPLE DATA PROCESSING METHOD TO IMPROVE ROBUSTNESS AND UNCERTAINTY
- [21′ ICCV] DeepAugment : The Many Faces of Robustness: A Critical Analysis of Out-of-Distribution Generalization
1. 들어가며
딥러닝 모델의 성능을 향상시키기 위한 다양한 방법들이 연구되어 왔습니다. 특히, 데이터 증강은 모델의 일반화 성능을 향상시키는 데 큰 역할을 합니다. 그러나 기존의 데이터 증강 방법들은 여러 한계점을 가지고 있습니다. 이번 글에서는 그러한 기존 방법들의 문제점을 먼저 살펴보고, 이를 해결하기 위한 새로운 접근 방식인 ‘DeepAugment’에 대해 소개하려고 합니다.
먼저, DeepAugment에서 제시하는 7가지 가설에 대해 깊게 들여다볼 것입니다. 이 가설들은 모델의 robustness와 관련된 중요한 주제들을 다룹니다. 그리고 이를 검증하기 위해 사용된 세 가지 새로운 데이터셋, Imagenet-R, Street View StoreFronts, 그리고 DeepFashion Remixed에 대한 설명도 함께 진행됩니다. 이후, DeepAugment의 핵심 방법론에 대해 자세히 알아보며, 어떻게 학습된 모델의 내부 정보를 활용하여 이미지를 변형하는지에 대한 설명을 진행할 것입니다.
다양한 실험 결과를 통해 DeepAugment의 효과를 확인해볼 예정이며, 이 방법의 장점과 단점을 명확하게 이해하는 데 도움을 줄 것입니다. 마지막으로, DeepAugment의 큰 의의와 그 방법이 가져다줄 수 있는 변화에 대해 깊게 고민해보려고 합니다.
이 글을 통해, 딥러닝 모델의 robustness를 향상시키기 위한 새로운 방법론에 대한 깊은 이해를 얻을 수 있기를 바랍니다.
2. 기존 방법의 문제점
데이터 증강은 딥러닝 모델의 성능을 향상시키는 데 중요한 역할을 합니다. 특히, Mixup, CutMix, AugMix와 같은 방법들은 이미지 데이터에 다양한 변환을 적용하여 모델의 일반화 성능을 향상시키는 데 큰 도움을 주었습니다. 하지만 이러한 기존 방법들도 몇 가지 한계점을 가지고 있습니다.
첫 번째 문제점은 제한된 다양성입니다. 대부분의 데이터 증강 방법들은 이미지의 간단한 변환, 예를 들어 회전이나 확대/축소 등을 중심으로 합니다. 이러한 변환만으로는 실제 환경에서 발생할 수 있는 다양한 변화를 완전히 반영하기는 어렵습니다. 예를 들어, Mixup은 두 이미지를 선형적으로 혼합하는 방식을 사용하는데, 이는 실제 환경에서 발생하는 복잡한 변화를 충분히 반영하지 못할 수 있습니다.
두 번째 문제는 실제와의 괴리입니다. CutMix나 AugMix와 같은 방법들도 이미지의 일부를 잘라내거나 다양한 변환을 적용하는 방식을 사용합니다. 하지만 이러한 변환들이 항상 실제 환경에서의 이미지 변화를 정확하게 반영하는 것은 아닙니다. 특히, 과도한 변환은 모델이 비현실적인 패턴을 학습할 수 있게 만들어, 실제 환경에서의 성능 저하를 초래할 수 있습니다.
세 번째 문제점은 데이터의 본질적 특성 무시입니다. 기존의 데이터 증강 방법들은 이미지의 중요한 특성이나 패턴을 고려하지 않고 변환을 적용합니다. 이로 인해 중요한 정보가 손실될 수 있으며, 모델의 학습에 방해가 될 수 있습니다.
네 번째 문제점은 복잡한 환경 대응 부족입니다. 실제 환경에서는 다양한 요인들이 복합적으로 작용합니다. 예를 들어, 조명, 각도, 환경 요인 등이 이미지에 다양한 변화를 주게 됩니다. 하지만 Mixup이나 CutMix와 같은 방법들은 이러한 복잡한 환경 변화를 충분히 반영하지 못합니다.
따라서, 이러한 한계점들을 극복하기 위한 새로운 데이터 증강 방법이 필요합니다. DeepAugment는 이러한 문제점들을 해결하기 위해 제안된 방법 중 하나로, 학습된 모델의 내부 가중치를 조작하는 독창적인 방식을 사용하여 데이터의 다양성을 효과적으로 증가시키려고 합니다.
3. 제안 방법
위에서 설명한 기존 방법의 문제점들을 바탕으로 DeepAugment에서 제안하는 방법을 살펴보겠습니다.
3-1. 가설 검증
딥러닝 모델의 성능을 향상시키는 방법에 대한 연구는 끊임없이 진행되고 있습니다. 특히, 모델이 예상치 못한 입력이나 미세한 변화에도 안정적인 성능을 보이는 ‘Robustness’는 중요한 연구 주제 중 하나입니다. 지금까지 robustness를 향상시키기 위한 다양한 가설들이 제시되었는데, DeepAugment 논문에서는 이러한 여러 가설들에 대한 검증을 진행합니다. 이러한 가설은 크게 두가지로 분류되는데요. 첫 번째는 모델의 구조와 학습 방법에 관한 것이고, 두 번째는 모델의 특성에 관한 것입니다. 하나씩 자세히 살펴보겠습니다.
먼저, 모델의 구조와 학습 방법에 관련된 가설들을 살펴보겠습니다.
첫번째로, ‘Larger models’ 라는 가설입니다. 이는 큰 모델이 더 많은 파라미터를 가지고 있어 복잡한 패턴을 학습할 수 있으며, 이로 인해 예상치 못한 입력에 대해 더 안정적인 성능을 보일 것이라는 주장입니다.
두번째는 ‘Self Attention’에 관한 가설로, Self-attention 메커니즘은 입력 데이터의 다양한 부분에 주목하여 중요한 특징을 추출하므로 robustness에 도움을 줄 것이라는 주장입니다.
세번째, ‘Diverse data augmentation’에 관한 가설은, 다양한 데이터 증강 기법을 사용하면 모델이 다양한 상황에 대응할 수 있게 되어 robustness가 향상될 것이라는 주장입니다.
네번째로, ‘Pretraining’에 관한 가설은, 큰 데이터셋으로 사전 학습을 진행하면 모델이 다양한 데이터 패턴을 경험하게 되어 robustness가 향상될 것이라는 주장입니다.
다음으로, 모델의 특성과 관련된 가설들을 살펴보겠습니다.
첫번째로, ‘Testure bias’에 관한 가설입니다. 이는 CNN 모델이 texture에 편향되어 있어서 robustness가 떨어진다는 주장으로, 모델이 주로 텍스처 정보에 집중하게 되어 다른 중요한 정보를 놓칠 수 있음을 의미합니다.
두번째는 ‘Only IID accuracy matters’에 관한 가설로, 어떤 방식을 사용하더라도 IID(Independent and Identically Distributed)와 OOD(Out-Of-Distribution) 간의 성능 차이는 일정하다는 주장입니다.
세번째로, ‘Synthetic -/> Natural’에 관한 가설은, 합성 데이터셋은 robustness 향상에 크게 도움이 되지 않는다는 주장으로, 실제 환경에서의 성능 향상을 위해서는 실제 데이터에 가까운 데이터셋이 필요하다는 것을 의미합니다.
3-2. 새로운 데이터셋
DeepAugment 논문에서는 딥러닝 모델의 robustness를 향상시키기 위한 새로운 접근법을 제안하며, 이를 검증하기 위해 세 가지 특별한 데이터셋을 소개합니다. 이 데이터셋들은 기존의 데이터셋과는 다르게, 더 다양한 시각적 변형과 실제 환경에서의 변화를 반영하여 모델의 성능을 평가하는 데 사용됩니다. 이번 챕터에서는 이 세 가지 데이터셋에 대해 자세히 알아보겠습니다.
3-2-1. Imagenet-R (Imagenet-Renditions)
Imagenet-R은 기존의 Imagenet 데이터셋을 아티스틱하게 변형하여 생성된 데이터셋입니다.
다양한 아티스틱 스타일, 텍스처, 그리고 렌더링 기법들이 적용되어 있습니다. 이러한 변형은 실제 세계에서 이미지가 가질 수 있는 다양한 스타일과 텍스처를 반영하며, 모델이 이러한 다양성에 얼마나 잘 대응하는지 평가하는 데 중요합니다. Robustness는 모델이 예상치 못한 입력 변화에도 안정적인 성능을 보이는 능력을 의미하는데, Imagenet-R을 통해 이러한 robustness를 직접 평가할 수 있습니다.
3-2-2. Street View StoreFronts (SVSF)
SVSF는 Google Street View에서 캡처된 상점 정면 이미지들로 구성되어 있습니다.
이 데이터셋은 실제 도로에서 캡처된 상점의 정면 이미지들을 포함하므로, 실제 환경에서의 다양한 조명, 각도, 그리고 환경 변화를 반영합니다. 실세계의 이미지는 항상 예상한대로 완벽하게 캡처되지 않기 때문에, SVSF를 사용하면 모델이 이러한 실제 환경의 변화에 얼마나 잘 대응하는지 평가할 수 있습니다. 이는 모델의 실제 환경에서의 robustness를 직접 측정하는 데 중요합니다.
3-2-3. DeepFashion Remixed
DeepFashion Remixed는 패션 관련 이미지의 다양성을 향상시킨 데이터셋입니다.
다양한 패션 아이템, 스타일, 그리고 포즈를 포함하여, 모델이 패션 관련 이미지의 다양성을 얼마나 잘 인식하고 분류하는지 평가하는 데 사용됩니다. 패션은 지속적으로 변화하는 분야이기 때문에, 모델이 이러한 다양성을 잘 처리할 수 있어야 합니다. DeepFashion Remixed를 사용하면, 모델이 패션의 다양성에 얼마나 robust하게 대응하는지 평가할 수 있습니다.
3-3. DeepAugment
이번에는 DeepAugment 논문의 하이라이트인 DeepAugment 방법을 알아보겠습니다. 딥러닝 모델을 학습할 때, 주로 입력 데이터와 그에 해당하는 정답 레이블을 사용합니다. 그러나 DeepAugment에서는 이보다 한 단계 더 나아가, 특정 문제들에 대해 이미 학습된 네트워크의 내부 가중치를 직접 조작하여 새로운 출력값을 생성하는 방법을 제안합니다.
DeepAugment는 다양한 문제들에 대해 학습된 모델을 사용합니다. 특히, auto encoder와 super resolution과 같은 복잡한 문제들에서 학습된 모델을 활용하여, 이미지의 미세한 특징들을 포착하게 됩니다. 이러한 모델들은 이미지의 디테일한 부분을 재구성하거나 고해상도로 변환하는 능력을 가지고 있기 때문에, DeepAugment에서의 가중치 변형에 적합합니다.
DeepAugment는 학습된 모델의 가중치에 다양한 변형을 적용합니다. 이러한 변형은 다음과 같은 방법들을 포함합니다:
- Randomly Zeroing: 특정 가중치를 무작위로 0으로 설정하여, 해당 가중치의 영향을 제거합니다.
- Negating: 가중치의 부호를 반전시켜, 해당 가중치의 영향을 반대로 만듭니다.
- Convolving: 가중치에 합성곱 연산을 적용하여, 가중치의 패턴을 변경합니다.
- Transposing: 가중치의 순서를 바꾸어, 네트워크의 연산 순서를 변경합니다.
- Activation Function: 다양한 활성화 함수를 적용하여, 네트워크의 출력을 변형합니다.
이러한 변형을 통해, 원래의 이미지에 존재하는 미묘한 특징이나 패턴을 더욱 잘 잡아내게 됩니다. DeepAugment의 이러한 접근법은 기존의 데이터 증강 방법과는 다르게, 모델 자체의 내부 구조를 활용하여 데이터의 다양성을 증가시키는 방법입니다.
위 그림은 DeepAugment 결과로 만들어진 이미지들인데요. 어떤가요? 기존 Augmentation과는 달리 입력 이미지를 조합한 수준이 아닌, 초현실적이고 몽환적으로 입력 이미지를 변환한 모습을 볼 수 있습니다.
4. 실험 결과
다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.
4-1. ImageNet-R
먼저 ImageNet-R 데이터셋에 대한 실험 결과입니다.
먼저 ImageNet-21K로 pretraining 한 결과 Gap이 크게 차이 나지 않는 걸로 보아 pretraining이 robustness에 도움이 된다고 결론 내리기 어렵습니다.
다음으로 Self-Attention module을 추가했더니 오히려 Gap이 더 커진 모습을 볼 수 있습니다. 다양한 data augmentation 기법을 적용했을 때는 Gap이 줄어드는 모습으로, robustness에 도움이 된다고 말할 수 있습니다.
ResNet-152를 사용한 결과 Gap이 크게 줄었으므로 더 큰 모델을 사용하는 것은 robustness에 도움이 된다고 말할 수 있습니다.
ImageNet으로 학습한 모델이 다른 rendition을 갖는 ImageNet-R에서는 크게 성능이 떨어지는 것으로 보아 CNN은 texture biased 되어 있다고 말할 수 있습니다.
어떤 방식을 사용하는지에 따라 IID / OOD Gap은 큰 차이가 나므로 IID accuracy만 중요하다는 가설은 틀렸다고 말할 수 있습니다.
Style transfer augmentation 이 Gap을 줄이는데 크게 도움이 되는 것으로 보아 합성 데이터셋은 robustness에 도움이 되지 않는다는 가설도 틀렸다고 말할 수 있습니다.
4-2. StreetView StoreFronts
다음은 SVSF 데이터셋에 대한 실험 결과입니다.
우선 speckle noise, style transfer, deepaugment, augmix 등의 다양한 data augmentation을 수행했음에도 불구하고 성능 변화가 크지 않은 모습을 볼 수 있습니다. 따라서 data augmentation의 효과가 제한적이라고 말할 수 있습니다. 특히 location이라는 변수에서 크게 성능이 하락하는 모습을 볼 수 있습니다. 이는 data augmentation 기법으로는 다른 지역의 상점 이미지 모습을 만들어낼 수 없기 때문으로 생각됩니다.
4-3. DeepFashion Remixed
다음은 DeepFashion Remixed 데이터셋에 대한 실험 결과입니다.
IID / OOD Gap이 크게 차이 나지 않고 동등한 모습을 볼 수 있습니다. 반면 larger models, self attention, diverse data augmentation, pretraining의 효과는 미비한 모습을 볼 수 있습니다.
4-4. ImageNet-C
다음은 ImageNet-C 데이터셋에 대한 실험 결과입니다.
DeepAugment + AugMix 방식을 사용하면 ImageNet-C 성능이 확연하게 좋아지는 모습을 볼 수 있습니다. 따라서 IID accuracy만 중요하다는 가설은 틀렸다고 말할 수 있습니다.
반면 larger models, self attention, diverse data augmentation, pretraining, texture bias에 대한 가설은 맞다고 할 수 있습니다.
저자들은 최종적으로 robustness는 classification accuracy처럼 scalar 값으로 측정, 정의할 수 있는 metric이 아니라고 결론 내립니다. 그보다는 multivariate 한 값이며, 따라서 많은 distribution shifts에 대해 동시에 평가해야 한다고 주장합니다.
5. 장단점
여기까지 DeepAugment의 제안 방법과 실험 결과를 살펴봤습니다. 이번에는 DeepAugment의 장단점을 정리해보겠습니다.
5-1. 장점
첫 번째 장점은 다양한 변형입니다. DeepAugment는 학습된 모델의 내부 가중치를 조작하여 이미지를 변형합니다. 이로 인해 기존 방법들보다 훨씬 다양한 변형을 생성할 수 있습니다.
두 번째 장점은 실제 환경에 가까운 변형입니다. 모델의 가중치를 조작함으로써 생성된 변형은 실제 환경에서 발생할 수 있는 변화를 더 잘 반영할 수 있습니다.
세 번째 장점은 모델의 일반화 성능 향상입니다. 다양한 변형을 통해 모델은 더욱 복잡한 패턴을 학습하게 되며, 이로 인해 일반화 성능이 향상됩니다.
네 번째 장점은 기존 데이터셋 활용입니다. DeepAugment는 기존의 데이터셋을 활용하여 새로운 변형을 생성합니다. 따라서 추가적인 데이터 수집이나 라벨링 작업이 필요 없습니다.
5-2. 단점
첫 번째 단점은 계산 복잡성 증가입니다. 모델의 가중치를 조작하는 과정은 계산적으로 복잡할 수 있습니다. 따라서, 학습 시간이 늘어날 수 있습니다.
두 번째 단점은 과적합의 위험입니다. 너무 많은 변형을 생성하게 되면 모델이 특정 변형에 과적합될 수 있습니다.
6. 의의
DeepAugment의 가장 큰 의의는 기존의 데이터 증강 방법들의 한계를 극복하고, 모델의 robustness를 향상시키기 위한 새로운 접근 방식을 제시한다는 것입니다. 특히, 학습된 모델의 내부 정보를 활용하여 이미지를 변형하는 독창적인 방식은 딥러닝 연구자들에게 새로운 연구 방향을 제시할 수 있습니다.
7. 마치며
딥러닝 분야에서 데이터 증강은 모델의 성능을 향상시키는 핵심적인 요소 중 하나입니다. 그러나 기존의 방법들은 여러 한계점을 가지고 있었고, 이를 극복하기 위한 다양한 시도들이 있었습니다. ‘DeepAugment’는 그러한 시도 중 하나로, 모델의 내부 정보를 활용하여 보다 효과적인 데이터 증강을 제안합니다. 이 방법을 통해 모델의 robustness가 향상되며, 다양한 실험 결과를 통해 그 효과를 확인할 수 있었습니다.
또한, DeepAugment에서 제시하는 새로운 데이터셋들은 기존 방법들의 한계를 더욱 명확하게 드러내주며, 이를 통해 모델의 robustness에 대한 깊은 이해를 얻을 수 있습니다. 이러한 접근 방식은 앞으로의 연구에서도 큰 영감을 줄 것이며, 다양한 분야에서의 적용 가능성이 기대됩니다.
이 글을 통해, DeepAugment와 관련된 다양한 내용을 소개하였습니다. 이 방법이 가져다 줄 수 있는 변화와 그 의미에 대해 깊게 고민해보았습니다. 앞으로도 이러한 연구와 방법론의 발전을 기대하며, 딥러닝 분야의 지속적인 성장을 기대합니다.