Artificial.Intelligence

[AI-02] '배움'의 목표를 잡다: 비용함수와 제곱오차

De-v-signer 2024. 4. 30. 22:50
728x90

이전 글에서는 기계 학습의 기본적인 개념에 대해 소개하고, 그 본질이 많은 데이터의 분포를 최소의 손실로 아우를 수 있는 최적의 '선형 회귀' 식(式, Function)을 찾는 것이며 식의 가중치(Weight)와 편향(Bias)을 보정하여 가장 적은 손실을 만들어 가는 과정을 기계의 '학습'이라고 부른다는 사실을 공부해보았다.
 
이 때 데이터와 학습 과정에서의 회귀 식이 그리는 어떤 가상의 선(線) 간의 거리를 비용(Cost)이라고 하는데, 즉 학습의 목표는 특정 작업의 데이터에 대해 이 비용이 가장 적은 선에 대한 식을 찾는 것으로 다시 정리할 수 있겠다.
 
그런데, 그렇다면 그냥 선과 점 사이의 거리(차)를 모두 구해 더한 평균을 내면 그 식의 비용을 계산할 수 있지 않을까?
 

위의 도식에서 X=1일때와 2일때, 3일때는 각각 데이터와 선 간의 거리가 발생하는데, 이 때 만약 H(x)-y를 비용으로 계산한다면 1인 경우에는 식이 데이터 좌표보다 위에 있기 때문에 양수 값이 되지만 나머지 경우에는 음수 값이 될 것이다.
 
때문에 이 차들을 구하여 더하면 그 결과는 서로 상쇄되며, 음수와 양수 모두가 큰 값이 나오는 경우에는 상쇄값도 커지면서 계산된 비용이 작은 듯하지만, 실제로는 오히려 굉장히 큰 값이 나올 수도 있다.
 
그렇기 때문에 이들의 부호를 통일시켜서 더하는 것이 필요한데, 이를 위한 방법으로 1)절대값을 사용하여 전부 양수화하거나 2) 제곱하여 계산하는 방법이 있을 수 있다.
 
기계학습에서는 2)의 방법을 주로 사용하는데, 가장 큰 이유는 다음에 소개할 경사하강법을 사용함으로써 비용을 최소화하기가 쉽기 때문이다. 그러나 그 외에도 절대값을 사용할 경우 이상 데이터가 포함되었을 때 대응하기가 더 어렵다는 점도 있는데, 제곱을 사용하면 오차가 더 확대되어 커지기 때문에 필터 등을 적용하기가 더 쉬워지기 때문이다.
 

이는 새삼스러운 개념이 아니며, 통계학에서 흔히 다루는 편차와 분산, 표준편차의 개념과 같다. 각 데이터는 평균과의 거리(편차; deviation)를 보이는데, 이 편차는 음과 양의 값을 모두 가지므로 기술통계를 내고 싶을 때 전체 값의 평균을 내면 0이 되는 현상이 발생한다. 따라서 제곱을 해서 평균을 구하는데, 그것이 바로 분산(Variance)이다. 분산은 편차의 제곱의 평균이므로 실제 편차값을 반영하기는 어려운데, 좀 더 가까운 값을 갖기 위해 다시 제곱근 처리한다. 이를 표준편차(standard deviation)라고 한다.

 
이렇게 제곱을 사용하는 비용함수로 비용을 구하는 방법을 제곱오차(Squared Error)라고 하며, 이 합의 평균을 낸 것을 퍙균제곱오차(Mean Squared Error)라고 하는데 이는 각 점에서의 편차를 제곱하여 이들의 평균을 냄으로써 비용을 계산하는 방법이다.
 

이렇게 계산된 비용은 제곱을 통해 만들어진 2차 함수이기 때문에 그래프로 나타내면 곡선형 그래프가 된다.
 

 
당연하게도 우리는 함수의 최소값이 H(0.5)부근의 값이라는 것을 알 수 있지만, 이는 인간의 다소 직관적인 이야기이다. 기계는 알고리즘을 거쳐야 하기 때문에 이를 바로 알 수 없으며 수학적인 계산식으로 순차적으로 계산하도록 하여 최소의 비용을 이루는 가중치와 편향 값을 얻어내야 한다. 이 때 활용되는 것이 경사하강(Gradient Descent)법이다.
 

기계 학습은 인간의 학습과 비슷하기도, 다르기도 하다. 인간도 기계도 다양한 데이터를 통해 보편적인 이해 규칙을 만들어간다는 점은 유사하나, 인간은 많은 부분에서 학습 대상을 그대로 암기하듯이 받아들이고 이후에 분석적인 개념을 연결시키는 데 비해 기계는 분석 없이는 학습이 불가능하며, 이렇게 학습된 개념도 다분히 통계적인 경향성 측면에서의 연결고리라 그 연결성이 강하지 않아 보인다.

 

반응형