본문 바로가기
AI

머신러닝 스터디 -01 Linear Regression

by Wonryeol 2020. 3. 14.

Linear Regression 정리 

 

 

여러 데이터셋을 통한 Linear Regression 방정식이 가장 기본적인 머신러닝이다.

 

Linear 로부터 Logistic 등으로 발전 되는 만큼 기초를 탄탄히 해 볼 필요가 있다. 

 

근본적인 알고리즘으로는 Gradient Decent Algorithm 이 존재하는데, 

 

 

이러한 알고리즘은 cost 값을 줄여나가는 알고리즘이다.

 

그렇다면 어떻게, 이 알고리즘은 cost값을 줄여나갈까? 

 

 

cost 값을 그래프로 나타낸다면 아래와 같은 표가 나오는데 , 

이 그래프 속에서 조금씩 값을 변환시켜 cost 값이 수렴되는 값, 즉 linear 에 맞는 W 값을 찾는 것이다. 

 

그리하여 gradient ( 경사 ) 를 내려가듯이 ( Decent )  값을 찾는다

이렇게 이름을 빌려 gradient decent algorithm 인 것이다. 

 

알고리즘의 수식은 아래와 같다

이가 의미하는 바는 무엇일까

 

가장 강력하게 의미하는 바는 미분이다. 

 

cost 값의 그래프에서 특정 w일때 의 미분값, 즉 기울기를 구한다면, 알파값 ( learning rate ) 과 곱해 져, 조절되는 정도를 조절 할 수 있다 .

 

예를 들어 , 0.01(learning rate ) * -7  이라고 한다면, -7이라는 뜻은 -7만큼 cost 값이 수렴되지 않을 정도로 멀리 있으니 , 많이 줄여야 한다는 뜻이다. 

그렇다면 간단히 이렇게 해석 가능하다  --> 부호 = 방향 /  상수 = 크기 

 

하지만 이때, learning rate 를 조절을 잘 못 해 준다면 학습에서 Nan 이 발생할 수 있는데 그 이유는,  

이와 같이 크게 변동되어 특정 값에 수렴하지 못하고 지속적으로 변동 되는 문제가 발생하기 때문이다. 

이때는 learning rate 를 조절하거나 학습 량을 조절하는 등의 방법으로 진행한다. 

 

또한 Nan 이 발생하는 경우는 존재한다. 

 

데이터 차가 클 경우인데 , 이는 정규화로써 해결 가능하다. 

 

def min_max_scalar(data):

  numerator = data - np.min(data, 0)

  denominator = np.max(data, 0) - np.min(data, 0)

  return numerator / (denominator + 1e-7)

 

정규화 메소드는 다음과 같다 .

 

 

-- gradient decent algorithm / Nan 오류 발생 정리 

 

 

댓글