딥러닝 모델의 학습을 하는 이유는 딥러닝 모델이 주어진 데이터를 보고 더 정확한 답을 낼 수 있도록 하는 것이다. 그렇다면 어떻게 모델이 좀 더 정확한 답을 낼 수 있게 할까? 딥러닝 모델이 어떻게 주어진 데이터를 활용해서 답을 내는지 알아보면 방법이 보일 것이다.
딥러닝 모델에서는 주어진 데이터들을 어떤 함수식의 변수로 활용해서 그 결괏값을 답으로 제출한다. 예를 들어서 인구수와 GDP에 따른 평균 국민 소득을 구하는 함수식이 있다면 평균 국민 소득의 예측값 = 0.3×인구수+0.1×GDP+1000와 같은 형태로 나타낼 수 있다. 이때 인구수와 GDP에 곱해지는 0.3과 0.1은 가중치, 아무런 조건 없이 더해지는 1000은 편향으로 각각 ω(Weight)와 β(Bias)로 표기한다.
정리하자면 딥러닝 모델이 답을 구하는 방법은 어떤 함수식에 데이터들을 입력하여 답을 구하는 것이고 딥러닝 모델이 좀 더 정확한 답을 내게 한다는 것은 모델이 해결하려는 문제에 가장 알맞은 가중치와 편향을 구하는 것이다.
위에서 딥러닝 모델 학습의 목표는 해결해야 하는 문제에 가장 알맞은 가중치와 편향을 구하는 것이라고 했다. 그렇다면 어떤 가중치와 편향이 좋은 것인지 어떻게 판단을 할까?
딥러닝 학습에서는 손실함수(Loss Function)라는 것을 통해서 모델의 성능을 평가한다. 손실 함수는 실제 값과 예측값의 차이를 비교하는 함수이다. 손실 함수에는 다양한 종류가 있지만 대표적인 것은 평균 제곱 오차(Mean Squared Error)와 교차 엔트로피 오차(Cross Entropy Error)가 있다. 보통 회귀 문제에서는 평균 제곱 오차, 분류 문제에서는 교차 엔트로피 오차를 활용한다.
평균 제곱 오차와 교차 엔트로피 오차는 딥러닝에서 자주 사용되는 대표적인 손실 함수이다. 이외에도 다양한 손실 함수들이 있지만 이 글에서는 이 두 가지에 대해서만 간략하게 알아본다.
먼저 평균 제곱 오차는 회귀 문제에서 자주 사용하는 손실 함수로 예측값과 실제 값의 오차를 제곱한 후 모두 합하고 평균을 구한 뒤 해당 값을 평가 지표로 이용한다. 평가 시에는 오차 제곱의 평균이 작을수록 더 좋은 모델이라고 평가한다. 예를 들어 A, B, C라는 회사의 수익을 A 모델은 [500, 350, 400]으로 예측했고, B 모델은 [470, 320, 440]으로 예측했다고 하자. 이때 실제 수익이 [450, 350, 450]일 경우 A 모델의 평균 제곱 오차는 이고 B 모델의 평균 제곱 오차는 이다. 이 경우 A 모델의 평균 제곱 오차는 대략 1666.6, B 모델의 평균 제곱 오차는 466.6으로 B 모델이 A 모델보다 더 좋은 모델로 평가할 수 있다.
교차 엔트로피 오차는 분류 문제에서 자주 사용하는 손실 함수로 자주 사용하는 손실 함수로 모델이 예측한 레이블별 확률의 오차에 로그값을 취한 뒤 합한 뒤 평가 지표로 이용하고 합이 작을수록 더 좋은 모델로 평가한다. 예를 들어 학생의 사진을 보고 초등학생과 중학생 그리고 고등학생을 구분하는 문제를 수행할 때, A 모델은 각각 [0.1, 0.1, 0.8]의 확률로, B 모델은 각각 [0.1, 0, 0.9]의 확률로 예측했다고 하자. 이때 그 학생이 고등학생일 경우 A 모델의 교차 엔트로피 오차는 이고 B 모델의 교차 엔트로피 오차는 이므로 B 모델이 더 좋은 모델이라고 볼 수 있다.
오늘은 딥러닝 모델 학습 단계에서의 평가를 최대한 간단하게 설명해 보았다. 인공지능에 대한 지식이 없는 사람이 읽어도 어느 정도 이해를 할 수 있도록 최대한 쉽게 써보려고 노력해 보았는데 그 목적을 달성했는지는 잘 모르겠다. 아마 내가 이 주제에 대해 좀 더 제대로 알고 있어야 글을 쉽게 쓸 수 있을 것 같다. 오늘은 이만 여기서 마무리하고 다음번에는 좀 더 좋은 글을 쓸 수 있도록 노력해야 할 것 같다.
이상으로 부족한 글을 읽어주신 분들께 인사를 하고 물러나도록 하겠다.