2020년 10월 20일 화요일

Reading MLF - 4. Feedforward Neural Networks

뉴럴넷을 다루는 걸 보니까 뭔가 고향으로 돌아온 느낌이 들어서 반가웠는데, 무언가 많이 바뀐 느낌입니다...ㅋㅋ 그동안 공부할 때는 이론보다는 적용에 더 치중했던 것 같은데 여기서는 상당히 이론에 지면을 많이 할애하네요... 천천히 정리하겠지만서도 내용이 잘 이해가 안 간다면 역시나 이후의 제게 미루도록 하겠습니다ㅠ 하하 그렇다면 바로 내용정리로! 아, 추가적으로 이제부터 *표시가 나오는 부분은 수학적으로 좀 어려운 내용이라고 합니다. 저도 책과 같은 표기를 사용하겠습니다!

내용정리

- 4.2.2. Geometric Interpretation of Feedforward Networks
뉴럴넷이 원래의 머신러닝 방법론과 어떻게 어떤 부분에서 유사한지, 어떻게 해석할 수 있는지를 설명한다. 사실 개인적으로는 다른 머신러닝 방법들과 엄청 다르다고 생각하지만 우선 정리해보겠다.

hidden layer가 없는 뉴럴넷의 경우 multivariate regression model과 거의 같다. Activation function을 어떤 것을 쓰느냐에 따라 조금씩 세부적인 차이는 있겠지만, 거의 차이가 없다고 볼 수 있다. 
hidden layer가 하나 있는 경우, 특히 hidden layer의 unit 수가 input unit과 동일한 경우는 각각의 hidden units를 reference point로 이용하게 된다고 한다. 저번 포스팅에서 작성한 내용 중 mesh-free에서 나왔던 reference point와 같은 맥락인지 모르겠으나 동일한 표현인지는 의문이 든다. 
hidden layer를 여러 개 갖는 경우는 그냥 충분한 representation 능력을 갖는 정도라고만 표시되어 있다. 이 부분을 읽으면서 느낀 건 뭔가 딥러닝을 처음 배울 때의 내가 궁금했던 것들을 최대한 설명하려고 노력한 것처럼 보인다는 것이다. 처음에 딥러닝을 배우기 시작했을 때 뉴럴넷이 Black-box라는 것에 굉장한 의구심을 갖고 어떻게든 기하학적으로 이해해보려고 노력했었는데, 결국 원하는 해답은 찾지 못했었다. 그런데 여기에서도 그닥 명확하게 설명해주고 있는 것 같지는 않다. 

Partitioning에 대해서도 짤막하게 설명이 나온다. 각각의 hidden unit은 input space를 convex region으로 나누는 manifold라는 게 partitioning이자, 딥러닝의 주요 특질 중 하나이다. 사실 실제로 딥러닝을 하면서 이 사실을 인지하는 것보다는 그냥 테크닉을 늘리고 학습을 잘 시키는 게 더 중요한 것 같긴 하지만 말이다... 아무튼! Relu의 경우를 생각해보면 각 hidden unit은 하나의 hyperplane이고, 전달받은 자극이 알맞은 side에 있을 때 활성화된다고 이해할 수 있는 것이다. 또한, 활성량은 boundary부터 자극점이 얼마나 멀리 있는지를 기준으로 산출된다고 보면 된다. activation값을 boundary로부터의 거리라는 점은 생각 못 해 봤는데 따지고 보니 그렇게 이해할 수도 있을 것 같다. 이렇게 이해한다면 딥러닝은 결국 input space를 수많은 hyperplane들로 잘게 쪼갠 후, 구분되는 영역을 output unit의 개수만큼의 색깔로 칠한다고 생각해볼 수 있을 것 같다. (Classification의 경우에 한해) Binary를 가정한다면 input space를 여러개로 쪼갠 후 각각의 region을 0으로 지정할지, 1로 지정할지를 최적화해나가는 과정과 같다. 최적화는 결국 어떻게 쪼갤지(어떤 hyperplane을 잡을지), 그리고 0으로 지정할지 1로 지정할지를 결정하는 문제가 된다.

