728x90

컴퓨터 비전에서 대규모 pre-training 탐색의 필요성

 오늘 공부할 내용은 컴퓨터 비전을 위한 대규모 pre-training 탐색 기법(Open-Sourcing BiT: Exploring Large-Scale Pre-training for Computer Vision)에 대한 내용입니다. Label 하는 것에 노동력이 많이 들어 Computer Vision(CV)에서도 ImageNet 같은 대용량의 데이터로 미리 pre-training 한 다음 specific 한 task에 학습된 feature들을 사용하는 것이 도움이 될 수 있습니다. 하지만, CV에서 specific 한 새로운 task에 적용하는 것은 성능을 떨어트릴 수 있습니다. 이를 위해 적절한 normalization layer를 선택하고 학습 데이터의 양에 따라 구조적인 수용력이 늘어나는 기법이 필요합니다.

Pre-training 방법

 Pre-training을 위해 ILSVRC-2012< ImageNet-21k < JFT 데이터 셋 사용하였습니다. 그리고 더 pre-training이 잘 되기 위한 방안 탐색했습니다.

①데이터 셋들을 단순한 ResNet을 사용해서 학습했는데, 결과적으로 데이터양이 많아질수록 학습 모델(ResNet)의 수용력이 커져야 (정확도) 성능이  잘 나옴을 발견했습니다.
② 같은 계산 비용과 학습 시간에는 데이터 셋이 클수록 정확도가 안 좋지만, 계산 비용을 높이고 학습 시간을 길게 주면 데이터 셋이 크더라도 점점 정확도가 높아짐을 알 수 있습니다.

③ batch normalization(BN, activitaion들을 normalization 해서 학습을 안정화하는 layer)을 group normalization(GN)으로 바꾸면 성능이 좋아집니다. ⓐ BN의 state는 pre-training 단계와 transfer 단계 사이에서 조절해야 하지만 GN는 stateless, ⓑ BN은 배치 레벨 상의 통계를 이용하나, 이는 대형 모델에서 소형 디바이스 크기의 배치 크기에서는 신뢰할 수 없게 됩니다. GN는 이를 이용하지 않아 괜찮고, weight standaedization(WS)까지 이용하면 더욱 성능에 좋아지는 것을 확인할 수 있습니다. 결론적으로 GN+ WS를 사용하면 큰 데이터 셋에서도 보다 잘 학습이 됩니다.

 

Transfer learning 방법

 아주 적은 양의 데이터 셋을 적용하여 BERT 방법을 써보았습니다. 사진의 하이레벨 특성을 가지고 하이퍼 파라미터를 선택할 수 있도록 "BiT-HyperRule"을 적용합니다. 많은 양의 데이터 셋을 가지고 수용력이 큰 모델을 가지고 pre-training을 하면 fine-tuning 시에도 더 좋은 성능이 나옴을 알 수 있습니다. 따라서 JFT 데이터 셋을 가지고 R152x4 모델을 러닝 했을 때 가장 성능이 좋습니다. 실제 환경에서 생성된 적은 양의 데이터 셋에도 잘 작동됨을 알 수 있습니다.

연구에 대한 의견

 Novelty는 Pre-training 시에 GN+WS를 도입하여 stateless 화하고, transfer learning 시에 "BiT-HyperRule"을 적용하여 대규모 학습 시에도 잘 작동하며 여러 도메인에 적용할 수 있도록 하였습니다. 결국은 데이터양이 많고 모델의 크기가 클수록 작동을 잘 한다는 것인데, 데이터의 양이 클수록 잘 되는 것은 당연해 보였는데 학습 시간이 길 필요성이 있다는 점이 흥미로웠습니다. 모델의 수용력이 클수록 정말 잘 되는 것인지, 아니면 어느 지점에서는 성능이 수렴이 되는 것인지 궁금해졌습니다. BERT가 NLP에서 굉장히 연구가 많이 되고 있는데 CV에서도 발전하고 있는 것을 보니(BigTransfer (BiT): State-of-the-art transfer learning for computer vision), 다른 분야에서는 어느 정도로 발전이 되고 있는지 한 번 찾아봐야겠다는 생각이 들었습니다. 참고로, tensorflow에 튜토리얼이 엄청 친절하게 되어 있어서 연습해 보는 데 좋은 것 같습니다.

 

728x90

+ Recent posts