2020년 10월 14일 수요일

Reading MLF - 3. Bayesian Regression and Gaussian Processes

 이번 챕터는 기본적으로  Bayesian  Regression에 관한 내용이 주를 이룹니다. 

가장 기본적인 Bayesian linear regression model부터 시작해서, 다양한 form들을 복습하고 Gaussian Process를 바탕으로 한 surrogate derivative modeling으로 챕터를 끝마칩니다.

각설하고, 내용 정리로 들어가보겠습니다!

내용 정리

- 3.2 Bayesian Inference with Linear Regression

일변수 Bayesian linear regression model (noise-free setting) -> + Noise -> + Multivariate

3가지 setting에서 모두 posterior를 도출하는 것까지 다루었음.

가장 Generalized Model의 posterior =

형태가 된다. (D는 X,Y / theta는 probabilistic parameter / mu는 theta의 mean / Sigma는 theta의 covariance matrix / mu prime과 Sigma prime은 posterior of theta의 mean and covariance matrix)

여기서 짚고 갈 점은 posterior dist의 mean ( =MAP) = mode이라는 점(Gaussian의 결합이므로 자명히 Gaussian이 되기 때문)이고, 이는 log prior 기반 L2 penalized MLE와도 같다는 점이다. 

내용 중 오타가 있는 것 같은데, Fig. 3.2에 나오는 f(x)는 0.3 + 0.5x가 아니라 -0.3 + 0.5x가 맞는 것 같다.

- 3.2.1 Maximum Likelihood Estimation

known noise setting에서 negative log-likelihood의 gradient는 OLS estimator와 같다.

unknown noise setting에서는 일계편미분 값을 활용, noise hat을 도출할 수 있다.

그러나 MLE는 오버피팅에 취약하기 때문에 MAP를 사용하는 것을 권장한다. 따라서 MAP estimator를 다시 구해볼 수 있다.

MAP와 MLE의 차이는  term 에 기인한다. 책에는 'This term has the effect of reducing the condition number of표기되어있는데, 이를 명확히 이해하지는 못했다. condition number는 함수의 output이 얼마나 input에 민감한지를 나타내는 정도라고 하는데 선형시스템에서의 민감도라고 이해하면 될 것 같다. 

