본문 바로가기
머신러닝

Loss Function and Gradient Descent(손실함수와 경사하강법)

by 방구석 데이터사이언티스트 2022. 5. 27.
728x90
반응형

1. 손실함수와 경사하강법의 개념

손실함수와 경사하강법은 딥러닝 학습과 최적화의 핵심적인 개념입니다.

 

 예를 들어, 주어진 데이터에 관하여 Y = w*X + b 라는 방정식으로 모델을 만든다고 가정한다면

저희는 데이터를 잘 표현할 수 있는 가중치 w 와 편차 b를 찾는 것이 목표입니다. 그리고 최적의 가중치와 편차(=파라미터)를 찾는 척도가 손실함수가 되며, 최적의 파라미터를 찾는 방법이 경사하강법이 됩니다. 

 

 우리는 손실함수를 통해 평균적인 예측값과 실제값의 차이(오차)를 계산하며 오차를 최소화하는 방향으로 모델을 학습시킵니다. 그리고 오차를 최소화하는 방향으로 파라미터를 업데이트하기 위해 경사하강법을 사용합니다. Gradient Descent라는 단어에서도 알 수 있듯이, 기울기를 보면서 파라미터를 업데이트해 나가는 것입니다. 즉, 기울기가 0에 가까운 쪽을 찾는 방향으로 이동하며 손실값이 최소가 되는 지점을 찾는 것입니다.

 

1. 학습(Learning)의 목표 : 오차 최소화

2. 손실함수 : 오차를 나타내는 척도

3. 경사하강법: 오차 최소화를 위한 파라미터를 업데이트 방법 

 

2. 대표적인 손실함수(pytorch)

 

https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html#torch.nn.CrossEntropyLoss

 

CrossEntropyLoss — PyTorch 1.11.0 documentation

Shortcuts

pytorch.org

대표적인 손실함수로 CrossEntropyLoss가 있습니다.

CrossEntropyLoss는 분류 문제에서 손실 값을 계산하기 위한 Loss Function입니다.

CrossEntropyLoss는 우리가 예측한 값의 확률과 실제 값의 확률을 비교하여 정보량을 계산합니다. 

따라서 Loss 값을 계산하기 위해서는 마지막에 softmax 함수를 취해야 합니다. 

 

 

 

CorssEntropy의 가장 큰 특징은 잘못된 예측에 대하여 더 큰 페널티를 적용됩니다. 즉 잘못된 예측을 하게 되면 Loss 값이 기하급수적으로 커지게 되는 것이죠. 반대로 더 확실한(높은) 확률로 정답을 예측하여 맞췄다면 Loss 값은 낮아집니다.  따라서 100개의 분류 문제에서 모델 A와 모델 B가 똑같이 90개를 맞췄다면 Accuracy(정확도)는 둘 다 90%이지만 모델 A가 정답을 정답이라고 했을 확률이 모델 B 보다 높다면 모델 A의 Loss 값은 더 낮게 측정됩니다. 하나의 예시로, 강아지의 사진을 보고 A는 강아지일 확률을 90%라 하고 B는 80%라고 했다면, 더 정확하게 강아지를 맞춘 A가 더 낮은 오차를 가지게 되는 것이죠.  

 

 

 

 

 

 

728x90
반응형

댓글