Normal Equation

silentbrain ㅣ 2018. 7. 11. 17:05

간단히 집크기에 대한 가격을 도출하는 스토리를 가정하자

아래와 같은 4개의 (집 크기, 가격) 데이터셋이 확보되어 있다. 


(2000, 6000)

(1500, 3000)

(1300, 2000)

(800, 1000)


구하고자 하는 가설 함수 아래와 같고 MSE가 가장 작은 과 를 구해내는 것이 최종 목표임을 잊지 말자.




1, 입력값에 해당하는 집값을 행렬로 표현(1개의 Feature를 가지고 있다)




2. 일단 열을 추가하여 1로 채운다( 때문이다. 이제 Feature는 2가 되었다.)




3. 집 값을 행렬로 표현한다.




4. 이제 행렬로 가설 함수를 표현하면!!



이렇게 된다. 이해가 안된다면 행렬 곱산 방식을 떠올려 보면 된다. 




즉, 1개의 컬럼을 가진 행렬 곱으로 1개의 를 모든 데이터셋에 대하여 표현할 수 있다..

이제 경사하강법을 행할 때처럼 여러개의 가설 함수를 표현하면 아래와 같다.





하나의 행렬 곱으로 복수의 가설 함수를 표현한 것( 여기서 의 n제곱 했다는 의미가 아니라 n번째 가설 함수를 의미한다.)






진행하기 전에 몇가지 행렬에 대한 기본 지식을 복습한다.


[항등행렬(Identity Matrix)]

를 만족시키는 I 행렬을 의미함


 <=바로 요런거


[역행렬 (Matrix Inverse)]

아래를 만족시키는 행렬을 의미함, NxN의 정방 행렬이어야만 한다.

(참고로 역행렬을 가지지 않는 행렬을 Singular 또는 Degenerate 행렬이라고 부른다.)


 

[전치 행렬(Transpose Matrix)]

 이면 




다시 위로 돌아가서,  하고자 하는 바는 아래 matrix에서 최적의 값(MSE가 가장 작은!)을 가지는  메트릭스를 찾아내는 것이다. 목표를 잊지 않도록 주의한다.






공식은 이거다. 일단 그냥 외우고 수학책을 보자 =_=; 이 공식이 Normal Equation이다.





Normal Equation VS Gradient Decent 


  Gradient Decent(경사하강법)

 Normal Equation 

  •  Learning rate, Feature Scaling 필요
  • 많은 반복 계산
  • Feature 가 클 때 잘 동작한다.
  • Learning Rate, Feature Scaling 불필요
  • 많은 반복 계산이 없다.
  • Feature가 클 경우 과도한 행렬 계산으로 느리다!(단, 컴퓨팅 파워가 증가하면서 충분히 큰 matrix를 다룰 수 있긴 하다, 요즘은 1000개 정도도 뚝딱 해버림)


그렇다면 어떤 Feature 크기를 경계로 Normal Equation과 Gradient Decent의 효율이 갈리는가를 궁금해할 수 있으나, 

딱히 정의되어 있지는 않고 경험적인 부분이 판단 척도가 되는 듯 하다.