본문 바로가기

AI시작

Bag of Freebies 가 주목 받는 이유

Bag of Freesbies 라는 기술이 성능 향상에 키워드 중 하나가 될 전망인가 봅니다.

애초에 성능이 좋은 Faster RCNN 의 경우조차도 1.1~1.7%의 성능향상이 있는데 YOLO V3 가 5% 나 좋아졌군요.

그래서 조셉 레드몬 님께서 이 업계에서 손털고 나간 후 후임자가 YOLO V4 를 개발할 때 Bag of Freesbies 를 대놓고 도입했나봅니다.

 

Object detection 은 컴퓨터 비전에서 가장 기본적인 응용 프로그램 중 하나입니다. 최신 최첨단 탐지기 (이미지 분류 및  YOLO와 같은 single-stage 또는 RC와 같은 multiple-stage 포함)는 VGG, ResNet 등과 같은 이미지 분류 백본 네트워크를 기반으로합니다.

inference 중에 추가 계산 비용을 발생시키지 않으면 서 모든 대중적인 object detection 네트워크의 성능을 향상시키기 위해 조합하여 사용할 수있는 여러 가지 기법을 통칭해서 "Bag of Freebies"라고합니다.

 

Bag of Freebies 가 주목 받는 이유는?

 

일반적으로 object detectors는 오프라인으로 훈련됩니다. 따라서 연구자들은 항상 추론 비용을 증가시키지 않고 물체 탐지기의 정확도를 향상시킬 수있는 더 나은 훈련 방법을 활용하고 개발하는 것을 좋아합니다. 이 방법들은 훈련 전략 또는 훈련 비용을 말할 수있는 것만 변경합니다. Bag of Freebies을 data augmentation 기술의 파이프 라인으로 생각할 수 있습니다. data augmentation 의 유일한 목적은 입력 이미지의 가변성을 증가시켜 설계된 물체 감지 모델이 다른 환경에서 얻은 이미지에 대해 더 높은 견고성을 갖도록하는 것입니다.

 

일반적으로 광도 왜곡(photometric distortions)과 기하학적 왜곡(geometric distortions)은 일반적으로 사용되는 두 가지 data augmentation 방법이며 물체 감지 작업에 확실히 도움이됩니다. 광도 왜곡에서는 이미지의 밝기, 대비, 색조, 채도 및 노이즈를 조정합니다. 기하학적 왜곡을 위해 임의 크기 조정, 자르기, 뒤집기 및 회전을 추가합니다. 또한, data augmentation에 관여하는 일부 연구자들은 object occlusion 문제를 시뮬레이션하는 데 중점을 두고 있습니다 (오브젝트가 다른 오브젝트의 일부를 가릴 때).

이 freebies 는 모두 training time modifications 이므로 네트워크 구조를 변경하지 않고 모델 weights 에만 영향을 미치며 이미지 분류 및 물체 감지 방법에서 좋은 결과를 얻었습니다.

 

Bag of Freebies

 

이 섹션에서는 object detection를 위한  image mix-up method 을 소개합니다. object detection 모델의 성능을 향상 시키도록 설계된 데이터 처리 및 training schedule 을 소개합니다.

1. Object Detection 를 위한 Image Mix-up 

 

이미지 분류 작업에서 믹스 업의 핵심 아이디어는 두 이미지가 동일한 학습 데이터 세트에 속하는 특정 비율로 한 이미지에서 다른 이미지로 픽셀을 선형으로 혼합하는 것입니다. 동시에 두 이미지의 one-hot 인코딩 된 레이블도 동일한 비율로 혼합됩니다. 혼합 알고리즘의 비율은 B (alpha, beta)로 작성된 베타 분포라는 분포에서 도출됩니다.

 

0.1 : 0.9의 일반적인 혼합 비율로 이미지 분류의 시각화를 Mix-up 해봅니다. 두 개의 이미지가 모든 픽셀에 균일하게 혼합되고 이미지 레이블은 원래의 원-핫 레이블 벡터의 가중치 합계입니다.
이 예에서, 조류 이미지는 전형적인 0.1 : 0.9 비율의 벽시계 이미지와 1- 핫 인코딩 된 레이블로 혼합됩니다.

형상은 물체 감지를 위해 혼합 이미지의 정렬을 유지했습니다. 이미지 픽셀이 혼합되고 객체 레이블이 새로운 배열로 병합됩니다.
이 예제에서 두 이미지는 모두 지오메트리를 유지하면서 new array 으로 ground truth object coordinates 와 함께 병합됩니다.

 

