Study 2014/03/02

이번주는 몸이 좋지 않아 TSG 스터디는 결석했다. 그 외의 다른 공부도 열심히 하지 못했다. 뜻을 이루려면 체력부터 확보해야 한다는 말이 참 와닿는다.

TSG 모임에서 falsetru 님의 mmix 디버깅 강의 가 있었다고 한다. 그 외에는 MLDSS, Coursera 공부를 좀 했다.

건강 회복을 위해 특단의 조치를 취했다. 주말을 이용해서 활을 배우기 시작. 관악구 제2 구민운동장 옆에 있는 관악정에서 입회신청서를 쓰고 왔다. 적어도 한달 이상 꾸준히 하게 된다면 이 블로그에 격주로 국궁 입문기가 연재될 수도 있다.


MLDSS: Regression, Machine Learning in Action 8장

이 전 장까지는 Part 1: Classification 이었다. 8장은 Part 2 의 시작으로, 그 첫 주제는 Linear Regression 이다.

What is regression?

Regression 은 우리 말로는 회귀분석 이다. 이름이 왜 이런지는 그냥 잊도록 하자.

Regression 은 Classification 과는 달리 결과을 예측한다. 이 전에 공부했던 Logistic Regression 에 속지 말자. Logistic Regression 은 Classification 이다!

이 장에서는 Coefficients 에 대해 선형으로 결과를 예측하는 Linear Regression 기법들을 다루고 있다. 다시 말하지만 결과가 선형이라는 것이 아니라, Coefficients 에 대해 선형이라는 뜻이다.

Types of Linear Regression

Ordinary Least Square Regression

오차의 제곱이 최소가 되는 선형 모델을 구한다. 왜 제곱이냐? 1. Sign 문제 해결, 2. 계산하기 좋음.

시각적으로 설명해 보자면 아래 그래프의 녹색 선(에러)을 제곱한 값들의 합을 최소화하고 싶은 것이다.

svg

이걸 식으로 쓰면 이렇게 된다.

$$\sum_{i=1}^{m}{(y_i - x^{T}w)^2}$$

Gradient Descent 같은 최적화 기법으로도 풀 수 있지만, 책에서는 normal equation 으로 풀었다. 결과적으로,

$$\hat{w} = (X^{T}X)^{-1}X^{T}y$$

이 식을 풀면 된다. 자세한 내용은 여기 혹은 여기 등등을 참고하자.

Locally Weighted Linear Regression

이 장에 있는 기법 중 유일하게 좀 튀는 방법이다. 혼자만 Non-parametric 에 속한다. 언젠가 공부했던 kNN 과 매우 유사하다. 이름이 조금 다르지만 위키피디아의 Local Regression 이 이 녀석이라고 생각된다.

전체 데이터를 설명하는 모델을 찾는 것이 아니라, 예측을 원하는 피처가 주어졌을 때 그 피처 주변의 데이터에 큰 가중치를 두고 Linear fitting 을 해서 즉석에서 모델을 만들고 그 모델로 값을 예측한다. 따라서,

  • Predict 할 때마다 전체 데이터를 모두보아야 하므로 느리다
  • 피처가 정의역 전 영역에 고루 퍼져있는게 좋다

라는 kNN 과 거의 같은 단점을 가진다. 이 부분부분에 대해서만 linear fitting 을 하기 때문에 전체 데이터를 따라가며 그래프를 그려보면 전혀 선형적이지 않을 수 있다. 아래 그래프는 그 예. 위의 Local Regression 페이지에서 가져왔다.

svg

피처 주변의 데이터에 큰 가중치를 주고 - 를 위하여 피처의 거리에 따라 감소하는 함수를 사용하는데, 책에서는 Gaussian function 을 쓰고 있다. 당연히 가우시안 함수의 퍼지는 정도를 조정하는 파라미터에 따라 가중치가 얼마나 지역적-전역적인 fitting 을 하는지 달라질 수 있다.

$$w(i,i) = exp(\frac{|x^{(i)}-x|}{-2k^2})$$

여기의 k 가 얼마나 근처의 영향을 크게 받을 것인가를 다루는 값이다. 책에서 관련 그래프를 훔쳐와 보았다.

png png

Ridge Regression

Ordinary Least Squares 의 Cost Function 에 coefficients의 L2-norm 을 추가한 것이다.

$$\sum_{i=1}^{m}{(y_i - x^{T}w)^2} + w^{T}w$$

이 식은 미분이 가능하기 때문에 비교석 쉽게 풀 수 있다. Coefficients 가 클수록 페널티를 받기 때문에, 가능하면 크기가 작은 coefficients 를 쓰도록 모종의 압력을 가하고 있다고 볼 수 있다. 일종의 Regularization 으로 볼 수 있다. 책에서는 Shrinkage 로 설명하고 있다. 내가 내공이 부족해서 둘의 차이, 혹은 의미를 정확히 모른다.

Sh. 님에 따르면 인류는 아직 왜 0으로 끌어당기는건지는 모르지만 해보니 잘 되더라 는 상태라고 한다.

Lasso Regression

Ordinary Least Square method 의 Cost Function 에 coefficients 의 L1-norm 을 추가한 것이다.

