본문 바로가기
AIML 분야/Video Classification & Detection

[연구노트] Action Recognition Model 성능 영끌을 위한 조사

by 포숑은 맛있어 2021. 1. 22.
반응형

제목 그대로.

 

어떤 연구를 하고 있는데 매우 큰 문제에 봉착하여 베이스라인 성능을 영혼을 끌어모으지 않으면 안되는 상황이 발생하였다.

그동안 주워들었지만 fair comparison때문에 적용하지 않은 (그냥 귀찮아서 안한거지만) 모든 기법을 죄다 때려박아야한다.

지금 연구는 그게 상관 없어서.

 

 

무슨 방법이 있을까?

 

 

1. Recurrent model에 대한 본능적인 거부감(?) 때문에 CNN LSTM을 쓰긴 싫다. 따라서 backbone은 R3D나 RX3D를 고르고, 이 성능을 끌어올릴테다.

 

 

2. NonLocal Block같은걸 적용한다.

어제 아카이브 보다가 발견한 GCNet. 물론 논문은 안 읽었지만 여기 나온 GC Block을 쓰면 좋을 것 같다.

NL밖에 몰랐는데 다양한 종류가 소개되어있다.

github.com/dl19940602/GCnet-pytorch/tree/2f3d8bf8f186c2052591adda871e7e79d1a99d07

근데 비디오 3D conv로 넘어오게 하려면 뭔지는 알아야할거아님. 논문 다 읽지 않더라해도 컨셉이라도 알고 오자...

arxiv.org/pdf/1904.11492.pdf

 

 

3. Regularization Loss.

예를들면 학부때 내가 연구하다가 슬픈 결과를 맞이한 ALT의 loss라든가...?

그런데 이건 cutout, cutmix같은 이미지를 생성해서 distance를 loss로 같이 주는거라 메모리를 좀 잡아먹는다. 비디오 도메인으로 넘어오면 더 끔찍한 일이 벌어질지 모른다.

일단은 패스하고, 일반적으로 많이 쓰는거 뭐 없나 찾아보자.

 

 

4. Augmentation.

loss로 주지 않아도 robustness를 위해서 걍 augmentation 하면 되겠지.

그냥 color jittering, rotation jittering같은걸 주는 게 어떨까.

 

아래 코드를 참고하면 될 것 같다.

github.com/fmahoudeau/MiCT-Net-PyTorch/blob/master/mictnet/datasets/ucf101.py

 


 

대분류는 대충 위에처럼 나눴고, 연구팀 동료들한테도 질문했더니 다양한 답변이 나왔다.

 

- inhomogeneous backbone ensemble

 

- label smoothing

 

- Stochastic Weight Averaging (SWA), EMA. - 검색하면 주식얘기밖에 안나온다. 그 용어와 같은 단어다.

EMA는 Optimizer인데 좀 오래되었다고 해서 패스.

SWA는 lr scheduler. 난 SGDR을 쓰고있어서 패스하려고 했는데, 아래 블로그를 보니까 초반에 SGDR 쓰다가 중간부터 SWA를 쓰고있다.

 

동료의 말에 의하면 kaggle같은거 보면 SWA+adamp 이렇게 쓰는 경우가 있다고 한다.

hoya012.github.io/blog/Image-Classification-with-Stochastic-Weight-Averaging-Training-PyTorch-Tutorial/

SWA에 대한 자세한 얘기는 이 블로그를 참고하면 될 것 같다.

 


- iclr2021에 나온 adamp.

이건 optimizer.

찾아보니 클로바에서 나왔나보다.

adamp는 BN이 많은 모델에 도움이 된다고 한다.

www.facebook.com/ClovaAIResearch/posts/1117468461956200/

 

이렇게 pip으로 설치할 수 있다고 함.

방금 써봤는데 그냥 저거면 끝이다. 굿.

pip install adamp
from adamp import AdamP
optimizer = AdamP(...)

 

- 이건 다른 얘기지만 Meta Pseudo Labels도 한번 읽어보려고 하셨다.

KD인데 내가 지금 이거 하는게 KD를 활용한거라서 참고가 필요. 

 

 

 

 

지금 돌리고 있는 실험이 다 끝나기 전까지 코딩을 마무리해야겠다.

끝나면 바로 돌리게.

 

역시 챌린지에 도전해본 사람들은 다르구나 싶다.

fair comparison 한다고 SGD Adam 이런것만 썼는데 이런 최신 연구 얘기를 들으니 묘하게 뒷쳐지는 기분이 든다?!

반응형

댓글