지난 포스팅에 이어 기술된 포스팅이다.
이분들의 연구에서는 최소의 변화만을 추구한다. 베이스라인이야 Mask R-CNN을 기반으로 하고, 다만 normalization과 학습횟수는 변화가 좀 있다. (이건 뭐 당연하지...normalization을 다른거 쓰겠다 했고 학습빈도야 이게 이 논문 키포인트니)
그리고 크게 3가지로 나누어서 실험세팅에 대해 설명을 한다.
먼저 구조! ResNet과 FPN(Feature Pyramid Network) 기반의 Mask R-CNN 쓰신다. 그리고 BatchNorm (BN)말고 GroupNorm(GN)과 SyncBN을 사용한다. 공정한 비교를 위해 fine-tuned모델도 BN말고 GN/SyncBN으로 튜닝했다.
두 번째 러닝레이트 설계! 기존의 Mask R-CNN은 9만번이나 18만번 정도 튜닝을 한다. 근데 이건 튜닝할때나 그렇고 본 연구처럼 첨부터 학습하는 건 더 많이 학습시켜야지 않겠는가. 그래서 무려 54만번의 학습을 감행한다 (논문에서는 9만번 학습을 '1X schedule' 이라 하니 54만번의 학습은 '6X schedule' 이다.). 그리고 원래처럼 6만번 남았을때 0.1배 러닝레이트를 줄이고 2만번 남았을 때 또 러닝레이트를 0.1배를 가한다.
마지막으로 Hyper-parameters! 이놈은 Detectron의 설정을 싹다 차용한다. 특히 초기 러닝레이트는 0.02이고 weight decay는 0.0001에 모멘텀은 0.9 쓰고......
그냥 다 비슷비슷하니 이건 넘기겠다.
이분들의 가장 맨 먼저 본 놀라운 발견은 COCO만 사용해서 모델을 첨부터 학습하는게 튜닝해서 학습하는 모델의 정확도를 결국 따라잡는 다는 것이다.!!
(COCO 한정이긴 하지만, 오히려 더 도메인에 specific한 데이터면 더 이 문장이 들어맞지 않을까!)
이 서브섹션에서 이분들은 디텍션 평가방법으로 bbox AP를 사용하고 instance 세그멘 테이션 평가 방법으로는 mask AP를 사용한다.
그러나 충분히 학습이 이루어지면 5,6x 스케쥴링에서는 AP수치가 거의 유사해진다. (미세하게나마 오히려 from-scratch방법이 더 낫다!)
즉! 기존의 pre-training이 수렴속도를 높이는 데엔 도움이 될 수 있어도, 최종 정확도향상에는 영향이 전ㅡ혀 없다...! (시간만 충분하면 그냥 from-scratch 방법으로 학습하는것도 괜찮다...)
간단하게 IoU (Intersection-over-Union)를 기준으로 AP_50과 AP_75를 가지고 비교를 때렸다.
결과는 놀랍게도 여전히 ImageNet기반 pre-training과 유사한 성능을 뽑아내며 특히 AP_75의 경우 From-scratch방법보다 오히려 더 나은거 같은 결과도 뽑아내준다...! (GN을 사용하면 차라리 처음부터 학습하는게 더 나아보인다.)
근데 뭐 뻔하지만 결론적으로 베이스라인을 좋은걸로 바꿔써봐도 From-scratch방법이 절대 후지지 않다는 것이다.
이미지 augmentation도 해보고, Cascade Mask R-CNN도 사용해보고, 다양한 스케일에서 테스트도 해보고 별의별 짓을 해보았지만 결국 결론은
From-scratch 방법은 ImageNet기반 pre-training방법보다 나쁘지 않다 이며 때론 더 나을때도 있다이다!
대강 뭔소리냐 요약하자면
augmentation 이야 어차피 뭐 많이 하면 성능이 늘어나는건 자명한 사실이다.
또한 Cascade방법을 적용한 R-CNN에서 ImageNet의 효율이 그다지 별 상관이 없는게 ImageNet 데이터 자체가 classification을 위한 디비이기 때문에 localization에 영향을 끼칠 수가 없다. 따라서 성능 비교자체가 의미 없다고 볼 수 있다.
마지막으로 multi스케일로 prediction을 해보는 것도 당연히 쓰면 더 정확도가 늘어날테고 localization에 영향을 끼치지 않는 ImageNet이기에 성능에 큰 차이가 발생하지 않게 된다고 나는 본다.
비교에 사용한 데이터는 ResNet 152층 짜리, (구체적으로는 X152를 사용하였다.)를 사용했는데 계속 비교모델로 사용한 R101보다 4배 더 많은 FLOP이 있다.
모델이 복잡하니까 '오버피팅이 발생할 여지가 있으니 데이터가 더 많이 필요하고 그러면 ImageNet pre-training이 필요하지 않을까?' 란 생각을 하는데 그딴거 없단다.
오버피팅도 없고 그냥 더 잘된단다 ㄷㄷ. Table3이 그것을 방증한다. R101보다 더 나은 결과!
결론적으로 과거의 연구들은 ImageNet을 쓰지않고 더 나은 결과를 얻는데 전혀 증거가 없다고 했었는데... 지금까지 계속 봐왔다시피 오히려 처음부터 학습하는게 더 나을때도 있단 것이다.
비교한 연구들은 DSOD, CornerNet인데 다들 따끈따끈한 ICCV 17, ECCV 18 논문들이다.
Figure 6을 보면 이건 오히려 수렴도 기존의 detection/segmentation보다 더 빨리 되는 것을 볼 수 있다.
논문에서는 이러한 결론을 내려준다. keypoint detection 이란 것이 굉장히 정교한 localization으로도 볼 수 있는데 ImageNet pre-training이 localization에서는 그다지 아무 쓰잘떽 없다고 분석한다.
이점에 대해서는 동의를 한다. ImageNet이란 데이터 자체가 classification을 대상으로한 데이터이기 때문에 영역을 찾아내야 하는 task에서는 좋은 효능을 발휘할 재간이 없다고 보는게 맞다.
실험결과가 역시나는 역시나인게 ImageNet pre-training을 사용한 방법이 9x 스케쥴링으로 35.6의 bbox AP를 달성했는데 From-scratch 방법은 11x 스케쥴링만에 35.2 AP를 달성했다. 즉 별차이가 없다.
근데 여기서 주목할 것이, 기존에 ResNet 쓸땐 그래도 ImageNet pre-training이 방법이 2x 스케쥴링만에 나름대로 괜찮은 성능에 도달했는데, 갑자기 네트워크를 후진걸 쓰니까 학습을 꽤 오래시켜야 어느정도 성능에 도달한다는 점이다.
심지어는 그냥 처음부터 학습시키는거랑 그렇게 큰 학습량 차이도 안난다. 이럴거면 그냥 처음부터 학습하지 뭐하러 굳이 ImageNet을 학습하겠는가.
그래서 결론으로 Section 3에서 주구장창 언급했듯이 디텍터든 뭐든 잘 학습하고 싶은데 pre-training안하고 random initialization으로 학습하고 싶다면
하면 어느정도 성능 나온다는 이야기 이다.
일단 5.1까지 다루어 보았는데 슬슬 길어지는거 같고 이제 5.2와 마지막 discussion에 대해 다루어야 하니 이건 다름 포스팅으로 넘겨야겠다.
4. Experimental Settings
이분들의 연구에서는 최소의 변화만을 추구한다. 베이스라인이야 Mask R-CNN을 기반으로 하고, 다만 normalization과 학습횟수는 변화가 좀 있다. (이건 뭐 당연하지...normalization을 다른거 쓰겠다 했고 학습빈도야 이게 이 논문 키포인트니)
그리고 크게 3가지로 나누어서 실험세팅에 대해 설명을 한다.
먼저 구조! ResNet과 FPN(Feature Pyramid Network) 기반의 Mask R-CNN 쓰신다. 그리고 BatchNorm (BN)말고 GroupNorm(GN)과 SyncBN을 사용한다. 공정한 비교를 위해 fine-tuned모델도 BN말고 GN/SyncBN으로 튜닝했다.
두 번째 러닝레이트 설계! 기존의 Mask R-CNN은 9만번이나 18만번 정도 튜닝을 한다. 근데 이건 튜닝할때나 그렇고 본 연구처럼 첨부터 학습하는 건 더 많이 학습시켜야지 않겠는가. 그래서 무려 54만번의 학습을 감행한다 (논문에서는 9만번 학습을 '1X schedule' 이라 하니 54만번의 학습은 '6X schedule' 이다.). 그리고 원래처럼 6만번 남았을때 0.1배 러닝레이트를 줄이고 2만번 남았을 때 또 러닝레이트를 0.1배를 가한다.
마지막으로 Hyper-parameters! 이놈은 Detectron의 설정을 싹다 차용한다. 특히 초기 러닝레이트는 0.02이고 weight decay는 0.0001에 모멘텀은 0.9 쓰고......
그냥 다 비슷비슷하니 이건 넘기겠다.
5. Results and Analysis
5.1 Training from scratch to match accuracy
이분들의 가장 맨 먼저 본 놀라운 발견은 COCO만 사용해서 모델을 첨부터 학습하는게 튜닝해서 학습하는 모델의 정확도를 결국 따라잡는 다는 것이다.!!
(COCO 한정이긴 하지만, 오히려 더 도메인에 specific한 데이터면 더 이 문장이 들어맞지 않을까!)
이 서브섹션에서 이분들은 디텍션 평가방법으로 bbox AP를 사용하고 instance 세그멘 테이션 평가 방법으로는 mask AP를 사용한다.
<Baselines with GN and SyncBN.>
Figure 1,3,4에 AP 커브가 나타난다. 또한 Table1을 보자. 확실히 2x 스케쥴링일땐 ImageNet기반의 pre-training의 성능이 더 잘나온다. (40.3, 41.8)그러나 충분히 학습이 이루어지면 5,6x 스케쥴링에서는 AP수치가 거의 유사해진다. (미세하게나마 오히려 from-scratch방법이 더 낫다!)
즉! 기존의 pre-training이 수렴속도를 높이는 데엔 도움이 될 수 있어도, 최종 정확도향상에는 영향이 전ㅡ혀 없다...! (시간만 충분하면 그냥 from-scratch 방법으로 학습하는것도 괜찮다...)
<Multiple detection metrics.>
Table 2에서 얘내들은 다른 디텍션 metric들을 가지고 비교들을 했다.간단하게 IoU (Intersection-over-Union)를 기준으로 AP_50과 AP_75를 가지고 비교를 때렸다.
![]() |
| 첫 번째 열이 GN을 사용한 결과이며, 두 번째 열이 SyncBN을 사용한 결과이다. |
결과는 놀랍게도 여전히 ImageNet기반 pre-training과 유사한 성능을 뽑아내며 특히 AP_75의 경우 From-scratch방법보다 오히려 더 나은거 같은 결과도 뽑아내준다...! (GN을 사용하면 차라리 처음부터 학습하는게 더 나아보인다.)
<Enhanced baselines.>
이거는 베이스라인을 Mask-RCNN 말고 다른것도 써가면서 테스트 해본 내용을 기술한 부분이다.근데 뭐 뻔하지만 결론적으로 베이스라인을 좋은걸로 바꿔써봐도 From-scratch방법이 절대 후지지 않다는 것이다.
이미지 augmentation도 해보고, Cascade Mask R-CNN도 사용해보고, 다양한 스케일에서 테스트도 해보고 별의별 짓을 해보았지만 결국 결론은
From-scratch 방법은 ImageNet기반 pre-training방법보다 나쁘지 않다 이며 때론 더 나을때도 있다이다!
대강 뭔소리냐 요약하자면
augmentation 이야 어차피 뭐 많이 하면 성능이 늘어나는건 자명한 사실이다.
또한 Cascade방법을 적용한 R-CNN에서 ImageNet의 효율이 그다지 별 상관이 없는게 ImageNet 데이터 자체가 classification을 위한 디비이기 때문에 localization에 영향을 끼칠 수가 없다. 따라서 성능 비교자체가 의미 없다고 볼 수 있다.
마지막으로 multi스케일로 prediction을 해보는 것도 당연히 쓰면 더 정확도가 늘어날테고 localization에 영향을 끼치지 않는 ImageNet이기에 성능에 큰 차이가 발생하지 않게 된다고 나는 본다.
<Large models trained from scratch.>
이 비교는 '우리가 더 복잡한 모델을 사용하면 어떻게 될까?' 이다. 결론적으로는 여전히 절대 뒤떨어지지 않으며, 오히려 미세하게 더 낫다!비교에 사용한 데이터는 ResNet 152층 짜리, (구체적으로는 X152를 사용하였다.)를 사용했는데 계속 비교모델로 사용한 R101보다 4배 더 많은 FLOP이 있다.
모델이 복잡하니까 '오버피팅이 발생할 여지가 있으니 데이터가 더 많이 필요하고 그러면 ImageNet pre-training이 필요하지 않을까?' 란 생각을 하는데 그딴거 없단다.
오버피팅도 없고 그냥 더 잘된단다 ㄷㄷ. Table3이 그것을 방증한다. R101보다 더 나은 결과!
<vs. previous from-scratch results.>
이것은 from-scratch model을 연구했던 다른 연구들을 분석한 것이다.결론적으로 과거의 연구들은 ImageNet을 쓰지않고 더 나은 결과를 얻는데 전혀 증거가 없다고 했었는데... 지금까지 계속 봐왔다시피 오히려 처음부터 학습하는게 더 나을때도 있단 것이다.
비교한 연구들은 DSOD, CornerNet인데 다들 따끈따끈한 ICCV 17, ECCV 18 논문들이다.
<Keypoint detection.>
얘내들이 참 별의별 실험을 다했다. ㅋㅋ 뭐 여튼 결과만 놓고 봤을땐 이놈은 또 그냥 detection/segmentation보다 더 잘된다!Figure 6을 보면 이건 오히려 수렴도 기존의 detection/segmentation보다 더 빨리 되는 것을 볼 수 있다.
논문에서는 이러한 결론을 내려준다. keypoint detection 이란 것이 굉장히 정교한 localization으로도 볼 수 있는데 ImageNet pre-training이 localization에서는 그다지 아무 쓰잘떽 없다고 분석한다.
이점에 대해서는 동의를 한다. ImageNet이란 데이터 자체가 classification을 대상으로한 데이터이기 때문에 영역을 찾아내야 하는 task에서는 좋은 효능을 발휘할 재간이 없다고 보는게 맞다.
<Models without BN/GN _ VGGnets.>
이번 실험 섹션의 마지막 분석이다. 내용은 normalization 안써보고 비교하기 이다. 대신 상대적으로 얕은 모델인 VGGNet을 사용했고 Faster R-CNN에 붙였다.실험결과가 역시나는 역시나인게 ImageNet pre-training을 사용한 방법이 9x 스케쥴링으로 35.6의 bbox AP를 달성했는데 From-scratch 방법은 11x 스케쥴링만에 35.2 AP를 달성했다. 즉 별차이가 없다.
근데 여기서 주목할 것이, 기존에 ResNet 쓸땐 그래도 ImageNet pre-training이 방법이 2x 스케쥴링만에 나름대로 괜찮은 성능에 도달했는데, 갑자기 네트워크를 후진걸 쓰니까 학습을 꽤 오래시켜야 어느정도 성능에 도달한다는 점이다.
심지어는 그냥 처음부터 학습시키는거랑 그렇게 큰 학습량 차이도 안난다. 이럴거면 그냥 처음부터 학습하지 뭐하러 굳이 ImageNet을 학습하겠는가.
그래서 결론으로 Section 3에서 주구장창 언급했듯이 디텍터든 뭐든 잘 학습하고 싶은데 pre-training안하고 random initialization으로 학습하고 싶다면
- Good optimization (GN/SyncBN)
- Training for longer
하면 어느정도 성능 나온다는 이야기 이다.
일단 5.1까지 다루어 보았는데 슬슬 길어지는거 같고 이제 5.2와 마지막 discussion에 대해 다루어야 하니 이건 다름 포스팅으로 넘겨야겠다.








댓글
댓글 쓰기