[논문리뷰] O2U-Net: A Simple Noisy Label Detection Approach for Deep Neural Networks
O2U-Net: A Simple Noisy Label Detection Approach for Deep Neural Networks (2019, CVPR)
Abstract
Hyperparameter만을 조절해서 overfitting과 underfitting(O2U)을 순환하게 만든다. 각 샘플이 loss는 저장되어서 normalize된 평균 loss가 높을 수록, noisy label일 확률이 높다. O2U-net은 active learning이나 다른 human annotation approaches들과 구분되는, noisy label으로 학습하는데 있어서 큰 유연성을 준다.
Introduction
현실적으로 높은 퀄리티의 레이블이 달린 데이터는 비용과 시간이 많이 든다. 그래서 많은 딥러닝 모델들은 노이즈가 있는 데이터를 기반으로 학습을 할 수밖에 없다.
또한 neural network가 training 샘플들을 모두 기억할 수 있는 능력(capability)이 있다면 noisy label에도 overfitting될 수 있다. 이는 neural network의 성능을 현저하게 떨어트린다.
Noisy label을 해결하는 두 가지 방법
1. unclean data에서도 잘 동작하는 noisy-robust model을 직접 훈련
2. training 전에 noisy label을 탐지하고 제거
첫 번째 noise-robust model은 주로 noisy label에 overfitting 되는 것을 막기 위해 regularization을 도입했다.
두 번째 noise cleaning은 potential noisy label들이 먼저 감지되고, 제거된 후 clean sample들이 모델로 입력되었다.
두 타입 모두 각자 방법에 대한 장점이 있지만, noise cleaning 방식이 산업에서 현실적인 사용에 대해 더 많은 장점을 가지고 있다. 그 이유는 다음과 같다.
방법 2 - noise cleaning이 더 좋은 이유
1. Clean Dataset: 데이터는 회사에사 가장 중요하고 비싼 자산이다. noisy label을 제거함으로서 얻은 clean data는 다른 용도로도 사용할 수 있다.
2. Human Annotations: noisy label detection과 active learning의 결합은 supervised learning에 더 큰 이득을 줄 수 있다. 데이터셋의 cleanness는 여러 단계를 거쳐 검증되어야 하기 때문에, noise cleaning으로 1차적으로 깨끗하게 만들고 active learning을 거친 후 human annotation을 하면 더 적은 인력이 들어간다.
3. Applicability: Noise label detection도 결국 noise-robust model에 이득을 줄 수 있다. 최근의 연구들은 noise-robust model을 만들기 위해 curriculum learning을 사용했다. Noisy label의 확률을 추정하면, curriculum이 샘플의 난이도를 모델링하는 데에 도움을 줄 수 있다.
이 논문에서는 supervised learning에서의 noisy label detection을 다룬다. 간단하지만 효율적인 방법으로 잘못 레이블링된 샘플을 판별한다.
Contribution은 다음과 같다.
- hyperparameter를 조절해서 overfitting ~ underfitting을 순환하게 만든다. 모든 샘플들의 평균 loss를 계산해서 mislabel된 샘플을 판별할 수 있다. Loss가 크면 noisy label이다.
Related Work
앞서 소개했던 Noise-cleaning-based 방법과 Noise-robust-model 방법을 추가적으로 설명한다.
1. Noise-Cleaning-based Approaches
- Koh and Liang이 어떤 샘플이 모델 훈련에 해로운지를 측정하는 influence function을 제안했다. 하지만 계산이 너무 많아서 적용하기는 힘들었다.
- Zhang이 적은 양의 신뢰 가능한 데이터로 outlier 샘플(=noisy label)을 탐지하고 어려운 트레이닝 셋의 버그들을 해결할 수 있었다. 하지만 이는 objective function에 대해서 강한 convex assumption을 요구해서 적용되기 힘들었다.
- Lee et al이 Clean-Net이라는 joint neural embedding network를 제안했다.
- 레이블 노이즈를 다루기 위해 다른 class로 지식을 전이하는 transfer learning. 하지만 사람이 하는 검증이 이 모델의 능력을 저하시켰다고 한다. <<..?
- Han et al의 Co-teaching: 두 deep network들이 동시에 학습된다. 각 네트워크는 상대의 네트워크가 어떤 샘플을 훈련에 사용할 지를 골라준다. 그리고 서로 noisy label을 탐지할 수 있도록 돕는다.
- 최근에는 curriculum learning이 사용되었다. : Guo et al의 CurriculumNet. 분포 밀도를 통해 복잡도에 순위를 매기고, 순위에 따라 데이터를 subsets로 나눈다. 그리고 subset들은 curriculum으로 구성되어 모델이 label noise를 점진적으로 이해할 수 있도록 학습시킨다.
- 비슷한 아이디어는 MentorNet으로, 잠재적인 noise label을 식별할 수 있는 모델이다. 그리고 Mentornet에서 얻은 data-driven curriculum을 StudentNet에 제공하여 상대적으로 깨끗한 샘플으로 학습할 수 있게 만든다.
2. Noise-Robust Models
- Correct label과 noisy label 사이에 변환을 예측하기 위해 추가적인 softmax layer에 의해 label noise가 모델링되었다.?
- Xiao et al은 이미지, truth label, noisy label, noise type 사이에 관계를 묘사하기 위한 probabilistic model을 제안했다. 이 모델은 적은, 확실한 clean label을 필요로 한다.
- Reed and Lee는 noisy label의 모델에 일관된 개념을 제안했다: Sample reconstruction error는 noise distribution을 예측하기 위한 일관적인 목표로서 적용되었다.
위 noise-trainsition-based 접근법들은 데이터의 노이즈 패턴을 발견하는 것이 목표이다.
지금까지의 noisy label을 다루는 이전 연구들은 특정 가정(noise 분포 추정)을 필요로 하거나 network를 위해 특별히 만들어진 loss function이(Co-teaching, MentorNet) 있어야 했다.
하지만 O2U-net은 deep network의 hyperparameter의 조정만 하면 된다.
The Proposed Model
O2U-Net의 목표: 모델이 스스로 noisy label을 탐지하는 것.
Potential noisy label들이 탐지되고 제거된 후 clean dataset만 사용해서 final classifier가 다시 훈련된다.
1. Intuition
Deep neural net의 훈련 프로세스에서 직관을 얻었다. 일반적으로 네트워크는 훈련을 진행하며 underfitting에서 overfitting상태로 바뀐다. Training의 초반에는 수렴 속도가 빠르다. 네트워크는 맞추기 쉬운 샘플에서부터 학습하기 시작하려고 한다. Gradient-based optimization에서, 이런 샘플들은 초반에 gradient computation에 더 큰 기여를 해서 loss가 빠르게 줄어든다. 반면에 어려운 샘플들은 훈련의 후반부쪽에 학습이 된다. >>이에 대한 증거?
훈련의 막바지에는 네트워크가 샘플 하나하나를 엄청난 파라미터를 통해 기억하고 overfit될 것이다. Label noise의 부정적인 영향은 주로 noisy label에 overfitting이 일어나며 생긴다.
훈련 과정을 관찰하며, noisy label들은 주로 훈련의 막바지에 "어려운" 샘플로써 학습/기억된다는 것을 발견했다.
학습 초반에는 clean sample이 더 잘 fit되기 때문에, noisy label의 loss보다 clean sample의 loss가 작았다. 학습 후반에는 clean, noisy 모두 네트워크에 기억되어서 두 loss를 분간할 수 없었다. 따라서, 훈련 과정동안 모든 샘플들의 loss의 변화를 추적하여 noisy label을 탐지할 수 있다. 하지만 이것은 일반적인 훈련 과정이기 때문에 underfitting에서 overfitting까지 한 번만 전환된다.
일단 noisy label이 기억되면, 그 loss는 빠르게 감소한다. 또한 noisy label에 언제 overfitting되는지도 알 수 없다. 따라서, 충분한 통계가 없기 때문에 모든 샘플에 대한 loss 추적은 안정적이지 않을 수 있다.
이를 해결하기 위해! 훈련 중 다수의 전환, 즉 다수의 underfitting->overfitting 을 제안한다.
어떻게? Cyclical learning rate로!
이 과정으로 얻어진 loss의 통계를 통해 noisy label들이 탐지될 수 있다. (Loss 클 수록 mislabeled일 확률 높다)
Curriculum learning을 베이스로 한 아이디어도 같은 intuition을 공유하고 있다. CL에서는 difficulty를 loss의 함수로 묘사했다. CL에서는 potential noisy label이 제거되지 않았는데, 그 이유는 noisy label과 정말 hard한 real label을 loss만으로 정확하게 구분할 수 없기 때문이라고 했다. -> 하지만 O2U-net에서는 제거했을 때 더 좋은 성능을 보였다고 한다.
CL과 O2U-net이 가정에 둔 것: Underfitting에서의 gradient computation은 clean sample의 기여가 크다.
따라서, noisy label의 비율과 분포도 매우 중요하다.
2. O2U-Net
훈련 초반에는 큰 lr(learning rate)으로 설정되었다가 점점 줄어들고, 다시 원래의 lr로 돌아간다. 이 과정은 충분한 loss 통계가 얻어질 때까지 반복된다. 아이디어는, 거의 최소로(=overfitting)으로 수렴했을 때 다시 큰 lr로 돌아가서 minimum에서 탈출한다는 것이다. 이 과정을 반복하며 모든 샘플에 대해 loss를 추적했다.
이 때 noisy label을 탐지하는 네트워크와 final classifier을 훈련시키는 네트워크가 같아야 한다. 이 네트워크는 ResNet, ImageNet, CNN 등 어떤 네트워크든 가능하다.
O2U-Net의 훈련은 다음 세 단계로 정리된다.
1. Pre-training: noisy label을 포함한 원 데이터셋으로 network를 학습한다. 여기서는 일반적인 상수 lr이 사용된다. validation acc가 안정될 때까지 훈련시킨다.
2. Cyclical Training: 1 훈련이 끝난 후 바로 이어서 cyclical learning rate를 적용해서 훈련을 이어나간다. Overfitting에서 underfitting으로의 전환을 더 쉽게 하기 위해서 더 작은 batch size를 선택했다. >>왜?
반복하며 모든 샘플의 loss들이 저장된다. 각 에포크마다 샘플의 평균 loss를 각 샘플의 loss에서 뺀다. -> 각 에포크마다 다른 loss scale을 normalize하기 위해서!
Cyclical training이 끝난 후, 각 샘플의 normalized loss들(에폭마다) 의 평균을 계산하고, loss들은 내림차순으로 정렬된다. 그리고 상위 k%의 샘플들이 noisy label이라고 간주되어 제거된다. k는 데이터에 대한 사전 지식으로 결정된다. 이런 사전 지식은 임의로 선택된 샘플들을 직접, 수동으로 사람이 검증함으로서 얻을 수 있다.
3. Training on Clean Data: 네트워크의 파라미터를 초기화시키고, clean dataset으로 다시 학습시킨다.
위 LR 식에서 r1은 최대 lr이고, r2는 최소 lr이다. t는 t th 에포크를 의미하며, c는 한 cyclical round의 총 에포크 수이다. r(t)는 t번째 에포크에서 적용되는 lr이다.
Illustration
훈련 단계의 두 번째인 cyclical training을 더 자세히 설명한다.
Resnet-101, CIFAR-100으로 image classifier를 학습시켰다.
1. Pretrain에는 20% noisy label을 가진 CIFAR-100을 사용했다.
2. Cyclical training
이 때, constant learning rate와 cyclical learning rate에서의 loss variation을 비교해 보았다. 아래 Fig2, Fig3 참고.
Fig3에 따르면 샘플의 loss들이 cyclical rate에 따라 달라졌다. Learning rate가 줄어듬에 따라서 네트워크가 minimum으로 수렴함을 알 수 있다.
3. Cyclical learning 이후 샘플들의 loss에 따라 순위가 결정된다.
논문에서는 "Clean sample, 상위 0-20 noisy sample, 20-40, 40-60%" 네 개의 그룹으로 sample을 나누었다. Fig2,3에서 각 그룹들의 평균 loss값도 확인할 수 있다.
constant learning rate도 매우 noisy한 top 0-20과 clean sample 사이에 구분을 할 수는 있었지만, 그 사이의 그룹의 판별은 힘들어보였다. noisy sample과 clean sample의 loss gap이 cyclical learning rate에서 더 컸고, 더 잘 판별할 수 있음을 의미한다.
한 번의 learning rate decay가 아닌, 다수 cyclical하게 진행함으로서 noisy sample의 순위를 더 정확하게 매길 수 있다.