MachineLearning - LinearRegression(2)

2019. 1. 30. 20:37Artificial Intelligence

* 자료의 모든 저작권은 COSERA에 있음을 미리 밝힙니다.



Machine Learning - Linear Regression(2)

< Linear Regression with Multiple Variables>


save image






Linear Regression with Multiple Variables. - 변수가 여러 개인 선형 회귀모델을 의미한다.

선형 모델이기 때문에 변수의 개수는 충분히 많을 수 있으나, 변수의 차수는 1차인 성질을 가지게 된다.


첫 번째 시간에 공부했던 것들을 잠시 살펴보면 변수가 하나인 선형 모델은 변수가 x 하나인 일차 함수 꼴의 가설 함수를 가지며

궁극적인 목표는, 여러 개(m개)의 학습데이터를 통해 가설 함수를 오차가 적은 방향으로 예측해 나가는 것이다.

오차가 적은 방향으로 가설 함수를 예측한다는 것은 결국 Θ_Vector(일차항과 상수항의 계수)를 예측하는 것이며 

가설함수와 실제 데이터들 간의 오차를 최소로 만드는  Θ_Vector를 예측하는 함수를 Cost - Function 즉, 비용함수라고 소개한 바 있다.


이번 시간에 공부했던 다변수 선형 회귀 모델도 궁극적으로 구하고자 하는 바는 동일하다.

가설함수와 실제 데이터들 간의 오차를 최소로 만드는 Θ_Vector를 구하고자 하는 것이 목표인 것이다.

단지, 변수의 개수(Number of Parameters or Features)가 많아졌기 때문에 벡터와 선형 대수학을 사용하여 구하는 방법이 훨씬 간단해 보인다.






save image








Gradiend Descent 방법을 사용하는 경우, Θ를 구하는 방법은 파라미터가 하나인 선형회귀모델의 경우와 동일하다.

다만, 고려해야 할 부분이 있다면, 파라미터 값들의 범위가 너무 크거나 너무 작거나, 혹은 서로 다른 두 파라미터들 간의 범위차이가 클 경우

비용함수의 최솟값을 구하는데에 비효율적인 시간낭비가 발생할 수 있기 떄문에 

파라미터 값들간의 데이터 범위를 조정해 줄 필요가 있는데, 

이 방법이 아래에서 소개하고 있는 Feature Scaling과 mean normalization 이다.


Feature Scaling이란, 파라미터의 값의 범위를 통일하여 효과적으로 비용함수의 최솟값을 구할 수 있도록 

파라미터 값을 파라미터의 표준편차값(standard deviation)으로 나누어 주는 것을 의미한다.


Mean Normalization이란 파라미터의 값의 평균을 0으로 맞추어주기 위해서 

파라미터의 값을 파라미터의 값의 평균으로 빼 주는 것을 의미한다.


Feature Scaling과 Mean Normalization의 단계를 거치고 나면, 파라미터의 범위가 -1 < X < 1로 계산하여

균형잡힌 등고선 그래프 모양을 얻을 수 있게 된다.






save image







다음으로 Learning Rate 값인 알파 값을 설정해주어야 하는데,

이 알파 값이 지나치게 작은 경우에는, 최솟값으로 수렴하기는 하나, 그 속도가 굉장히 느려 시간이 많이 소요되므로 효율성이 떨어지며

이 알파 값이 지나치게 큰 경우에는, 아예 최솟값을 지나쳐 발산해버릴 수 있기 때문에 

적당한 크기의 알파 값을 반복적 경험을 통해 산정하는 것이 중요하다.







save image







마지막으로, 주어진 데이터의 파라미터가 많은 경우, 반복적 알고리즘 수행을 통해 벡터값을 구하는 Gradient Descent 방법 뿐 아니라, 

Normal Equation 방법을 사용할 수 도 있는데, 

이 Normal Equation의 경우, 선형 대수학을 이용하여 역행렬을 통해서 벡터값을 구하는 방법을 의미한다.

그러나 역행렬을 구하고, 구한 역행렬 값에 또 다시 y벡터를 구해야 하기 때문에 시간복잡도가 높아 n = 10000 이상의 데이터에서는 

비효율적인 방법이라고 알려져 있다.







save image

반응형

'Artificial Intelligence' 카테고리의 다른 글

MachineLearning - Classification(1)  (0) 2019.02.01
Linear Regression with Octave  (0) 2019.01.31
MachineLearning - LinearRegression(1)  (0) 2019.01.28
MachineLearning - Introduction  (0) 2019.01.27
MachineLearning - Begin  (0) 2019.01.27