Paper review/Others

Group Normalization (ECCV'18)

언킴 2021. 10. 20. 10:39
반응형

우리가 이미지 처리를 할 때 가장 많이 쓰이는 Normalization 기법은 구글에서 발표한 Batch Normalization 일 것이다. Batch norm은 Batch Normalization , Accelerating Deep Network Training by Reducing Internal Covariate Shift (2015)에 의해 제안된 모델이며 일반적으로 성능이 좋다고 알려져 있다. 하지만 뒷단의 Reducing Internal Covariate Shift라는 의미가 이후 논문들에 의해 지적을 받고 있다. 

 

그럼에도 불구하고 왜 BN을 계속 사용하는가? 일반적으로 배치 사이즈가 크면 BN의 성능이 좋게 나오기 때문이다. 하지만 배치 사이즈가 작아지면 BN의 error는 가파르게 상승한다. 왜냐하면 BN의 경우 Batch 단위로 feature를 계산하여 평균과 편차를 구해 정규화를 시켜준다. 그렇기 때문에 배치 사이즈를 어떻게하냐에 따라 성능이 달라진다. 하지만 Layer Norm의 경우는 각 feature하나(이미지의 경우 사진 한 장)를 기준으로 normalization을 진행하기 때문에 배치 사이즈와는 무관하다. Group Normalization (2018)은 BN, LN, IN(Instance Norm), GN(Group Norm)에 대해 설명해주고, 각각의 성능에 대해서 비교를 해준다. 

 

 

 

위에서도 언급했듯 BN의 경우에는 배치 사이즈에 큰 영향을 받는다. 하지만 GN의 경우에는 LN과 마찬가지로 하나의 feature 내에서 연산을 하기 때문에 배치 사이즈에 대해 큰 영향으 받지 않는다. 다음의 사진을 보면 배치 사이즈가 32, 16 상대적으로 클 경우 BN의 성능이 좋은 것을 확인할 수 있는데, 배치 사이즈가 8이하로 떨어지다가 4이하가 되면 BN의 error는 급격하게 상승하는 것을 확인할 수 있지만, GN의 경우 flat한 error의 그래프를 확인할 수 있다. 

 

각 정규화에 대한 이미지

 

 

배치 사이즈가 32일 경우 각 정규화를 보면 train error는 GN이 BN보다 더 낮게 나오지만 validation error는 BN이 GN보다 성능이 더 좋은 것을 확인할 수 있다. 일반적으로 배치 사이즈가 16이상일 경우 BN을 쓰는 것이 조금 더 좋은 성능을 도출해낼 수 있고, 그보다 작을 경우 GN을 쓰는 것을 추천한다고 한다. 

 

하지만 이 정규화에 대한건 각 테스크에 따라 다르게 적용될 수 있으며, 정규화 기법은 하나의 도구라고 생각하고 GPU의 성능이 따라준다면 배치 사이즈를 늘려 BN을 활용하고, 그렇지 않으면 GN을 사용하거나 배치 사이즈가 크더라도 GN의 성능이 더 좋은 경우도 있을 수 있으니 하나의 태크니컬한 부분으로 생각하는 것이 좋을 것 같다. 

 

배치 사이즈 = 32

 

배치 사이즈를 달리해 BN과 GN을 비교하는데 아래의 그래프를 보다시피 BN의 경우 배치 사이즈에 큰 영향을 미치는 것을 볼 수 있고, GN의 경우 거의 일관된 성능을 보이는 것을 확인할 수 있다. 그리고 배치 사이즈가 16을 넘어가면 BN이 GN보다 조금 더 나은 성능을 보이는 것을 확인할 수 있다. 

 

그리고 그룹 내 몇개의 채널을 가지고 할지에 대한 문제는 하이퍼파라미터로 테스크 마다 다르기 때문에 변화하면서 최적의 성능을 보여주는 그룹 수를 표현하면 될 것이다. 해당 논문에서는 32개의 채널을 가질 때 성능이 가장 좋다고 언급했다. 

 

 


[1] Batch norm은 Batch Normalization , Accelerating Deep Network Training by Reducing Internal Covariate Shift (2015)

[2] Group Normalization (2018)