본문 바로가기
Research/Machine Learning

Linearity, Non-Linearity, Linear Regression, Logistic Regression

by IMCOMKING 2014. 6. 6.

Linearity (선형성) : 두개의 벡터스페이스가 오직 덧셈의 관계로만 있는 것. 즉 독립변수X들간에 서로 상관관계가 없다.

y=ax1+bx2+...+e (그래서 보통 y=XT+E 로 표현.) 여기서 XT는 x변수들의 매트릭스임.
정의: f(a*x1 + b*x2)=a*f(x1) +b*f(x2) 를 만족하는 함수 f를 선형함수라고 한다.
Ex) 여러개의 x 변수들끼리의 관계가 선형적인 것 (덧셈 관계)
(어떤 건물에 방이 10개있다면 전체 건물의 가격은 방1에서 방10까지의 가격의 합과 비례한다.(덧셈 관계))


- 선형함수: f(x+y) = f(x)+f(y) 를 만족하고, 동시에 f(ax) = af(x)를 만족하는 함수 f를 선형함수라고 한다.
https://en.wikipedia.org/wiki/Linearity

Non-Linearity (비선형성) : y=XT+E 꼴로 나타나지않는 모든 함수. 2차함수, 사인, 가우시안 분포 등등
한마디로, 위와같이 선형적인 관계가 아닌 함수. 그러나 각 함수의 파라미터(2차함수의 계수들 이나 가우시안 분포의 평균과 분산 같이)에 대해서 어떤 데이터와 선형적인 관계일 수는 있다. 예를 들어, 키가 가우시안 분포를 따를 때 키에 대한 가우시안 분포의 평균과 나이는 서로 선형적인 관계이다.



Linear Regression (선형 회귀) : 어떤 두 데이터가 선형적 관계, 즉 직선 상의 함수로써 두 데이터간의 상관관계를 분석하고자 할 때 사용하는 기법. 예를 들어 키와 몸무게의 관계를 분석할 때 하나의 직선으로 가정하고 선형 회귀를 쓰게 된다.

Linear Regression (Multivariate Linear Regression)은 여러개의 변수들간의 상관 관계 또한 분석할 수 있다. 이경우 y=ax1+bx2+cx3+...+C 의 형태로 다변수 함수가 된다. 이 경우도 변수들간의 관계는 선형적이기 때문에 선형 회귀에 해당한다.

최종적으로 선형 회귀를 식으로 표현하면, (단, 표현상의 편의로 x_0=1로 정한다)

 

또는 벡터 내적을 이용해서 


로 표현할 수 있다. 즉 n+1개의 파라미터를 fitting하는 문제가 된다.

리니어 리그레션을 이용해 Classification 을 하려면

2개의 클래스를 한 직선 위에 놓고 리니어 리그레션을 한다. 그다음 어느 점을 기준으로 좌우 클래스를 나눈다.
그러나 이 방식은 아주 큰 값의 데이터 하나가 등장하면 기준 점이 크게 움직여 에러가 매우 높아진다.
이런 경우 로지스틱 리그레션으로 해결한다.



Linear Regression 학습 방법

https://sebastianraschka.com/faq/docs/closed-form-vs-gd.html


* Linear Regression의 Analytic Solution

데이터의 개수가 크게 많지 않은 경우, (X^T * X)의 계산량이 크지 않아 아래와 같은 form으로 단 번에 최적 파라미터를 구할 수 있다.

이 수식은 기본적으로 Convex optimization 원리를 이용, MSE loss를 미분해서 그 기울기가 0이 되는 지점을 구하는 방식으로 위 수식을 유도해 낼 수 있다.

https://towardsdatascience.com/analytical-solution-of-linear-regression-a0e870b038d5


그런데 신기한 점은 여기서 등장한 (X^T * X)^-1 * X^T 수식이 pseudo-inverse(or generalized inverse)라는 것이다. (혹은 pseudo-inverse의 derivation이 LMS의 solution을 구하면서 유래된 것인가?)

즉 아주 쉽게 생각하면,  ΘX=y의 수식에서 X의 pseudo-inverse를 양쪽에 곱한것으로 이해할 수 있다.(게다가 X의 inverse matrix가 존재하면, 그것은 항상 pseudo-inverse와 같다)

https://spartanideas.msu.edu/2015/10/21/regression-via-pseudoinverse/

https://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_inverse



