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 오류 발생 정리
'AI' 카테고리의 다른 글
딥러닝 -02 CNN 학습 (0) | 2020.03.31 |
---|---|
딥러닝 01 - 기초 정리 XOR 문제 해결 과정 (3) | 2020.03.22 |
머신러닝 스터디 -04 코드정리 (1) | 2020.03.17 |
머신러닝 스터디 -03 Softmax Classification (0) | 2020.03.15 |
머신러닝 스터디 -02 Multi-Variable linear regression (1) | 2020.03.14 |
댓글