- 4.2.3. Probabilistic Reasoning
각 element가 normal dist를 따르는 p차원 벡터 x, y를 상정하면, x와 y의 expected Euclidean distance는 p^(1/2)를 upper bound로 갖게 된다. 따라서 p가 커질수록 element 간의 거리는 멀어지게 되고, 이는 linear kernel methods와 같이 point들의 concentration에 기반한 method들이 dimensionality와 잘 scale하지 않음을 뒷받침한다. 또한, 이 loss of concentration은 input space가 어떻게 partitioned 됐는지와는 관련이 없다. hyperplane들이 구성한 convex polytope는 결국 accuracy에 덜 제한받는 data (차원이 크므로)를 기반으로 이루어졌기 때문이다. 예시를 들어보면, hidden layer의 차원이 늘어날수록 해당 hidden layer의 activation 결과값 간의 기대 거리가 늘어난다는 이야기이다. 책에서는 그냥 여기까지만 설명하고 끝나는데, 아마 말하고 싶었던 것은 hidden unit 개수를 늘릴수록 points간의 거리가 늘어나므로 좀 더 구분짓기 유리하게 된다는 점을 말하고 싶은게 아닌가 싶다. 솔직히 이 reasoning은 잘 이해가 안 된다. 많은 hidden units를 사용함으로써 이득이 되는 부분은 위처럼 기대 거리가 늘어나는 부분에서 오는 게 아니라, 더 많은 convex region들로 나눔으로써 얻는 부분에서 오는 거라고 생각하기 때문이다. 어느 정도 도움은 될지 모르겠으나, 개인적으로 별로 설득력은 없다고 생각한다. 아마 Euclidean distance 말고 차원에 scale하는 distance를 사용했을 때와 비교해보면 이 loss of concentration 파트가 주는 편익을 보다 정확히 추정할 수 있긴 할 텐데 말이다.

- 4.2.4. Function Approximation with Deep Learning*
4.2.2와 4.2.3에서 hidden unit의 개수가 많을수록 좋다는 근거를 댔는데, 사실 이는 왜 wide해야하는지에 관한 reasoning이고 왜 deep해야하는지에 관한 reasoning은 아니다. 그에 관한 reasoning은 Universal Representation Theorem으로 일축할 수 있다고 책에서는 설명하는데 왜 이렇게 얘기했는지는 잘 모르겠다. 애초에 Universal Representation Theorem에서는 하나의 hidden layer만 가지고도 어떤 연속함수든 근사시킬 수 있다고 이야기하는 건데, deep에 관한 reasoning과는 전혀 상관이 없지 않나...? 아니면 deep에 관한 reasoning은 아닌데 그냥 적어놓은 건가. 

- 4.2.5. VC Dimension
VC Dimension은 기본적으로 함수의 표현 능력을 보여준다. 어떻게 데이터가 분포해 있어도 모두 구분할 수 있는 최대의 데이터 개수를 말한다. 예를 들어 이진 분류에서의 XOR과 같은 경우 2개의 뉴런을 가진 단층 퍼셉트론으로는 어떻게 해도 정확히 라벨링을 할 수 없으므로 VC Dimension은 4 미만이 된다.(실제로는 3이다.) Test error와 Training error 사이의 갭의 상한선이 VC Dimension과 비례하기 때문에 (정비례는 아니고, 상하관계가 뒤바뀌지 않는 정도), VC Dimension을 작게 가져갈수록 Test error를 줄이는 데 도움이 된다. 그러나, VC Dimesion은 표현 능력에 굉장히 큰 영향을 미치므로, VC Dimension을 너무 작게 가져가면 underfitting이 발생하게 된다. 따라서 VC Dimesion을 적절히 가져가는 것이 (= Bias-Variance Tradeoff) 중요하다...(사실 당연한 소리긴 하다.) 사실 실전에서 사용하기에는 너무 weak하기 때문에 이런 게 있다 정도로만 알고 넘어가도 되지 않을까 싶다.

- 4.2.6. When is a Neural Network a Spline?* 
여기서는 Spline이 뉴럴넷의 특수한 케이스임을 설명한다. 즉, 우리가 원래 쓰고 있던 툴도 결국 뉴럴넷의 특수한 형태임에 불과했다는 뜻으로, 뉴럴넷이 강력함을, 그리고 더 일반적임을 보여주는 결과라고 할 수 있다. 여기서는 그냥 일변수 케이스에 정의역 또한 한정해놓고 가벼운 예시를 들어 보여주었다. 립쉬츠 연속함수에 Heaviside 활성함수, basis function에 맞춘 Layer를 설정한다면 MLP가 결국 Spline과 같게 된다는 사실을 가볍게 짚고 넘어간다.

- 4.2.7 Why Deep Networks?
4.2.4.에서 의문을 품었던 부분을 여기에서 설명해준다. 그냥 최근의 연구들을 레퍼런스로 언급하고 넘어간다. 그냥 Deep할수록 유리하다는 이야기들이다. 4.2.7.1과 4.2.7.2의 예시를 통해 Deep의 유리함과 ReLU의 유용성에 대해서 직관력을 길러주는데, 사실 엄청 와닿지는 않는 것 같다.