$$\sum_{i=1}^{m}{(y_i - x^{T}w)^2} + \sum_{i=1}^{n}{|w_i|}$$

Ridge 와 거의 비슷하다. L1 Norm 이라도 0으로 당긴다는 것 자체는 같다. 어떻게 당기느냐가 조금 다른데 … L2 에 비해서 특정 축을 진짜 0 까지 떨궈버리는 경향이 강하다고 한다. 아래는 어디에선가 발견한 참고자료다.

png

Forward Stagewise Regression

Lasso 는 정공법으로 풀어내기가 매우 어렵다. 그래서 대충 근사할 수 있는 무식한 방법을 쓰는데, 그 무식한 방법이 바로 이거.

loop (Coefficient vector 의 모든 차원에 대해 +, - 방향으로 조금씩 움직여 보며 에러가 가장 작아지는걸 고름)

더 설명할게 없다 … 안습. :’(

Bias-Variance tradeoff

이 챕터가 Linear regression 이라서 나온 주제같다. 일단 위키피디아의 Bias Variance Dilemma 페이지를 읽어보자. 내가 지금 이해했다고 착각한 걸 바탕으로 정리를 해 보자면,

  • Bias: 모델이 얼마만큼 제한/편향을 가지고 있는가. 예를 들어 y=ax+b 를 모델로 세우면 아무리 a, b 를 잘 찾아도 표현할 수 없는 게 있다. Complexity, Expression power 등과 관련.
  • Variance: 모델이 얼마만큼 데이터의 디테일을 잘 다룰 수 있는가. 데이터의 작은 변화가 모델의 뒤집어 엎으면 곤란하다. Sensitivity, Robustness, Generalization power 등과 관련.

좀 더 잘 알게 되면 다시 정리해 보겠다. 일단 이 두가지를 동시에 낮추기는 쉽지 않다는 것만 알아두자.

Linear regression 모델들은 대체로 High bias, Low variance 라고 볼 수 있겠…지?

Extra

  • 피처를 확장해서 임의의 Polynomial 피팅을 할 수 있다. …… 그냥 그렇다고.
  • Stein’s Paradox

Coursera Model Thinking

노트에 적당히 끼적끼적인 것. 못샌긴 손가락 끝 부분은 무시하자

Ch 7. Tipping point

What is tipping point? -> The point which small change makes big effect!

Percolation model
  • Checker board
  • Forest fire
  • Information(gossip) percolation
  • Fertility: 왜 특정 기술이 동시대에 여러곳에서 독립적으로 발명되는가?
Diffusion model - They’re not tipping points!
  • $W_t$: Number of wobblies at time t
  • N: Number of total people
  • $\tau$: Transmisstion rate
  • c: contact rate

$$W_{t+1} = c\tau(\frac{W_t}{N})(\frac{N-W_t}{N})$$

Will make a graph like this:

png

SIS model

SIS: Suspectible, Infected, Suspectible again

Add cure rate, $\alpha$ to the diffusion model.

$$W_{t+1} = c\tau(\frac{W_t}{N})(\frac{N-W_t}{N}) - \alpha{W}_{t}$$

$$R_0 = c\tau / \alpha $$

If $R_0>1$, then disease will spread.

  • V: Percentage of vaccinated people

$$R_0(1-V) = r_0$$

Now, disease spread condition is $r_0>1$.

$$r_0 = R_0(1-V) \le 1$$ $$1-\frac{1}{R_0} \le V$$

This will give us the solution for the question: How many people should be vaccinated to stop disease from spreading?

Measuring tips
  • Diversity index: $\frac{1}{\sum{{p_i}^2}}$
  • Entropy: $-\sum{{p_i}log_{2}{p_i}}$

Ch 8. Growth model

Exponential growth
  • 한줄요약: 복리는 위대합니다.
  • 72법칙: 이율 r% 인 예금은 대충 72/r 년마다 2배가 됩니다.
Basic Growth Model
  • $L_t$: Workers at time t
  • $M_t$: Machines at time t
  • $O_t$: Output at time t
  • $E_t$: Consumed at time t
  • $I_t$: Invested at time t
  • s: saving rate
  • d: depreciation rate

$$O_t = \sqrt{L_t}\sqrt{M_t}$$ $$O_t = E_t + I_t \rightarrow I_t = sO_t$$ $$M_{t+1} = M_t + I_t -dM_t$$

It’s not linear! Will converge.
Long run equilibrium is made at the point: $I_t = sO_t = dM_t$

Solow Growth Model

Add technology factor to the basic model.

  • $L_t$: Labor at time t
  • $K_t$: Capital at time t
  • $A_t$: Technology at time t

$$O_t = A_{t}K_{t}^{\beta}L_{t}^{1-\beta}, 0.0 \le \beta \le 1.0$$

Let’s assume that: $\beta = \frac{1}{2}$

Technology factor is 2 -> Productivity X2, Equilibrium output X4.
Technology factor is 3 -> Productivity X3, Equilibrium output X9.

Ok, productivity is additive, equilibrium output is multiplicative.

Will china continue to grow? Why do some countries not grow?

Growth requires creative destruction

Comments