Overview
머신러닝의 학습 방법들
Gradient descent based learning
실제 값과 학습된 모델 예측치의 오차를 최소화하여, 모델의 최적 parameter를 찾는 것이 목적이다.
- Tensorflow나 Deep learning
- Linear Regression(회귀 분석)이 해당 방법론에 해당된다.
y^=ax+b
- y^ : 예측치
- ax+b 라는 Model
학습을 통해 알아내야 하는 것이 파라미터인 a와 b 이다.
기본적으로 주어지는 것은 데이터인 x의 값과 실제 y의 값이다.
(i∑my^i−yi)
위의 수식의 값을 최소화할 수 있는 a와 b 값을 찾는 과정이 Gradient descent 기반의 알고리즘이다.
Probability theory based learning
-> 확률 이론 기반의 방법론
Information theory based learning
-> 정보 이론 기반의 방법론
Distance similarity based learning
Linear Regression
예측 함수 정의
f(x)=y=ax+b(여기서 a=w1,b=w0)
손실 함수 (MSE)
i=1∑n(y^(i)−y(i))2
y^=⎣⎢⎢⎢⎡w1×8759+w0w1×10132+w0w1×12078+w0w1×16430+w0⎦⎥⎥⎥⎤,y=⎣⎢⎢⎢⎡4876128661030⎦⎥⎥⎥⎤
- y^ : 각각의 예측치들
- y : 실제값
- (y^−y)2 : Squred Error, 오차 제곱의 합을 표현하게 되면 아래의 수식이 된다.
(y^−y)2=⎣⎢⎢⎢⎡(w1×8759+w0−487)2(w1×10132+w0−612)2(w1×12078+w0−866)2(w1×16430+w0−1030)2⎦⎥⎥⎥⎤
Squared Error를 최소화할 수 있는 weight값의 발견
최대 최소의 문제를 다루게 된다.
이는 미분으로 문제를 해결할 수 있다.
i=1∑n(w1x(i)+w0×1−y(i))2
- 위의 수식에서 찾고자 하는 값은 w1,w0 이다.
즉, 예측값과 실제값의 차의 제곱을 모두 더한 것-> 오차 제곱합의 최소값을 찾기 위해 미분으로 해결할 수 있는 것이다.
Cost function
앞으로 우리는 예측을 하기 위해 필요한 함수인
f(x)=hθ(x)
예측 함수를 가설 함수(Hypothesis function)라고 부를 것이다.
- f(x) : 입력 x에 대한 모델의 예측 함수
- hθ(x) : 파라미터 θ를 가진 가설 함수
- θ : 우리가 찾아야 하는 w 값을 의미한다.
- x : 우리가 입력할 값
- y^ : 출력값
실제값과 가설 함수의 차이는 Cost function이라고 부를 것이다.
J(w0,w1)=2m1i=1∑m(hθ(x(i))−y(i))2
- J : w0,w1에 의해 결정되는 function이다.
- w0,w1 : hθ 자리에 오게 될 것이다.
- m : 전체 data의 개수
- 2m1 : 여기에서의 2는 제곱을 나중에 미분해줄 때 상쇄하기 위한 값으로 딱히 의미는 없다.
- m1 : 여기에서의 m은 숫자가 커질 수 있기 때문에 커지지 않도록 해주는 값이다.
Cost function minimization
Cost Function에서 구하는 것
argθmin(2m1i=1∑m(hθ(x(i))−y(i))2)
cost function의 최소화를 위한 weight 값
괄호 안의 수식값을 가장 작게 만들 수 있는 θ를 찾는 것이다.
수식에서는 θ 였지만, 변수명으로는 w 를 쓸 것이다.
이제 위의 cost function minimization을 미분하면 된다...
J(w0,w1)=2m1i=1∑m(w1x(i)+w0−y(i))2
∂w0∂J=m1i=1∑m(w1x(i)+w0−y(i))
∂w1∂J=m1i=1∑m(w1x(i)+w0−y(i))x(i)
- 고등학교 때는 dxdy 로 배웠던 수식이 여기에서는 ∂w0∂J 이렇게 사용된다.
- 미분을 해야 하는 변수가 하나일 때는 보통 d를 사용한다.
- 한 개 이상인 경우
== 즉 여기서 편미분을 할 때는,
== w0에 대해 미분을 하게 될 때는
∂J에 관한 식으로 미분을 하라.
합과 도함수 계산
f(x)=i=1∑521x2
- 동일한 항 21x2를 5번 더한 함수
- 이 식을 풀어서 x에 관해 미분을 하게 되면, 아래와 같은 식이 나오게 된다.
dxdf=x+x+x+x+x=i=1∑5x
합성 함수의 미분
Derivative of f(g(x))
- 체인 룰(chain rule)을 적용한 미분 공식이다.
dxdf=dudf⋅dxdu,let u=g(x)
f=(2x−1)2,dxdf=2(2x−1)⋅2
- 함수 f=(2x−1)2 에서 편의를 위해 A=(2x−1)로 치환하면, f=A2로 바뀐다.
- 먼저 A2을 A에 대해 미분하면,
dAdf=2A 가 나온다.
- 이제 다시 A=2x−1 을 x에 대해 미분하면,
dxdA=2 이렇게 나온다.
- 최종적으로 2(2x−1)∗2가 남게 된다.
따라서 체인 룰을 적용하면 전체 미분 결과는 아래와 같게 나온다.
dxdf=dAdf⋅dxdA=2(2x−1)⋅2
weights의 최적값을 컴퓨터가 찾는 방법
- 연립방정식 풀기 (normal equation)
- gradient descent
REFERENCE
너무 어려워요...