1. 기호
모델 학습의 원리를 살펴보기 전에 기호에 대해 먼저 알아보자.
- w : 가중치
- B : 편향
- Loss : 손실
- dt : 미분하기 위한 변화량
- prevLoss : 현재의 손실 값 (현 가중치와 편향에 대한 손실 값)
- dLoss : 현재의 손실 값 - 가중치나 편향에 변화가 일어났을 때 손실 값 (가중치나 편향의 크기를 높이거나 줄이며 손실 값의 변화를 알아보기 위함)
- dLoss/dt : Loss의 미분 값
- dLoss/dw : WLoss의 미분 값 (손실 변화량 / 가중치 변화량)
- dLoss/dB : BLoss의 미분 값 (손실 변화량 / 편향 변화량)
- next w : 가중치에 변화를 준 다음 가중치 (w−(dLoss/dw)∗dt)
- next B: 편향에 변화를 준 다음 편향 (B−(dLoss/dB)∗dt)
복잡해보이지만 위의 기호를 바탕으로 모델 학습 원리를 이해하자.
2. 가중치 업데이트
온도에 따른 판매량을 예측하는 모델을 학습하는 원리로 예를 들어 보겠다.
수식의 예가 다음과 같다고 하자.
w=0.85
B=0.5
y=0.85x+0.5
가중치와 편향이 변화할 때 손실 값이 어떻게 변화하는지 알아보겠다.
우선 현재의 손실(prevLoss, Mean Squared Error에 의해 도출)은 676.0475이다. 먼저 가중치를 dt만큼 증가 시켜 보겠다.
dt=0.0001 (w를 높일지 낮출지 확인하기 위한 임의의 값)
w′=0.8501 (w′=w+dt)
B=0.5
prevLoss=676.0475 (y=0.85x+0.5일 때 loss)
Loss=675.9276 (y=0.8501x+0.5일 때 loss)
가중치가 0.85에서 0.8501로 증가한 결과 Loss가 676.0475에서 675.9276으로 줄었다. 따라서 가중치 값이 증가해야 Loss가 줄어든다는 것을 확인할 수 있다.
dLoss/dt=dLoss/dw=(675.9276−676.0475)/0.0001=−1198.2469
next w=w−(dLoss/dw)∗dt=0.85−(−1198.2469)∗0.0001=0.9698
다음 가중치는 0.9698을 넣어보고 손실의 변화를 살펴봐야한다.
3. 편향 업데이트
편향도 마찬가지다. 가중치를 0.85로 돌려놓고 편향을 dt만큼 증가시킨다.
dt=0.0001
w=0.85
B=0.5001
prevLoss=676.0475
Loss=676.0423
편향이 0.5001로 증가한 결과 Loss가 676.0475에서 676.0423으로 줄어들었다. 따라서 편향 값이 증가해야 Loss가 줄어든다는 것을 확인할 수 있다. (만약 편향이든 가중치든 값이 증가했을 때 Loss가 커지면 그 값을 줄여야 손실이 줄어든다.)
dLoss/dt=dLoss/dB=(676.0423−676.0475)/0.0001=−51.8999
next B=B−(dLoss/dB)∗dt=0.5−(−51.8999∗0.0001)=0.5052
위와 같은 수식에 대해 다시 Loss값을 도출한다. 가중치, 편향을 조절하면서 손실의 변화를 관찰하고 다음 가중치와 다음 편향을 계산해야한다.
4. 정리
가중치와 편향의 업데이트 원리를 알아보았다. 모델은 업데이트를 통해 학습을 진행한다. 위에서는 간단한 식으로 가중치와 편향을 업데이트했는데 실제 학습 과정에서는 Optimizer를 사용하여 업데이트를 한다. Optimizer는 궁극적으로 실제 결과와 예측 결과의 차이를 최소화하고 이러한 과정을 통해 모델을 학습시킨다. 다음에 Optimizer에 대해서도 포스팅하겠다.