논문 읽기/Regularization

[논문 읽기] DropBlock(2018), A regularization method for convolutional networks

AI 꿈나무 2021. 5. 13. 15:32
반응형

 안녕하세요, 오늘 읽은 논문은 DropBlock, A regularization method for convolutional networks 입니다. 

 

 딥러닝 모델은 훈련 데이터에 과적합 하지 않도록 어느 정도 학습을 방해하는 요소가 필요합니다. 예를 들어, 데이터에 노이즈를 가하거나 패널티를 가하는 weight decay, drop out 방법을 사용할 경우에 더 높은 정확도를 갖습니다. fc layer에서 큰 효과를 나타내는 drop out 방법은 convolutional layer에서 영향력이 감소합니다. convolutional layer에서 활성화 함수는 공간적으로 연관되어 있기 때문에,  drop out을 적용하더라도 입력에 대한 정보는 다음 layer로 전달될 수 있습니다. 이는 과적합을 초래합니다.

 

 이 논문에서는 CNN에 정규화를 적용하기 위한 dropout의 구조화된 형태인 DropBlock을 제안합니다. DropBlock을 skip connection과 convolutional layer에 적용하여 정확도를 높이고, 하이퍼파라미터의 영향에 more robust 하게 됩니다. 

 

DropBlock

(a) 원본 이미지, (b) dropout, (c) dropblock

 

 위 그림에서 초록색 영역은 입력 이미지에서 중요한 정보를 담고있는 픽셀을 의미합니다. 이 중요한 정보를 dropout으로 무작위로 unit을 제거하는 것은 효과적이지 않습니다. 제거된 pixel 주변에 있는 pixel이 밀접한 관련이 있는 정보를 포함하고 있기 때문입니다. dropblock은 확실하게 정보를 제거하기 위해 연속된 영역을 제거합니다. 중요한 정보를 제거하여 학습을 더 어렵게 만듭니다.

 

 

 dropblock의 작동 원리는 다음과 같습니다. 위 그림에서 초록색 영역에서 pixel을 이항 분포로 선택합니다. 선택된 pixel을 중심점으로 block size 만큼의 영역을 확보합니다. 해당 영역의 활성화 함수 값은 0이 됩니다.

 

 dropblock은 두 개의 하이퍼파라미터(block size와 r)이 존재합니다. block size는 drop할 영역의 크기를 조절하고, r은 이항 분포의 모수로 사용하여 pixel을 중심점의 개수를 조절합니다. 만약 block size를 1로 설정하면 dropout이 됩니다.

 

 논문에서 r은 다음과 같이 계산합니다.

 

 

 keep_prob는 dropout에서의 keep_prob와 동일한 의미를 지닙니다. feat_size는 feature map size를 의미합니다. 우선 keep_prob를 0.75~0.95 사이로 설정한 뒤에 위와 같은 식으로 r을 계산합니다.

 

 dropblock은 학습 동안 고정된 keep_prob를 사용하는 경우에 효과적으로 작동하지 않습니다. 학습 초반에는 keep_prob를 낮은 값으로 설정하여 학습이 진행될 수록 선형적으로 keep_prob를 target_prob까지 증가시킵니다. 증가시키는 비율은 하이퍼파라미터 입니다.

 

Expreiments

 DropBlock의 효과를 조사하기 위해 이미지 분류, 객체 탐지, 세그멘테이션에 적용하여 실험합니다.

 

ResNet

 

RetinaNet

 

ResNet-101 FPN

 


참고 자료

[1] arxiv.org/abs/1810.12890

반응형