- 4.3. Convexity and Inequality Constraints
여러 가지 문제들을 해결하다 보면 특수한 상황이 요구되는 경우가 생긴다. 예를 들면, 근사하고자 하는 함수가 가진 특성들(볼록성, 상한/하한을 가진 경우 등)이 존재해서 그것에 맞게 뉴럴넷을 세팅해줘야 하는 경우들이 존재한다. 이 파트에서는 그런 경우들에 대한 해결방법을 제시하고 있다. 활성함수를 어떻게 세팅해야 하는지, Bias를 어떻게 잡아야 하는지 등에 대해서 말해준다. 그러나 개인적인 생각은 좀 다르다. 물론 이런 세팅이 도움은 되겠지만 볼록성이나 상한/하한을 가진 것 또한 근사하도록 해도 상관없지 않을까? 완벽히 볼록하지 않을 때에 얻을 수 있는 이점 또한 존재하지 않을까? 등등의 의문이 든다. 물론 세팅을 맞춰 놓으면 근사함수가 존재할 수 있는 차원이 줄어들기 때문에 좀 더 정답을 찾는 데에 유리하다고 말하면야 할 말은 없지만 수작업을 하는 것과 그냥 알아서 찾아가도록 하는 것에 크게 차이가 있을 지는 잘 모르겠다. 물론 나야 아쉬운 입장이니 다 공부해 놓는 편이 좋겠지만서도...
예시로 옵션가격을 예측하는 문제가 등장하는데, 사실 나는 이게 무슨 의미가 있나 싶다. 애초에 학습에 쓰는 데이터를 블랙숄즈공식에 따라서 Generation해서 쓰는데, 이건 그냥 공식을 역으로 뉴럴넷으로 찾겠다는 뜻이지 실제로 옵션가격을 구성하는 원리를 찾는 뉴럴넷이 아니지 않나? 그런데 이쪽 논문을 보면 생각보다 이렇게 Generation한 데이터를 근사해놓고 그 결과를 퍼포먼스로써 사용하는 것들이 많았던 것 같아서 이상하다. 나만 이상하게 느끼는 건가...?

- 4.3.1. Similarity of MLPs with Other Supervised Learners
앞서 계속 얘기했듯이, MLP는 원래 우리가 사용하던 툴들과 매우 유사하다. 사실 그들의 엄청난 Generalized Version이라고 이해해도 무방하다. 어떤 조건일 때 어떤 방법과 유사한지 표로 정리되어 있으니 나중에 필요할 때 참고해보자. (Mullainathan and Spiess(2017))

- 4.4. Training, Validation, and Testing
꽤 잘 알고 공부도 많이 했던 부분이므로 과감히 패스.

- 4.5. Stochastic Gradient Descent(SGD)
마찬가지로 여기도 많이 공부했었다.

- 4.6. Bayesian Neural Networks*
Deterministic한 방법론들로 해결할 수 없었던 많은 부분들을 Bayesian 방법론으로 발전을 이룩해낸 연구들이 많다. 베이지언 모델링은 대개 적은 데이터를 가지고 결과를 뽑아내야 할 때 유용하게 쓰이는데, 재미있게도 책에 이런 부분이 기술되어 있다. '뉴럴넷으로부터 도출된 확률벡터가 모델의 신뢰도(Model Confidence)로 잘못 이해되고 있다.'라는 부분이다. 레퍼런스를 보니 분명 읽었던 것 같은데 왜 나는 기억이 없는가.... 다시 꺼내서 읽어봐야겠다ㅠ 다시 VI공부도 할 겸! 다시 본론으로 돌아오면 현대의 베이지언 기법들은 거의 다 true posterior 대신 tractable한 distribution q(w)를 설정해 놓고, true posterior와 q(w)간의 KL-divergence를 줄이는 방법을 이용한다. 그 과정에서 MCMC를 이용하는데 최근에는 SG-MCMC / PX-MCMC등의 테크닉들도 나왔다고 한다. 또한 야린 갈의 dropout을 통한 uncertainty estimation도 언급되어 있다. 마지막 부분에는 Stochastic Variational Inference에 관한 내용이 짧게 언급된다. KL-divergence를 minimize하는 것은 결과적으로 ELBO를 Maximize하는 것과 같으므로 이로 대체할 수 있다. 그러나 Gradient를 직접적으로 구할 수는 없기 때문에 식변형을 통해 간접적으로 Maximizing을 수행할 수 있다. 자세한 내용은 야린 갈의 Ph.D Thesis 참조.

이로써 Ch.4도 끝났습니다. 사실 책이 이론 중심인 느낌이 살짝 나긴 합니다만 오히려 저한테는 그래서 더 좋은 것 같네요. 너무 실용적인 것보다도 기본을 중시하는 편이 공부할 때는 좋다고 생각합니다. 이제 벌써 병장도 달고 말년이 되었지만 남은 기간 화이팅해보겠습니다!

댓글 없음:

댓글 쓰기