Curaai00's Deep Learning Blog

ResNet: Identity Mappings in Deep Residual Networks

딥러닝/이미지 인식

ResNet Identity Mappings in Deep Residual Networks

ResNet: Identity Mappings in Deep Residual Networks


Residual Unit에서 사용되는 Identity Mapping이 단순히 더하는 연산일 뿐인데 왜 잘 작동하고, 오히려 기존의 것들 보다 더 좋은 성능이 나오는지 알아보려고 합니다.

Residual Function

ResNet은 여러 "Residual Unit"이 쌓여있습니다. 이를 수식으로 표현한다면 F는 residual function, h(x)는 Identity mapping, W는 해당 l번째 layer의 Weight, f는 ReLU function입니다.



그리고 저희는 이러한 Residual Unit의 residual function + identity mapping 방식을 shortcut connection, skip connection라고 부릅니다.

이 shortcut connection의 ReLU는 아무 영향을 미치지 않고, h(x)는 identity function이기 때문에



과 같이 바꿔 쓸수 있습니다. 하지만 이것을 재귀적으로 바꿔쓴다면 (2)와 같이 쓸수 있겠죠



그래서 L번째 unit은 l번째 unit으로 표현할 수 있습니다.(L > l)


Pre-Activation

h(x)인 identity mapping과 f: relu나 batch norm 같은 activation은 기존의 방식에서는 layer(weight)를 거친 후에 적용하였지만, 연구를 하던 도중 다양한 identity mapping을 시도하던 중 post-activation보다 pre-activation이 더 좋은 성능을 나온 다는 것을 알아냈습니다.



Why Identity Mapping

근데 여기서 왜 Identity Mapping이 필요한가 생각할 수 있습니다. Residual Unit은 전파 정보를 직접적으로 전달하는데 집중합니다. h(x)나 f(x)같은 identity mapping이 포워드 패스(forward pass, 네트워크의 input을 end로 전파시키는 것)와 역전파시 한 Unit에서 다른 Unit으로 전달하도록 합니다!

Back Propagation

E(Epsilon)을 loss function으로 나타냈을 때, chain rule에 의한 역전파시 다음과 같은 식을 얻을 수 있습니다. gradient는 두가지 항으로 나눌 수 있습니다. 첫번째 항은 다른 어떤 weight layer의 방해 없이 정보를 직접적으로 전파할 수 있습니다. 두번째 항은 weight layer를 거쳐 전파를 하게 됩니다.

또한 (4)는 mini batch의 모든 sample이 두번째 항을 -1로 만들경우는 거의 없기 때문에 gradient가 0이 돼 취소돼지 않습니다.

Several types of Skip Connection

일반적인 skip connection이 아닌 여러 버전의 skip connection을 시도하였습니다.



여러가지 skip connection 방식을 시도해봤지만 역시 original skip connection이 정확도가 가장 높았습니다.