본문 바로가기
딥러닝

[딥러닝 논문 리뷰] Understanding Deep Learning Requires Rethinking Generalization2

by 미스터탁 2022. 12. 10.

저번 포스트에서 이어서..

 

저자들이 주로 이야기하고 있는 것은 앞전 포스트에서 서술 하였듯이, NN가 학습데이터에 대해서 일반화하는 것이 아니라 외우는 것이다. Generalization에 대해서 다시 생각해볼 필요가 있다는 것이였습니다. Drop-out, BN 등 generalization에 도움이 되는 테크닉을 써도 잘 외운다라는 것을 보였습니다.

 

이어서 저자들은, NN의 expressivity에(표현성) 대해서 이야기하고 있습니다. NN의 expressivity에 대한 연구는 사전에 많이 진행되어 왔는데, 대부분 "population level"에 대한 연구입니다. 좀더 효율적인 것은 우리가 가지고 있는 도메인 데이터 n에 대해서 NN가 어느정도의 expressive power가 있는지 아는 것일 겁니다.  저자들은 이에 대해 다음과 같은 Theorem을 제안합니다.

 

 

"(2n + d) 의 weight를 가지고 ReLU를 사용하는 2 hidden NN은

D차원의 n개의 샘플에 대한 어떠한 함수든 표현가능하다. "

 

 

 

 

이 Theorem에 대한 증명은 그렇게 어렵지는 않습니다. 어떤 실수 값을 나열했을때 b1<x1<b2<x2.. <bn<xn으로 정렬을 하고 아래 행렬 A처럼 구성하였을 때, 행렬 [1,2]와, [1,3]은 x1-b2, x1-b3로 둘다 0보다 작은 값이 됩니다. Relu function (max(x,0))에 넣게 되면 자연스럽게 0이되고 행렬 A는 당연히 Lower Triangular matrix가 됩니다. 

 

행렬 A는  Lower Triangular matrix이기 때문에 자연스레 아래와 같은 특성을 지닙니다.

  • A의 rank는 N
  • 모든 eigenvalue는 diagonal element
  • 가장 작은 eigenvalue 는 diagonal element 중 가장 작은 것

한편, (2n + d) 의 weight를 가지고 ReLU를 사용하는 2 hidden NN을 함수형태로 표현한다면 아래와 같이 표기 할 수 있습니다.max{<a,x>-b,0}이 앞서 표기하였던 행렬 A이고 거기다 Wj를 추가하면 2개의 hidden layer가 되죠.

 

 

 

그런데 샘플과 타겟벡터를 각각 

라고 할때,  아래 두 명제는 동치라는 것을 알 수 있습니다.

 

"(2n + d) 의 weight를 가지고 ReLU를 사용하는 2 hidden NN은 

D차원의 n개의 샘플에 대한 어떠한 함수든 표현가능하다." 

 

"모든 i에 대하여 

를 만족시키는 w, b, a를 찾을 수 있다면 샘플 S와 타겟 y에 대한 1:1함수 c를 찾을 수 있다."

 

 

반응형

 

즉 두 명제가 동치이기 때문에, 아래 문장에 대해 증명을 함으로써 첫번째 명제를 증명하겠다는 이야기 입니다. C(zi)는 다음과 같이표현이 가능하고 결국에 행렬 A의 rank는 n이고 역행렬이 존재하기 때문에, 임의의 a,b에 해당하는 w를 항상 찾을 수 있습니다. 
 

 

사실 2개의 hidden layer가 있는 NN은 어떤 함수는 approximation이 가능하다는 것은 universal approximation theorem으로 기존에 잘 알려져 있던 사실인데, 저자들이 이렇게 증명 하는 이유는 특정 layer에 대한  expressive power에 대한 증명을 수식적으로 잘 증명하였기 때문인 것 같습니다. 

 
 
앞서 언급하였던 것처럼 Drop-out, BN 등의 explicit regularization 에 해당하는 테크닉들은 Generalization에 대한 설명을 잘 해주지 못하고 있습니다. 그럼 Implicit regularization은 어떤가에대해서 이야기하는데 논문에서는 Stochastic Gradient Descent(SGD)에 대해서 이야기하고 있습니다. 다음과 같은 문제를 푸는 일반적인 Linear문제를 생각해봅시다. 단순한 회귀식을 생각하시면 될것 같습니다. loss는 MSE로 생각하시면 됩니다.
 

 

 