알파를 사용한 베타 분포를 선택하는 동안 물체 감지를 위해 설계된 혼합을 검증하기 위해 베타는 둘 다 1 이상입니다. Pascal VOC 데이터 세트에서 YOLOv3 네트워크를 사용하여 혼합 비율 분포를 실험적으로 테스트합니다. 아래 표는 다양한 베타 분포로 샘플링 된 검출 혼합 비율을 채택하여 실제 개선 사항을 보여줍니다. 알파와 베타가 모두 1.5 인 베타 분포는 균일 분포와 1.0보다 약간 낫습니다. 평균 평균 정밀도가 거의 3 % 증가합니다.

 

Pascal VOC 2007 테스트 세트에서 YOLO3로 검증 된 다양한 혼합 접근법의 효과가 시도되었습니다. 가중 손실은 전체 손실이 원래 훈련 이미지에 속하는 이미지 혼합 비율에 따라 비율이 0 대 1 인 여러 개체의 합을 나타냅니다. 

대조적으로, Rosenfeld는 코끼리 이미지 패치가 자연 이미지에 무작위로 배치 된 "방 안의 코끼리"라는 일련의 실험을 수행 한 다음이 adversarial  이미지는 기존 object detection 모델에 도전하는 데 사용됩니다.

결과는 기존의 object detection 모델이 그러한 공격에 대해 transplanted objects를 감지하기에는 어렵다는 것을 나타냅니다.
연구원들은 실내 공간 이미지를 통해 코끼리 이미지 패치를 슬라이딩하여 동일한 실험을 수행했으며, 하나의 mix-up approach 과 다른 방식으로는 그렇지 않은 COCO 2017 데이터 세트에 대한 두 개의 YOLOv3 모델을 훈련했습니다.

 

그들은 mix-up approach 없이 훈련 된 기본 모델이 부엌에서 코끼리를 감지하는 것이 드물기 때문에 heavy occlusion과 lack of context 으로 인해 “실내의 코끼리”를 감지하기 위해 고군분투하고 있으며 mix approach 으로 훈련 된 모델이 더 강력하다는 것을 알 수 있습니다 . 또한 믹스 모델이 더 humble 하다는 것을 알았습니다. less confident 하고 평균적으로 물체에 대한 점수가 낮아집니다. 그러나이 동작은 표시된대로 평가 결과에 영향을 미치지 않습니다.

 

Elephant in the room 예 에서 geometry preserved mixup (하단)으로 훈련 된 모델은  baseline (상단)에 비해 alien objects 에 대해 더욱 견고합니다.
visually coherent mixup 으로 훈련 된 모델은 자연스러운 이미지에서는 매우 드물지만 실내 장면에서 코끼리를 감지하기에 더 강력합니다 (94.12 vs 42.95). 그리고 mix-up model 조차도 하단 행에서 볼 수 있듯이 occlusion을 쉽게 처리합니다. mix-up model 은 훈련 과정에서 더 많은 문제를 겪기 때문에 전례없는 장면과 매우 혼잡 한 객체 그룹을 처리하는 데있어 바닐라 모델보다 훨씬 낫습니다.

탐지 결과 통계는 방에있는 코끼리의 영향을 받습니다.. "Recall of elephant"은 생성 된 모든 프레임에서 코끼리가 슬라이딩하는 것을 리콜하여 모델이 보이지 않는 상황에서 객체를 얼마나 강력하게 처리하는지 나타냅니다.

 

2. Classification Head Label Smoothing

 

Label Smoothing 은 딥 러닝 네트워크를 교육하는 데 매우 효과적인 손실 기능 수정입니다. Label Smoothing 는 이미지 분류, 번역 및 음성 인식의 정확도를 향상시킵니다. 작동 방식에 대한 간단한 설명은 신경망의 훈련 목표를 hard '1'에서 '1- Label Smoothing조정'으로 변경한다는 것입니다. 이는 신경망이 대답에 대해 약간 덜 자신감을 갖도록 훈련되었음을 의미합니다.

 

예 : 이미지를 개와 고양이로 분류한다고 가정합니다. 강아지의 사진을 보면, 신경망을 교차 엔트로피 손실을 통해 훈련하여 강아지의 경우 1, 고양이의 경우 0으로 이동합니다. 그리고 고양이라면, 고양이의 경우 1, 강아지의 경우 0으로 훈련하는 반대입니다. 즉, 이진 또는 "hard "답변입니다.

 

그러나 신경망은 훈련 중 예측에서 '‘over-confident'이되는 나쁜 습관을 가지고 있으며, 이는 보이지 않는 새로운 미래 데이터에 대한 일반화 능력을 저하시킬 수 있습니다. 또한 큰 데이터 세트에는 종종 잘못 레이블이 지정된 데이터가 포함될 수 있습니다. 즉, 신경망은 본질적으로 어느 정도의 나쁜 답변에 대한 극단적 인 모델링을 줄이기 위해 '정답'에 대해 약간 회의적이어야합니다.

