여러가지공부/머신러닝(Machine Learning)

[머신러닝]경사하강법 미분 수식 풀이(Gradient Descent), 벡터 미분, Loss 함수, 학습률(Learning rate, Newton-Raphson)

끄적끄적아무거나 2023. 3. 1. 10:17
반응형

 

목차

     

     

    해당 포스트(Linear Algebra)는 유투브 혁펜하임의 강의 내용을 듣고 제 생각대로 정리한 내용이라 틀린 내용이 있을 수 도 있습니다.

     

     

     

     

    선형 회기 Loss 함수 최소 값 찾기

     

    수식1

     

    앞서 포스트에서 선형회기(Linear Regression)에 대해 알아보았고(https://scribblinganything.tistory.com/668) 회기 모델을 만들기 위해 위 수식1을 최소화 하는 것이 데이터를 대표하는 모델이라는 것에 대해 확인하였습니다. 수식1은 Loss Function으로 2차 방정식입니다. f(x) 값이 작을 수록 loss 가 작아지는 것입니다.

     

     

    수식2

     

    찾고 싶은 값은 x 벡터(vector) 값입니다. 여기서 a는 기울기 b는 절편의 값입니다. 나머지 y벡터와 A 행렬은 이미 알고 있는 데이터 값입니다.

    그림1

     

    f(x) 값이 최소가 될때의 x 벡터를 찾으면 됩니다. 이때 노란색 선을 보면 기울기 값인데 x벡터 최저점을 기준으로 멀어질수록 기울기 절대 값이 커집니다. 즉, 기울기 값이 작아지는 지점으로 이동해서 찾아야 합니다. 

     

     

     

     

     

     

    선형 회기 Loss 함수 미분 값 찾기(Gradient Descent)

     

    앞서 내용과 같이 결국 미분 값으로 Loss 함수의 기울기가 작아지는 지점을 찾아야 합니다. 경사 하강법(Gradient Descent)는 결국 기울기가 작아지는 점을 찾는 알고리즘이므로 경사하강법이라는 이름으로 알고리즘이 만들어 진 것입니다.

     

     

     

    수식3

    수식1과 수식2를 사용해서 Loss 함수를 미분하면 위와 같이 행렬의 형식으로 표현할 수 있습니다. 

     

     

    수식4

     

    목표는 수식4를 구하는 것입니다. 즉, Gradient를 구하는 것인데 수식4를 계산하기가 쉽지 않아서 일반적으로 구하는 방법은 아래와 같습니다.

     

    수식5

    수식5의 2개의 값을 구하고 이를 통해 수식3을 사용해서 수식4(Gradient)를 구하는 것입니다. 

     

     

     

     

     

     

    이제 수식5의 df(x) 값을 구해보도록 하겠습니다. 

     

     

    수식6

     

    수식6은 수식1을 통해 위와 같이 전개할 수 있습니다. 여기서 (dx)^2 값이 나오는 데 이 값은 미분 성질에 의해 0으로 처리해도 됩니다. 미분이 결국 dx를 분모로 나누기 때문에 (dx)^2은 나누면 dx만 남고 결국 lim(x->0)에 의해 0이 되기 때문입니다. 

     

     

     

    수식7

     

    수식6을 선형대수학을 사용해서 수식7과 같이 구할 수 있습니다. 그리고 최종적으로 우변처럼 식이 나오는 것은 아래 성질을 사용해서 구합니다.

     

    즉 Gradient 값은 dx 앞의 값이므로 아래 수식8과 같이 구할 수 있습니다.

     

    수식8

     

     

     

     

     

    경사하강법 학습률(Gradient Descent Learning Rate)

     

    수식9

    수식9에서 α 값을 Learning rate라고 합니다. 

     

    수식9는 그림1에서 Loss 함수의 최저 값을 찾기 위해서 x벡터 값을 이동해줍니다. 이때 이동 방향은 앞서 수식8의 Gradient 값의 반대로 해서 Loss 함수가 작아지는 방향으로 이동 합니다. 이때 이동 간격을 결정하는 값이 Learning rate입니다. 

     

    위 수식9에서 알파 값이 커질 수록 빠르게 이동하지만 간격이 너무 커지면 최저값을 지나서 이동할 수도 있습니다.

     

     

     

     

     

    Newton-Raphson Method

     

     

    그림2

    뉴튼 랍슨 방식은 학습률(Learning Rate)에 대한 결정 방식을 제안합니다. 그림2는 앞서 그림1의 미분 그림으로 직선이 아닌 이유는 x축 값에 따른 직선의 값이 바뀌기 때문입니다. 그리고 검은색 미분선이 0에 닿는 순간이 Loss 함수의 최저치를 의미 합니다. 

     

    뉴톤 방식은 해당 식을 한번 더 미분해서 미분식이 0이되는 점까지 x축을 이동한다는 의미 입니다. 위 그림에서 빨간색 화살표 만큼의 이동을 의미 합니다. 그래서 이동 지점에서 다시 미분을 하고 이동하는 방식으로 0에 가깝게 계속해서 다가가는 Zero Finding 방식입니다.

     

     

    수식10

    그림2를 통해 수식10과 같이 구할 수 있습니다. 이를 수식8, 9와 연계하면 Newton 방식의 learning rate는 아래와 같이 나옵니다. 

     

     

    Gradient Descent 와 Newton Method의 차이는 Gradient Descent는 사용자가 임의로 learning rate를 결정하지만 Newton Method는 2번의 미분으로 0에 가까워지는 learning rate를 Interation 방식으로 구합니다. 다만 두번 미분이 쉽지 않아 많이 사용하지 않습니다. 

     

    Newton Method의 복잡함으로 Quasi Newton Method라는 방법을 제안하기도 하는데 이는 2분 미분의 평균값을 사용하는 방식입니다.

    반응형