티스토리 뷰

728x90

 

 

항등 함수는 잔여 블록의 훈련을 용이하게 만들어 줍니다. $a^{[l]}$과 $a^{[l+2]}$이 같아지는 것도 skip connection 때문입니다.

 

 

이것이 의미하는 바는 신경망에 이 두 층을 추가해도 이 두 층이 없는 더 간단한 네트워크 만큼의 성능을 갖게 된다는 것입니다. 그 이유는 항등 함수를 학습하여 $a^{[l+2]}$에 $a^{[l]}$을 대입하면 되기 때문인데요.

 

 

이 두 층을 추가했더라도 이것이 바로 잔차 블록을 거대한 신경망 어딘가에 추가해도 성능에 지장이 없는 이유입니다.

 

우리의 목표는 성능에 지장을 주지 않는 것이 아니라 향상하는 거라서 이 은닉 유닛이 학습을 할 수 있다면 항등 함수를 학습하는 것보다 더 나은 성능을 보여줄 수 있습니다.

 

이러한 스킵 연결 없이 만들어진 아주 깊은 네트워크의 문제는 깊게 만들려고 하면 할수록 항등 함수를 학습하는 거라도 변수를 선택하기 어려워지기 때문인데요.

 

따라서 많은 수의 층이 오히려 성능을 저하 시킬 수 있습니다. ResNet이 잘 작동하는 주된 이유는 추가된 층이 항등함수를 학습하기 용이하기 때문입니다. 즉, 성능의 저하가 없다는 것을 보장할 수 있고 또는 운이 좋다면 성능을 향상시킵니다.

 

 

기본적으로 성능에 손해가 없고 경사 하강법으로 더 나아질 뿐이어서 성능 향상에 기여하게 됩니다.

 

 

한 가지 더 다룰 점은 여기의 덧셈은 $z^{[l+2]}$와 $a^{[l]}$이 같은 차원을 가진다고 가정하는 것입니다. same convolution이 차원을 유지 시켜 줍니다.

 

결과적으로 두 개의 동일한 차원의 벡터를 구할 수 있습니다.

 

 

$W_s$에는 여러 선택지가 있는데 학습된 변수를 가진 행렬일 수도 있고, zero padding으로 고정 값을 가진 행렬이라서 차원을 유지 시켜 줄 수 있습니다.

 

 

728x90
댓글