본문 바로가기
내 맘대로 읽는 논문 리뷰/CV

Early-Learning Regularization : ELRloss

by 동석2 2021. 3. 10.

Early-Learning Regularization Prevents Memorization of Noisy Labels

arxiv.org/pdf/2007.00151v2.pdf

 

Clothing1M dataset을 통해 공부 (해당 데이터셋 SOTA)

noisy label을 통해 학습 시

위의 1번 그래프와 같이, 잘못된 label이 섞인 경우 early learning의 잘못된 결과를 "memorize"함에 따라 학습이 제대로 안되게 된다. 이를 해결하기 위해 나온 논문.

 

Related Work

robust-loss, loss connection, sample selection 등등은 noisy label 학습을 위해 제안 된 것들. early learning을 통해 얻은 logit을 통해 label을 수정하는 것이 label correction인데, 여기엔 soft, hard, convex하게 바꾸는 등의 여러 방법이 혼재함.

이 논문은 soft label을 통해 regression term을 바꿈으로써 early learning에서의 문제를 해결하려 함.

 

Early learning phenomenon은 고차원에서 general하다.

논문의 3단락. 위와 같은 현상은 고차원의 이미지 분류 문제에선 어떠한 층, 하물며 linear 층 하나의 작은 모델이어도 general하게 발생한다고 주장한다.

자세한 증명은 논문 부록에 나오며, 간략히는 기존 CE term으로 계산한 gradient의 계수는 p[i] - y[i]인데, 위 Figure 1을 보면 correct label들의 경우 이 차이가 일찍이 굉장히 작아져(early learning), gradient가 wrong label에 비해 크기가 작아져 결국 wrong label들의 gradient 크기가 dominant해져, wrong label을 점차 memorize하여 그 방향으로 학습이 잘못 이뤄질 확률이 커진다는 이야기다.

기존 CE loss. 아래 gradient의 S는 sigmoid이다.

따라서 기존 CE loss에서 해결해야 하는 것은 다음과 같다.

(1) Boosting Clean label's Gradient

(2) Neutralizing false label's Gradient

그래서 이러한 문제를 해결하기 위해 ELR(Early Learning Regularization) loss를 만들었다고 한다.

 

ELR Loss

ELR loss는 기존의 CE Loss에 reg term을 하나 덧붙인다. loss자체에는 큰 효과를 유추하기 어려우나, gradient 식에 변형이 생긴다.

여기서 t[i]는 target probability로, 이전 step model output을 통해 도출된다.(뒤에서 다시 언급)

이제 gradient의 계수에 g[i]가 생겼다. g[i]는 true label class entry일 때 negative값을 가지게 된다. 이에따라 이 식은 아래와 같은 효과를 가지는데

 

(1) Clean label : CE term에서는 p[i]-y[i]가 0에 수렴하기 때문에 학습이 진행될수록 gradient 효과를 줄이는 문제가 있었는데, g[i]가 negative term을 가짐에 따라 gradient의 크기를 remain하게끔 만들어 wrong label gradient가 dominant해지는 문제를 막는다. Figure 2의 중간 그래프를 보면 보다 이해가 갈 것이다.

(2) Wrong label : CE term에서는 y[i]의 class entry가 0이다.(틀린 label이니까) 따라서 무조건 positive 값을 갖게 되는데, g[i]의 class entry가 1이기에 negative 값을 가지므로 이 값을 상쇄하여, 계수의 크기를 낮춘다. 이로써 neutralize하는 효과를 갖게 되어, 최종적으로는 1번 그래프와 같이 이상적인 gradient 계수 값으로 학습할 수 있게 된다.

 

ELR Loss - Target Probability

위에서 언급했듯, t[i]는 이전 model output으로 부터 도출된다. 물론 그때그때 이전 것을 사용해도 되지만, 평균 값을 사용하면 더 효과적이다.

베타는 momentum이다.

이 방법 외에도 weight averaging, Co-Learning과 같은 방법을 사용하면 더 좋은 학습 결과가 나오는데, 사용한 ELR 모델을 뒤의 결과에선 ELR+라고 칭하고 있다.

 

Experiments

Clothing1M에 대한 결과다. 다른 결과도 많지만 이 데이터셋으로 학습해볼 예정이라 우선 이걸 가져왔다. ELR+가 가장 좋은 성능을 내는 것을 볼 수 있다.

 

Comment

우선 새로운 regression term을 이용해 gradient 계수를 조절하여, 이상적인 그래프를 도출한 데에서 놀라웠고, 결과도 좋았다. 어떻게 저 계수를 맞췄지.. 우선 논문 뒤에 온갖 증명 및 supplement가 있는데, 시간이 나면 읽어볼 것 같다. 잘못된 truth값은 엄청 큰 영향을 미친 다는 것을 한번 더 알아간다. Clothing1M으로 직접 실험해보자.

2/27

실험을 해본 결과 beta가 작으면 loss가 minus로 가는 사태가 발생한다! 왜인지를 알아 보자.

우선 item별로 target prob을 업데이트하는데, 이 업데이트 과정에서 target이 큰 폭으로 커진다.

저 큰 폭마다 epoch이 바뀌는 것. weight_decay를 조절해가며 실험해 보고 있다.

'내 맘대로 읽는 논문 리뷰 > CV' 카테고리의 다른 글

SORT  (0) 2021.03.10
A Survey on Moving Object Detection & Tracking methods  (0) 2021.03.10
TResNet - ASLLoss  (0) 2021.03.10
DG-STA  (0) 2021.03.10
RetinaNet  (0) 2021.03.10