따라서 Label Smoothing 의 기능은 신경망이 ‘1 adjustment’목표로 이동하도록 훈련 한 다음 나머지 클래스에 조정 량을 나누어서 ...
rather than simply a hard 1, 신경망의 답변에 대한 확신을 덜 갖도록하는 것입니다. 

 

이진 개 / 고양이 예제의 경우, 라벨 다듬기 .1은 대상 답변이 .90 (90 % 자신감)이고 개 이미지의 개이고 .10 (10 % 자신감)은 이전이 아니라 고양이입니다 조금 덜 확실 해짐에 따라 정규화의 형태로 작용하고 새로운 데이터에서 더 나은 성능을 발휘할 수 있습니다.

신경망에 대한 라벨 다듬기의 영향 : 이제 Label Smoothing 이 신경망의 분류 처리에 미치는 영향을 시각적으로 보여줍니다.

ResNet 은 훈련 및 검증 과정에서 "비행기, 자동차 및 조류"를 분류합니다.

3 가지 이미지 범주를 분류하기위한 ResNet 트레이닝… 클러스터 밀착의 엄청난 차이에 주목 합니다.
ResNet 검증 결과. Label Smoothing 으로 최종 정확도가 향상되었습니다. Label Smoothing 은 교육 과정에서 활성화를 타이트한 클러스터로 유도하는 반면, 유효성 검사에서는 중앙으로 퍼져 예측에 대한 모든 신뢰를 활용합니다.
이미지가 시각적으로 보여 지듯이, Label Smoothing 은 최종 활성화를 위해 더 엄격한 클러스터링과 범주 간 분리를 향상시킵니다.

이것이 Label Smoothing 이 보다 규칙적이고 강력한 신경망을 생성하는 주요 이유입니다. 그러나 더 나은 활성화 센터링보다 추가적인 이점이 있습니다.

3. Data Preprocessing

 

이미지 분류 영역에서, 일반적으로 신경망은 이미지 기하학적 변환에 매우 관대합니다. 실제로 이미지를 무작위로 확대하는 것이 좋습니다. 일반화 정확도를 높이고 과적 합을 피하기 위해 이미지를 임의로 뒤집거나 회전하고 자릅니다.

detection networks 유형의 관점에서 최종 예측을 일반화하기위한 두 가지 유형의 파이프 라인이 있습니다.

첫 번째 단계는 single stage detection networks 로, 최종 출력은 CNN 백본의 feature maps 에서 직접 생성됩니다 (예 : SSD (single shot detector) 및 YOLO 네트워크).

두 번째 유형은 Fast-RCNN에 따른 multi-stage 제안 및 샘플링 기반 접근 방식으로, 생성 된 ROI의 대규모 풀에서 특정 수의 영역이 샘플링되며, 백본 CNN의 feature maps 에 자르기 기반 기술을 적용하여 최종 출력이 생성됩니다. 

 

multi-stage 네트워크는 이미 자르기 기반 기술을 적용하기 때문에 임의 자르기 및 더 광범위한 기하학적 확대로 입력을 보강 할 필요가 없습니다. 그러나 single stage detectors 는 입력 이미지에 augmentation 을 적용하면  매우 매력적인 결과를 재현 할 수 있습니다. 이것이 single stage  및 소위 multi-stage object detection  데이터 파이프 라인의 주요 차이점입니다.

 

4. Training Schedule Revamping

 

훈련 과정에서 학습률은 일반적으로 비교적 큰 숫자로 시작하여 훈련 과정 전체에서 점차 작아집니다. 예를 들어 Faster-RCNN의 기본 학습 속도 일정은 학습 속도를 0.1 ~ 60k 반복 비율로 줄이는 것입니다. 마찬가지로 YOLOv3는 동일한 비율 0.1을 사용하여 40k 및 45k 반복에서 학습 속도를 줄입니다. 이것은 급격한 학습 속도 전환이므로 최적화 프로그램이 다음 몇 번의 반복에서 학습 모멘텀을 다시 안정화시킬 수 있습니다.

 

반대로 더 부드러운 코사인 학습 속도 조정을 사용할 수 있습니다. 코사인 스케줄은 코사인 함수의 값에 따라 0에서 pi까지의 학습 속도를 조정합니다.

Pascal VOC에 대한 YOLOv3 교육을 위해 warmup과 함께 학습 속도 스케줄링을 시각화합니다. (a) : 배치 크기 64에 대한 코사인 및 단계 일정. (b) : 단계 및 코사인 학습 일정을 사용한 검증 mAP 비교 곡선.
워밍업 학습 속도는 초기 훈련 반복 중에 그라디언트 폭발을 피하는 또 다른 일반적인 전략입니다. 코사인 일정과 적절한 워밍업으로 훈련하면 그림과 같이 검증 정확도가 향상됩니다.

 

