Blog Content

    티스토리 뷰

    [딥러닝] 경사 하강법 (오차 수정하기)

    오차 수정하기: 경사 하강법


    그래프에서 오차를 비교하여 가장 작은 방향으로 이동시키는 방법

    미분 기울기를 이용


    미분 : 한 점에서의 순간 기울기

    함수 f(x)를 x로 미분하라는 것은,

    x의 변화량이 0에 가까울 만큼 작을 때

    y 변화량의 차이를

    x 변화량으로 나눈 값(순간 변화율)을 구하라는 뜻


    1. 경사 하강법

    이차 함수 그래프에서 기울기 a를 변화시켜서 그 자리에서 미분하면 각 점에서의 순간 기울기가 그려진다.

    우리가 찾는 최솟값 m에서의 순간 기울기는

    이차 함수 포물선이므로, x축과 평행한 선이 된다.

    즉 기울기가 0이다.

    따라서 우리가 할 일은 '미분 값이 0인 지점'을 찾는 일이다.

    이를 위해 다음 과정을 거치는데

    1) a1에서 미분을 구한다

    2) 구해진 기울기의 반대 방향으로 이동시킨 a2에서의 미분을 구한다

    3) a3에서 미분을 구한다

    4) 3)의 값이 0이 아니면 위 과정을 계속 반복한다.


    경사 하강법은 이렇게 반복적으로 기울기 a를 변화시켜서 m의 값을 찾아내는 방법이다.


    2. 학습률

    학습률을 너무 크게 잡으면 한 점으로 수렴하지 않고 발산한다.

    따라서 어느 정도 이동시킬지 신중히 결정해야 하는데,

    이때 이동 거리를 정해주는 것이 바로 학습률이다.

    딥러닝에서는 학습률의 값을 적절히 바꾸면서 최적의 학습률을 찾아 가는 것은

    중요한 최적화 과정 중 하나이다.


    참고) '케라스는 학습률을 자동으로 조절해 준다고 한다.'


    다시 말해, 경사하강법은 오차의 변화에 따라 이차 함수 그래프를 만들고

    적절한 학습률을 설정해 미분 값이 0인 지점을 구하는 것이다.


    y절편 b의 값도 같은 성질을 가지고 있어서, b값이 너무 크거나 작으면 오차도 함께 커진다.

    그래서 최적의 b값을 구할 때 또한 경사 하강법을 사용한다.


    3. 코딩으로 확인하기 (경사 하강법)


    4. 다중 선형 회귀

    상황에 따라 더 정확한 예측을 위해 추가 정보를 입력해야 하며,

    정보를 추가해 새로운 에측 값을 구하려면 변수의 개수를 늘려 '다중 선형 회귀'를 만들어 주어야 한다.

    예를 들어 x2로 과외 수업 횟수의 독립 변수가 생겼다고 가정하면

    y = a1x2 + a2x2 + b 와 같은 식이 나온다.


    이 두 기울기 a1, a2는 어떻게 구할 수 있을까?

    경사 하강법을 그대로 적용하면 된다.


    5. 코딩으로 확인하기 (다중 선형 회귀)


    Comments