【Pytorch】BatchNorm VS InstanceNorm

배경



BatchSize=1일 때, BatchNorm과 InstanceNorm은 등가이므로, 결과가 같아지는지 궁금해 조사해 보았다.


조사



Pytorch에서
BatchNorm에서는 affine = True로 Γ와 β의 값이 parameter로 학습되는 반면
InstanceNorm에서는 affine=False로 Γ=1과 β=0으로 고정하고 있다.





결과




BatchNorm보다 InstanceNorm이 더 정확합니다.
BatchNorm의 Default Value를 동일하게 설정하면 거의 동일한 결과가 얻어졌다.

결론



· BatchNorm의 affine = False로 설정하면 InstanceNorm과 동일한 결과를 얻을 수 있습니다.
· Batch_size = 1에서 BatchNorm을 사용하면 Γ와 β가 노이즈를 가진 데이터에 대해 학습되어 버린다고 생각되기 때문에 Affine을 False로하거나 InstanceNorm을 사용하면 좋을지도 모른다.

참고문헌



BatchNorm2d
htps : // py와 rch. 오 rg/도 cs/s 했다 bぇ/게네라 d/와 rch. 응. 바 tch의 rm2d. HTML
InstanceNorm2d
htps : // py와 rch. 오 rg/도 cs/s 했다 bぇ/게네라 d/와 rch. 응. Ins Tanse의 rm2d. HTML

좋은 웹페이지 즐겨찾기