Logistic Regression (로지스틱 회귀) : Linear regression을 classification에 좀 더 적합하도록 logistic function(=sigmoid function)을 씌워서 살짝 변형한 것.

로지스틱 리그레션은 그냥 리니어 리그레션에 시그모이드 함수를 씌워서 범위를 [0,1] 인 확률로 만든 것이다.(Classification을 위한 확률적 해석이 가능하도록) 따라서 성능상에서 로지스틱 리그레션과 리니어 리그레션은 둘다 선형 분류기(Linear Classifier)이고, 단순히 결과값이 classification(logstic regression)이냐 regression(linear regression)이냐 때문에 전혀 차이가 없다.(로지스틱 리그레션은 리그레션이 아니라 클래시피케이션 문제를 푸는 용도의 알고리즘이다. 이름으로인해 혼동하지 말 것.)

즉, Sigmoid 함수를 사용해서, 어떤 문제의 Classification 결과를 확률로 나타낼 때 사용한다. 예를 들어 키와 몸무게 데이터를 가지고 이 대상이 남성인지 여성인지 판별하는 문제에서 Logistic Regression 을 사용하면 이 사람은 67%로 남성이다와 같은 확률적 예측을 할 수 있다.


로지스틱 리그레션은 2가지 피팅 포인트가 있다.
1) 리니어 리그레션의 피팅을 통해 시그모이드의 X축에 데이터가 매핑되는 위치를 바꿀 수 있다.
ex) y=x 의 리니어 리그레션이면 그대로 시그모이드의 X축에 데이터가 반영됨. 그러나 y=2x로 리니어 리그레션을 하면 시그모이드의 X축에 2배 넓은 간격으로 데이터가 매핑됨.

2) 시그모이드의 어떤 지점을 기준으로 Class를 분류할 지 를 정할 수 있다.

(알고보니 이것은 자동으로 리니어 리그레션에서 결정됨)
ex) 시그모이드 함수의 0.5를 기준으로 하느냐, 0.9를 기준으로 하느냐


-----

회귀 분석 : 독립변수X와 종속변수Y의 상관 관계를 분석하는 것

단순 회귀 분석 : 독립변수X 1개와 종속변수Y 1개의 상관 관계를 분석하는 것

다중 회귀 분석 : 독립변수X 여러개와 종속변수Y 1개의 상관 관계를 분석하는 것

선형 회귀 분석 : 종속변수Y와 독립변수X의 관계가 선형적으로보고 분석하는 것

비선형 회귀 분석 : 종속변수Y와 독립변수X의 관계가 비선형적이라고 보고 분석하는 것
ex)가우시안, 로지스틱, 익스포넨셜 등

비선형 회귀 분석은 잘 쓰지 않는 듯 함. 비선형 모델은 다루기가 매우 어렵기때문에 선형적으로 변형시켜 풀어야 한다. 2차함수에서도, 그 각각의 변수의 관점에서 해석하면 결국 선형 문제로 해석 된다. 또 가우시안 분포도 평균과 분산의 2가지 변수의 관점에서의 선형문제로 볼 수 있다.

단순 선형 회귀 : 변수1개만으로 선형성이 나타나는 것(보통 여러개의 변수들의 중에서 가장 상관관계가 큰 변수 1개를 찾아내려고 노력함. 즉 단순 선형 회귀로 만들면 좋은 것임)
ex) y=ax+b 

다중 선형 회귀 : 여러개의 변수들에의해 선형성이 나타나는 것
ex) y=ax1+bx2+...+e 

--------

베르누이 분포 : 바이너리 클래시피케이션 문제를 다룰때 사용함
= logistic function, sigmoid
양끝이 수렴하는 S자 커브로 생김. 확률 0.5가 기준으로, 그보다크면 일어난다, 작으면 일어나지 않는다로 간주함

어떤 일이 X변수에따라 일어난다vs일어나지 않는다의 확률을 모델링하는데 쓰임.
ex) SAT스코어에따른 합격과 불합격을 로지스틱 분포로 나타내었을때, X점수를 받은 학생이 합격/불합격할 확률을 구하는 것.

이항 분포 : 베르누이 분포를 여러번 시행한것



Logistic Regression : http://enginius.tistory.com/475     ,      http://sqlmvp.kr/140189702419    ,     http://blog.naver.com/yjs6530?Redirect=Log&logNo=150141390728

http://en.wikipedia.org/wiki/Linear_regression

http://ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95%EC%84%B1

(로지스틱)




댓글