[머신러닝] 손실 함수와 경사하강법 (Gradient Descent)

hyun·2022년 8월 14일

머신러닝

목록 보기
4/10

📚 손실 함수 (Cost Function)

손실 함수는 가중치에 대한 오차의 값을 정의하는 함수이다.
이 오차의 값을 구하는 방법에는 여러 가지가 있다.

📚 손실 함수의 종류

💡 평균 제곱 오차 (Mean Squared Error, MSE)

💡 평균 절대 오차 (Mean Absolute Error, MAE)

💡 이진 크로스엔트로피 손실 함수 (BCEE)

🧐 다중 분류에서는 크로스엔트로피 함수를 사용하지만, 이진 분류의 경우에는 별도의 손실함수가 정의되어 있다.
이는 활성화 함수 때문인데, 이중 분류의 경우 한 클래스의 확률을 알면 다른 클래스의 확률을 알 수 있는 것에 반해 다중 분류에서는 그렇지 않기 때문.

위 식에서 a는 활성화 함수(시그모이드 등)이 출력한 수, y는 분류한 클래스이다.
이진 분류이므로 분류한 클래스는 0(음성 클래스)와 1(양성 클래스)이므로 두 케이스만 등장한다.

예측률이 높을수록 낮은 손실율이 주어져야 하기 때문에 -를 앞에 곱해준다.,

  • 🤩 양성 클래스인 경우
    예측률 * 1(클래스)를 해준다.
    예를 들어 활성화 함수값이 0.9면 양성 클래스로 예측한 것이고, 손실이 아주 작으므로 -0.9로 바꿔주는 것.

  • 🤩 음성 클래스인 경우
    예를 들어 활성화 함수값이 0.2라면, 음성 클래스이므로 y값은 0인데, 0을 곱하면 0이 되어버리기 때문에 예측률을 양성 클래스에 대한 예측률로 바꾼다.
    1-0.2=0.8이 되고 따라서 손실률이 -0.1이 된다.

여기에 활성화함수 값에 로그를 사용한 게 위의 로지스틱 손실함수가 된다.
활성화함수값은 0~1 사이이기 때문에 로그를 취하면 반드시 음수가 나오게 되는데, 결과적으로 이에 -1을 곱해줌으로써 손실이 양수가 되고 이게 더 보기 편하다 !

💡 크로스엔트로피 손실 함수

📚 경사하강법 (SGD)

경사 하강법(傾斜下降法, Gradient descent)은 1차 근삿값 발견용 최적화 알고리즘이다. 기본 개념은 함수의 기울기(경사)를 구하고 경사의 반대 방향으로 계속 이동시켜 극값에 이를 때까지 반복시키는 것이다.
-WikiPedia

💡경사하강법은 머신러닝 모델의 옵티마이저(Optimizer)의 한 종류이다.
💡옵티마이저는 주어진 데이터에 대해 모델 파라미터를 최적화하는 역할을 한다.

경사하강법의 기본적인 개념은 산을 내려가는 것과 비슷하다.
산의 봉우리에서 산의 초입으로 내려가고 싶다고 하자. 이 때 가장 빠른 방법은 경사가 가장 가파른 길을 따라서 가는 것일테다. 경사하강법도 이와 같다.

경사하강법의 경우 이름에서 알 수 있듯이 오차가 가장 작은 값을 찾기 위해서 손실함수에서의 기울기를 활용한다.
오차가 최소가 되는 지점은 손실함수의 최솟값이므로 미분을 활용하는데,
한 값에서 미분값을 구해 다음과 같은 식을 적용한다.

w=wα×Lww=w-\alpha \times \frac{\partial L}{\partial w}

(단, ww=가중치, α\alpha=학습률, LL=손실함수 값)
따라서 기울기가 음수면 xx축의 가중치를 더 오른쪽으로 옮기고, 기울기가 양수라면 xx값을 왼쪽으로 움직여 손실함수의 극값 주위로 xx값을 수정한다.

이 때 기울기의 절댓값이 크면 클수록 극값에서 멀다는 뜻이므로, 이를 활용할 수 있다고.

💡 학습률 (Learning Rate)

학습률은 위 식의 α\alpha값으로, 경사하강법이 한 번에 수정할 ww값을 조정하는 역할을 한다.
α\alpha값이 너무 크면 한 번에 크게크게 움직이기 때문에 극값을 그냥 지나칠 수 있고,
반대로 너무 작으면 극값에 접근하는 데 너무 오래 걸릴 수 있다.

출처 : https://yhyun225.tistory.com/5

좌 : 학습률이 너무 큼, 우 : 너무 작음

😵‍💫 그냥 손실함수를 미분하면 안되나요?

안된다(고 한다). 대부분의 모델은 복잡하여 많은 파라미터를 가지고 있다고 한다.
따라서 모델의 손실함수도 미분할 수 없게 복잡할 수도 있다.
그리고 모든 함수가 미분 가능하다는 전제가 없다 ㅎ ㅎ

참고
https://yhyun225.tistory.com/5

0개의 댓글