(Condition number에 대한 참조: http://jaejunyoo.blogspot.com/2019/07/how-sensitive-is-my-system-condition-number.html)

아무튼, 해당 term은 민감도를 낮춰주는 역할이 있다고 하는데 왜 그런건지는 사실 잘 모르겠다. 다시 볼 때 추가해보도록 해야겠다.

추가로, 위에서 설명했던 L2 penalized MLE와 MAP가 같아진다고 했는데 이는 isotropic Gaussian prior를 선택할 경우에 해당된다. 

로 prior를 선택하게 되면, Sigma가 lambda * Identity Matrix가 되므로 loss function이 ridge penalty term과 같아진다. 따라서 prior는 ridge regression에서의 regularization term으로도 해석할 수 있게 된다. 나는 원래 L2 penalty term이 regularization효과를 갖는 것에 대한 설명이 솔직히 명확하게 딱 이해가 되지는 않았다. Overfitting을 막기 위해 weights의 size를 줄인다는 게 그냥 효과가 있으니 사후적으로 갖다붙이는 설명에 가깝다고 생각했다. 그래서 차라리 역으로 ridge penalty term을 사용하면 prior를 사용하는 효과가 있으므로 좀 더 robust해진다고 이해하는 게 더 깔끔하지 않나 싶다. 덧붙여 생각해본 점은 딥러닝의 dropout 또한 연장선에 있지 않을까 하는 점이다. (나중에 뉴럴넷 파트에서 나오지 않을까 하는 기대가 있는데, 만약 나오지 않는다면 이 부분도 추가해볼 예정이다.)

- 3.2.2 Bayesian Prediction

새로운 data point x*가 등장했을 때 어떻게 prediction을 할 지에 관한 내용이다. 어차피 function 자체가 Gaussian이기 때문에 1차, 2차 모멘트만 알면 posterior를 구할 수 있다는 내용이다. 굳이 entire density function을 적분할 필요가 없다는 뜻.

- 3.2.3 Schur Identity

3.2.2와 다른 방법으로 prediction을 하는 방법이다. 

에 Schur Identity를 사용해서 condition distribution의 모멘트들을 바로 구할 수 있다.

(Schur Identity = 

 )

- 3.3 Gaussian Process Regression

GP에 대해서 자세히 설명해주기보다는 Reference를 많이 적어놓고, 설명을 해준 부분이다. Financial Time Series prediction에 많이 적용되었다고 한다. 또 Asset Portfolio Optimization이나 Derivative Pricing / Greeking / Hedging 등등에 사용된다고 한다. 챕터 마지막에 예시가 등장하는 것 같으니 기다려보자. GP 파트도 Bayesian regression과 비슷한 흐름으로 흘러간다. 설명 & prediction & Variation 순서로 이어지는데, GP를 제대로 파본 적이 없어서 여기 내용만 가지고는 이해하기 힘들 것 같다. 앞에 Ch.2에서는 Bayesian 설명에 그렇게 지면을 많이 할애해놓고 GP는 그냥 레퍼런스만 달아놓고 넘어가는지 잘 이해는 되지 않지만... 무튼 차후에 GP 공부를 더 하고나서 GP 내용을 추가하는게 좋을 것 같다.

나중을 대비해서 링크를 달아놓는 편이 좋겠다.

'Gaussian Processes for Regression: A Quick Introduction' - https://arxiv.org/abs/1505.02965

'Gaussian Processes in Machine Learning' - https://www.researchgate.net/profile/Olivier_Bousquet/publication/238718428_Advanced_Lectures_on_Machine_Learning_ML_Summer_Schools_2003_Canberra_Australia_February_2-14_2003_Tubingen_Germany_August_4-16_2003_Revised_Lectures/links/02e7e52c5870850311000000/Advanced-Lectures-on-Machine-Learning-ML-Summer-Schools-2003-Canberra-Australia-February-2-14-2003-Tuebingen-Germany-August-4-16-2003-Revised-Lectures.pdf#page=70

GP(3~4)를 건너뛰었고 바로 Example로 갔다.

- 5. Example: Pricing and Greeking with Single-GPs

European Option Pricing & Greeking을 GP를 통해서 하는 Example이다. Setting은 자세히는 적지 않겠지만 Heston Dynamics(https://en.wikipedia.org/wiki/Heston_model)를 사용했고, Data Generation은 Fourier Cosine method(https://repository.tudelft.nl/islandora/object/uuid%3A9aa17357-af21-4c09-86a2-3904ced4b873)을 이용했다. 추가로, Kernel Combination을 derivative modeling의 extrapolation에 활용할 수 있다. 여기서는 linear kernel과 SE kernel을 사용하였는데, 적당한 linearity와 non-linearity를 주기 위함이다. 

기술되어 있는 설명은 온전히 이해한 것은 아니고(ㅠ) 맥락을 파악하고자 정리한 것이다. 아마 Kernel 부분을 명확히 이해한다면 눈이 트이지 않을까 싶다.

-5.1. Greeking

First Order MtM Greeks는 Prediction에서 사용된 Moments들을 미분하여 구해질 수 있고, training 과정에서 계산량을 많이 요하는 부분이 이미 도출되어 있으므로 그닥 많은 계산을 요하진 않는다. 

-5.2. Mesh-Free GPs

Option Pricing을 하면 보통 3차원 데이터로 표현하게 되는데, X,Y축을 각각 Underlying Asset Price랑 잔존시간 혹은 Volatility로 표현하게 된다. 여기서는 Volatility를 깔고 표현했는데, 물론 이것만 가지고 Option Pricing이 모두 이루어지는 것은 아니다. 따라서 Input dimension이 커질수록 training points는 어마무시하게 증가한다. 이를 위해 fixed grids를 이용하는 것이 아니라 상대적으로 적은 수의 reference points들을 가지고 근사를 하게 된다(Mesh-Free). Function에 따라서 다르지만 GP는 합리적인 수준에서 가능하다.

-5.3. Massively Scalable GPs

Training Sample을 10배 늘리면, training time은 1.4배 증가하는데 비해 prediction time은 2배 증가한다고 한다. Memory latency 때문이라는데, 내가 관심 있는 부분은 아닌 것 같다.(실제로 분량도 1페이지가 채 안된다.)

-6. Multi-response Gaussian Processes

3~4 이해하고 나서 다시 두드리겠다.


우선 Ch.3는 이 정도로 마무리하려고 한다.

Bayesian Regression은 어느 정도 이해했는데 GP는 좀 더 해야할 듯 싶다.

근데 둘 다 Series Data말고 다른 Pricing에는 효과가 별로 없는 건가..?

Option Pricing은 사실 현실에서의 데이터가 모델을 따라 움직이는 경우도 많다고 알고 있어서 그냥 Model을 잘 짜는 것과 GP를 트레이닝하는게 큰 차이가 있는지 잘 모르겠다. Performance 비교도 안되어있고 해서 이게 어느 정도 능력을 보여줄 수 있는지 가늠이 잘 안 된다. 시간이 된다면 여러 가지로 작업해볼 여지가 있을 것 같다.

댓글 없음:

댓글 쓰기