이 문제를 SGD도 풀려고 한다면 Weight의 update는 

로 되겠죠. 그런데 여기서 만약 초기 W값을 0으로 가정한다면 W1은 

이 될것이고 결국에는 

가 되게 됩니다. 즉 W는 어떤 상수 a와 X의 선형결합의 형태가 된다는 것이죠. 이를 우리가 풀고자 하는 문제인 

에 대입하면, 

에 끼워 넣으면,

 이 됩니다.일반적으로 

는 invertible 하지 않기 때문에, Kernel tric을 사용한다고 합니다. 결국에는 SGD가 L2 loss 에 대하여 minimum norm 솔루션을 제공할 수 있다라고 이야기하고 있습니다.

 

 

 

저 방식데로 단순히 행렬 W를 구해서 실험을 해봤더니 아래와 같이 굉장히 좋은 성능이 나왔다고합니다. 그런데 MNIST의 preprocessing에 대한 실험 비교를 보시면 Gabor filters를 적용한 실험이 더 좋은 결과를 보였는데, L2 Norm이 preprocessing을 하지않은 것보다 오히려 더 높게 나왔습니다. L2 norm과 일반화 능력에 대한 기존의 관점과 대치 된다는 것인데요. (L2 Norm을 최소화하면 성능이 더 좋다라는 관점과 대치되는 결과라는 것이죠). SGD가 Generalization하는데 도움이 되는 것 같기는 한데 완전히 맞지는 않는다. 좀더 연구가 필요할것 같다 라는 미지근한 결론을 내리면서 논문이 마무리 되고 잇습니다.
 

 

다시 요약하면 

 "기존 잘 알려진 성능이 좋은 NN모델들은 training set에 대하여 거의 완벽하게 overfitting을 시킨다"

 "딥러닝은 학습데이터에 대하여 암기를 하는것이지 일반화능력을 가지는 것은 아니다" 

 "Generalization error를 구하는데 다시생각해볼 필요가 있다. random label실험과 같은 간단한 실험으로 보는게 더 효율적이다"

 "Drop-out, BN, Weight Decay같은 Implicit regularization등은 Generalization하는데 거의 효과가 없다" 

 "SGD는 Generalization하는데 도움을 주기는 하나 완벽하지는 않다"

라고 정리 할 수 있을 것 같습니다.

 

이전 포스트에서 언급했던 딥러닝 모델은 잘 속는다는 내용의 논문과 하고 싶은 이야기가 다르긴 하지만 궁극적으로는 딥러닝에 모델의 약점에 대해서 이야기하고 있는 것은 같습니다. 단순히 기존에 잘 알려져있던 Universal Approximation Theorem만 생각해봐도 Hidden layer가 2개인 NN가 어떤 함수는 Approximation할수 있다는 것은, True Label이 아니라 random label일 때도 마찬가지라는 것을 알수 있습니다. 즉, 어떤 함수라는 것은 X와 Y의 관계가 어떻든간에 fitting 시킬수 있다는 의미이죠. 단순히 와 NN은 모든걸 다 맞출 수 있구나 라고 생각했었는데. 이 논문을 읽고 반성하는 시간을 가져보았습...ㅠ. 앞으로 이런쪽의 연구가 더 활발히 진행되지 않을까 싶습니다.

 
 

 

 

 

참고자료 : 
https://www.slideshare.net/thinkingfactory/pr12-understanding-deep-learning-requires-rethinking-generalization

https://www.slideshare.net/JungHoonSeo2/understanding-deep-learning-requires-rethinking-generalization-2017-12

https://arxiv.org/pdf/1611.03530.pdf

 

 

 

 

[PyTorch] 쉽고 빠르게 배우는 딥러닝(할인쿠폰코드) 369-7c698142f82e

https://www.inflearn.com/course/PyTorch-%EB%94%A5%EB%9F%AC%EB%8B%9D

반응형

댓글