- [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. 들어가며
머신러닝 모델의 성능 향상을 위한 다양한 기법 중, Mixup은 데이터 증강 기법으로 널리 사용되고 있습니다. 그러나 기존의 Mixup 방법은 입력 레벨에서만 데이터를 혼합하는 한계를 가지고 있어, 모델의 일반화 성능을 완전히 발휘하지 못할 수 있습니다. 이러한 문제를 해결하기 위해, 이번 글에서는 Manifold Mixup에 대해 자세히 알아보겠습니다.
첫 번째 섹션에서는 기존 Mixup 방식의 한계를 깊게 탐구합니다. 여기에서는 왜 입력 레벨에서만의 혼합이 모델의 성능에 제한을 둘 수 있는지에 대한 설명이 포함되어 있습니다. 두 번째 섹션에서는 Manifold Mixup의 방법론을 상세히 살펴봅니다. 수식과 파이썬 코드를 통해 Mixup과 Manifold Mixup의 차이를 명확하게 이해할 수 있게 도와드립니다. 또한, 논문에서 제시된 실험 결과를 통해 Manifold Mixup의 다양한 효과를 설명합니다.
다양한 데이터셋에 대한 실험 결과를 통해 Manifold Mixup의 실질적인 효과를 검증합니다. 이 섹션에서는 Manifold Mixup이 어떻게 모델의 성능을 향상시키는지에 대한 실제 결과를 볼 수 있습니다. Manifold Mixup의 장단점을 고려하여, 이 기법이 실제 문제 해결에 얼마나 효과적인지 평가합니다.
마지막으로, Manifold Mixup의 중요성과 그것이 모델의 일반화 성능과 복잡한 패턴 학습 능력에 어떻게 기여하는지를 설명합니다. 이번 글을 통해, Manifold Mixup에 대한 깊은 이해를 얻고, 이 기법이 여러분의 모델 성능 향상에 어떻게 도움을 줄 수 있는지 알아보시길 바랍니다. 시작하겠습니다!
2. 기존 방법의 문제점
Manifold Mixup이 발표되기 전, 이미 Mixup 이라는 방식이 있었는데요. Mixup은 기존 ERM 방식의 한계를 극복하기 위해 제안되었습니다. 서로 다른 두 개의 x와 y를 Interpolation 하여 학습하는 방식인데요. Mixup은 ERM의 여러 한계를 개선했지만 여전히 몇 가지 한계를 갖고 있습니다.
대표적으로 두 가지 한계를 들 수 있는데요.
첫 번째 한계는 입력 레벨에서만 Mixup을 진행한다는 점입니다. 이는 입력 공간에서만 Smoothing을 진행한다는 의미인데요. 모델 입장에서 생각해보면 이러한 방법은 특정 특징에만 의존하게 되어 일반화 성능을 최대화 하는데에 방해가 될 수 있습니다.
두 번째 한계는 특징 공간에서의 Mixup이 없다는 점입니다. 첫 번째 한계와 맥락을 같이 하는 이야기인데요. 기존 Mixup 방법은 입력 레벨에서만 Mixup을 진행하고 특징 공간에서는 혼합을 고려하지 않습니다. 하지만 많은 데이터의 복잡한 구조는 특징 공간에서 더 잘 표현될 수 있죠. 따라서 이렇게 다양한 특징 공간상에서의 Mixup이 모델의 일반화 능력을 더욱 향상시킬 수 있습니다.
3. Manifold Mixup
이러한 Mixup의 한계에 초점을 맞춰 Manifold Mixup 방식을 이해해 보겠습니다.
3-1. 제안 방법
Manifold Mixup의 구현 방식은 간단합니다. Image Level Mixup을 그대로 Feature Level에 적용하면 됩니다.
위 그림은 Manifold Mixup의 수식을 표현한 그림입니다. g는 딥러닝 함수를 의미합니다. 따라서 g(x)를 Mixup 한다는 의미는 입력 x에 대해 특징 공간상에서 추출된 특징을 Mixup 한다는 의미입니다.
3-2. 파이썬 구현
이를 명확히 이해하기 위해서는 파이썬 코드로 직접 구현해 보는것이 정확한데요. Mixup과 Manifold Mixup을 파이썬 코드로 구현하여 그 차이를 이해해 보겠습니다.
먼저 Mixup의 파이썬 코드는 다음과 같습니다.
def mixup(alpha, data1, label1, data2, label2):
lam = np.random.beta(alpha, alpha)
mixed_data = lam * data1 + (1 - lam) * data2
mixed_label = lam * label1 + (1 - lam) * label2
return mixed_data, mixed_label
입력 데이터인 data1과 data2를 Interpolation 하여 mixed_data를 만드는 모습을 볼 수 있습니다.
반면 Manifold Mixup의 파이썬 코드는 다음과 같습니다.
def model(data, layers):
# 간단한 모델 예제
for layer in layers:
data = layer(data)
return data
def manifold_mixup(alpha, data1, data2, model, layer_index):
# 모델의 특정 레이어의 출력을 얻습니다.
output1 = model(data1, layers[:layer_index])
output2 = model(data2, layers[:layer_index])
# 출력을 선형적으로 결합합니다.
lam = np.random.beta(alpha, alpha)
mixed_output = lam * output1 + (1 - lam) * output2
return mixed_output
먼저 임의의 딥러닝 모델을 model 이라는 함수로 가정했습니다. 이렇게 모델에서 나오는 입력 data1, data2에 대한 Feature를 output1, output2 라고 표현했습니다. 이제 Manifold Mixup은 입력 데이터인 data1과 data2가 아닌, output1과 output2에 대해 Interpolation을 수행합니다. 이 부분이 Mixup과의 결정적인 차이입니다.
3-3. 효과
Manifold Mixup의 효과는 크게 세 가지 정리할 수 있습니다.
첫 번째 효과는 Decision Boundary를 Smooth 하게 만들어 준다는 것입니다. 위 그림의 b(manifold mixup)과 a(not manifold mixup) 그림을 비교해보면, 울퉁불퉁하게 Decision Boundary가 형성되어 있는 a에 비해 Smooth 한 Decision Boundary를 갖는 b의 모습을 볼 수 있습니다.
두 번째 효과는 Low Confidence Prediction 영역을 넓혀 준다는 것입니다. 위 그림의 e(manifold mixup)과 d(not manifold mixup) 그림을 비교해보면, 파란색과 빨간색으로 확연하게 구분되는 d에 비해 전 영역에 대해 Low Confidence Prediction을 하고 있는 e의 모습을 볼 수 있습니다.
세 번째 효과는 Representation Flattening입니다. 위 그림의 c, f를 보면 Manifold Mixup 한 Representation들은 Large Singular Value가 소수에만 집중되어 있는 모습을 볼 수 있습니다.
3-3. 다른 regularizer와의 비교
이제 다른 Regularizer들도 같은 효과를 내는지 비교해보겠습니다.
위 그림은 다양한 Regularizer들을 사용하여 입력 공간과 특징 공간의 데이터 분포를 비교한 그림입니다. 비교 Regularizer 들은 Weight Decay, Noise, Dropout, Batch-Norm, Input Mixup 방식입니다. 먼저 보았던 Manifold Mixup 방식에 비해 Decision Boundary Smoothing과 Broader Low Confidence Prediction 효과가 적은 모습을 볼 수 있습니다.
4. 실험 결과
다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.
4-1. Generalization on supervised learning
먼저 다양한 데이터셋에 대한 Image Classification 실험입니다.
4-1-1. CIFAR10 / CIFAR100 성능
CIFAR10, CIFAR100 데이터셋에 대한 실험 결과입니다.
모든 데이터셋에 대해 AdaMix, Input Mixup 방식보다 성능 개선폭이 큰 모습입니다.
4-1-2. SVHN 성능
다음은 SVHN 데이터셋에 대한 실험 결과입니다.
Input Mixup에 비해 성능 개선폭이 큰 모습입니다.
4-1-3. Tiny imagenet 성능
다음은 Tiny Imagenet 성능입니다.
다양한 𝛼에 대해 실험을 진행했을 때, 𝛼=0.2의 Manifold Mixup 방식이 가장 성능이 좋은 모습입니다.
4-1-4. Manifold mixup / input mixup 비교
다음은 CIFAR10 데이터셋에 대해 다양한 𝛼값에 대한 Manifold Mixup 방식과 Input Mixup 방식의 비교 실험입니다.
모든 𝛼에 대해 Manifold Mixup 방식이 Input Mixup 방식보다 좋은 성능을 보입니다.
4-2. Generalization to novel deformations
다음은 Rotation, Shearing, Rescale 같은 Deformation에 대한 Generalization 실험 결과입니다.
Zoom in을 제외하고 모든 Deformation에 대해 Manifold Mixup 방식이 Input Mixup 보다 강인한 모습을 보입니다.
4-3. Robustness to adversarial examples
다음은 Adversarial Example에 대한 Robustness 실험 결과입니다.
결과에 따르면 Manifold Mixup 방식은 Adversarial Example에 강건함을 더해주는 모습이지만 PGD처럼 강한 효과를 주지는 않습니다.
5. 장단점
여기까지 살펴본 Manifold Mixup의 장단점을 정리해보겠습니다.
5-1. 장점
첫 번째 장점은 Mixup 대비 더 나아진 일반화 능력입니다. Manifold Mixup은 중간 Feature를 혼합함으로써 모델이 더 복잡한 데이터 구조를 학습할 수 있게 돕습니다. 그 결과 모델은 더 나은 일반화 성능을 보입니다
두 번째 장점은 Robustness의 향상입니다. Manifold Mixup은 모델이 Noise나 작은 변화에 대해 더 강인하게 만들어줍니다. 이는 모델이 중간 Feature를 혼합하여 학습함으로써 다양한 특징을 학습할 수 있기 때문입니다.
세 번째 장점은 더 나은 데이터 특징을 학습한다는 점입니다. 중간 Feature를 혼합하여 학습함으로써 모델은 더 유용하고 일반적인 특징을 학습할 수 있습니다.
5-2. 단점
첫 번째 단점은 계산 복잡성 증가입니다. Manifold Mixup은 중간 Feature를 혼합해야 하므로, 학습 과정에서의 계산 복잡성이 증가하게 됩니다.
두 번째 단점은 하이퍼파라미터의 증가입니다. 이는 Mixup의 한계와 공통적인 부분인데요. Manifold Mixup은 Interplation 범위뿐만 아니라 몇 번째 Layer Feature를 혼합할 것인지도 선택해야 합니다. 이는 더 많은 하이퍼파라미터가 생긴다는 의미입니다. 이로 인해 개발 복잡성이 증가하게 됩니다.
6. 의의
그럼에도 불구하고 Manifold Mixup은 중요한 의의를 갖습니다. Manifold Mixup의 주요 의의는 모델의 일반화 성능을 향상시키는 것입니다. 이 방법은 모델이 더 복잡한 패턴과 구조를 학습할 수 있게 돕습니다. 또한, 이는 모델이 노이즈나 작은 변화에 대해 더 강인하게 만들어, 실제 세계의 다양한 시나리오에서 더 좋은 성능을 발휘할 수 있게 합니다. Manifold Mixup은 딥 러닝 모델의 특징 학습과 일반화에 대한 새로운 시각을 제공하며, 이는 더 나은 모델 설계와 훈련 방법론으로 이어질 수 있습니다.
7. 마치며
이 글을 통해 Manifold Mixup의 전반적인 개념과 그 효과에 대해 깊이 있게 탐구해보았습니다. 기존 Mixup 방식의 한계를 극복하며, 모델의 일반화 성능을 향상시키는 데 큰 도움을 제공하는 이 기법은 다양한 분야에서 활용될 수 있는 강력한 도구입니다.
우리는 Manifold Mixup의 수학적 배경부터 구현에 이르기까지 상세히 살펴보았습니다. 이를 통해 이 기법이 어떻게 작동하는지, 그리고 왜 효과적인지에 대한 근본적인 이해를 얻을 수 있었습니다. 또한, 다양한 데이터셋에서의 실험 결과를 통해 이론이 실제 성능 향상으로 어떻게 이어지는지를 확인할 수 있었습니다.
하지만 모든 기법에는 장단점이 존재합니다. Manifold Mixup도 예외는 아닙니다. 이 글에서는 이러한 장단점을 공정하게 평가하고, 어떤 상황에서 이 기법을 사용하는 것이 최선인지에 대해 고민해보았습니다.
마지막으로, Manifold Mixup의 의의를 다시 한번 강조하며 글을 마무리합니다. 이 기법은 모델을 더 강인하게 만들어, 복잡한 데이터 분포와 패턴을 더 잘 학습할 수 있게 해줍니다. 이로써, 여러분의 다양한 머신러닝 프로젝트에 새로운 비전을 제공할 수 있을 것입니다. Manifold Mixup에 대한 여러분의 깊은 이해와 활용이 미래의 머신러닝 모델 성능 향상에 크게 기여하기를 바랍니다. FFighting!!