5. Synchronized Batch Normalization and Random Shape Input


신경망은 compute intensive 이지만 고도로 parallelizable 합니다. 이로 인해 훈련을 가속화하기 위해 여러 장치 (GPU)를 장착 할 수있는 컴퓨팅 환경이 필요합니다. Batch Normalization 는 하이퍼 파라미터에 대한 감도를 줄이면서 입력 데이터를 청크로 훈련하는 데 도움이됩니다. 여러 장치 (GPU)에서 작동하는 Batch Normalization의 일반적인 구현은 빠르지 만 실험에 따르면 여러 장치에서 배치 크기를 줄이면 계산 중에 약간 다른 통계가 발생하여 성능이 저하 될 수 있습니다. ImageNet 분류와 같은 일부 표준 비전 작업에서는 장치 당 배치 크기가 일반적으로 충분한 통계를 얻을 수있을만큼 크기 때문에 이는 중요한 문제가 아닙니다. 그러나 배치 크기가 작은 일부 작업 (예 : GPU 당 1 개)의 성능이 저하됩니다.

자연 훈련 이미지는 다양한 모양으로 제공됩니다. 메모리 제한에 맞추고보다 간단한 배치를 허용하기 위해 많은  single-stage object detection networks 가 고정 된 모양으로 훈련됩니다. 과적 합의 위험을 줄이고 네트워크 예측의 일반화를 향상시키기 위해 연구자들은 YOLOv3의 공식 구현 세부 사항을 따르고 N 개의 훈련 이미지를 배치하고 N x 3 x H x W로 크기를 조정했습니다. 예를 들어, YOLOv3는 VGG를 피쳐 맵이 32 인 CNN 백본으로 사용하는 훈련에 H = W = {320,352,384,416,448,480,512,544,576,608}을 사용합니다.

 

Results

 
연구진은 object detection 를 위해 이러한 모든 조정을 쌓아서 효율성과 정확도가 유명한 주요 rameworks 인 YOLOv3 (single-stage pipelines 대표)과 가장 많이 채택되고 많은 다른 변형의 기초가 된 detection  rameworks 중 하나 인 Faster-RCNN (multi-stage pipelines 대표)을 고수했습니다. 

YOLOv3 

YOLOv3을 사용한 COCO 80 범주 AP 분석. 빨간색 선은 공짜 가방을 사용하여 성능 향상을 나타내고 파란색 선은 성능 저하를 나타냅니다.
위의 표현에서 볼 수 있듯이 YOLOv3는 거의 80 개의 범주가있는 COCO 데이터 세트에 대해 훈련되었습니다. 위의 조정을 사용하는 동안 연구원은 성능 향상 (빨간색으로 표시)을 주장 할 수 있으며 일부 성능 저하 (파란색으로 표시)도 볼 수 있습니다. 그러나 전체 YOLOv3는 AP에서 3.43 %의 성능 향상을 얻습니다.

YOLOv3의 증분 트릭 유효성 검사 결과, Pascal VOC 2007 테스트 세트에서 416 × 416으로 평가되었습니다.

 

Faster-RCNN

Faster-RCNN resnet50을 사용한 COCO 80 카테고리 AP 분석. 빨간색 선은 공짜 가방을 사용하여 성능이 향상되었음을 나타내고 파란색 선은 성능 저하를 나타냅니다.
위의 표현과 마찬가지로 ResNet50 CNN 백본이있는 Faster-RCNN도 COCO 데이터 세트에 대해 교육했습니다. 위의 조정을 사용하는 동안 연구원은 성능 향상 (빨간색으로 표시)을 주장 할 수 있으며 일부 성능 저하 (파란색으로 표시)도 볼 수 있습니다. 그러나 전체 Faster-RCNN은 AP에서 3.55 %의 성능 향상을 얻습니다.

 

이 기사에서는  inference environment 에 zero overhead 를 소개하면서 어떻게 training enhancements 의 bag 이 모델 성능을 크게 향상시키는지 그 방법을 보여주었습니다.
Pascal VOC 및 COCO 데이터 세트에 대한 YOLOv3 및 Faster-RCNN의 실험 실험에 따르면 트릭이 지속적으로 물체 감지 모델을 개선하고 있습니다.
이러한 모든 조정을 쌓아서 어떤 수준의 저하 징후도 관찰되지 않았으며, 향후 object detection pipelines 에 더 폭넓게 채택 할 것을 제안합니다.
이러한 freebies는 모두 훈련 시간 수정이므로 추론 시간을 늘리거나 네트워크 구조를 변경하지 않고 모델 가중치에만 영향을줍니다.

 

https://mc.ai/bag-of-freebies/