본문 바로가기
Artificial Intelligence/Machine Learning

머신러닝(Machine Learing)이란? 오차함수 MAE(mean absolute error)/MSE(mean squared erro)

by EunjiBest 2022. 7. 1.

머신러닝(Machine Learing)이란? 오차함수 MAE(mean absolute error)/MSE(mean squared erro)

 

 

 

블로그를 운영하면서 머신러닝에 대해 글을 쓴 것이 없다느는 것을 알고 놀랬다.

어제 공부한 내용을 토대로, 머신러닝이란 무엇인지?

머신러닝의 오차함수에 대해서 포스팅하려고한다.


 

 

머신러닝이란?

 

데이터에서부터 학습하도록 컴퓨터를 프로그래밍을하는 과학.또는 예술(?)이라고 책에 써있다.

말 그대로 기계학습이다. 이런 사전적인 의미말고, 수학적으로 머신러닝이 무엇인지? 목적은 무엇인지 살펴보자.

 

 

다음과 같은 샘플 그래프가 있다.

 

그래프를 해석해본다면, 삶의 만족도가 높을 수록 GDP도 높다는 것을 알 수 있다.

 

 

이 그래프의 정보를 토대로 삶의 만족도와 GDP와의 관계를 예측해보았다고 하자.

 

샘플 데이터 x축의 값을 xi , y축의 값을 yi라고 하고,

우리가 예측한 그래프(빨간색 선형 그래프)는 x축의 값 xi, y축의 값  ŷi라고 하자. 예측 함수는 f(x) = ŷi로 정의할 수 있다.

이때,

yi 와 ŷi의 차이 ( yi - ŷi )를 최소화 하는 것이 머신러닝의 목적이다.

즉, erro = f(xi) - yi

 

 

 

 

여기까지가 샘플그래프 점 하나에 대한 오차 함수를 구한 것이다.

erro = f(xi) - yi를 전체 영역으로 확장시켜본다면, 다음과 같다.

 

i = 1부터 m(샘플지수)까지 erro함수(f(xi)-yi)를 더한다

평균은 m으로 나누어주면 쉽게 구할 수 있다.

 

 

이때 함수에서 생기는 오류가 있는데,

f(xi) = -1이고, yi = 1일 때 분자가 0이 되버린다. 오차값에 0이 많다면, 제대로된 결과값을 기대하기가 어려워진다.

 

 

이를 방지하기 위한 여러 방법이 있다.

절댓값을 씌워주는 것, 그리고 제곱을 씌워주는 법, 루트를 씌워주는 것 등이 있는데

이번 수업 때 배운 것은 절댓값과 제곱을 취해주는 방법이다.

 

 

 

MAE(mean absolute error)

 

절대평균오차라고 부르며, 평균에 절댓값을 씌운 함수이다.

 

전형적인 절댓값 그래프를 볼 수 있다.

이상치에 대해서 매우 민감하기 때문에, 다음에 설명할 MSE보다 자주쓰이지 않는다.

 

 

 

 

MSE(mean squared erro)

 

평균제곱 오차라고 부르며, 오차 함수 중 가장 많이 사용한다

 

 

2차함수 형태로, 아래로 둥근 형태를 띄고있는 그래프이다.

모든 점이 연속하기 때문에, 모든 형태에서 미분이 가능하다는 장점이있다.

 

 

 

 

 

머신러닝의 목적

 

다시 처음으로 돌아와서 머신러닝은 무엇일까?

MSE 함수를 봐보자.

x와 y는 샘플 좌표이기 때문에 바꿀 수 없다. 이미 정해져 있어서 건드릴 수 없기 때문에,

f를 바꿔야한다. f는 θ를 파라미터로 보고,

컴퓨터가  θ에 이런저런 값을 넣어보며 샘플과 최대한 같은 값을 취할 수 있도록 바꾼다.

 

( θ에 다양한 값을 사람이 대입해서 계산을한다면 시간과 노력이 많이 들지만,

사람보다 연산이 정확하고 빠른 컴퓨터는 높은 효율로 일을 할 수 있다. 이것이 머신러닝이 하는 일이다.)

 

 

아래 그래프는 MSE의 그래프이다.

 θ가 가장 작은 값을 가질 때, 머신러닝은 가장 높은 성능을 낼 수 있고,

 

https://www.corpnce.com/regression-analysis-loss-function/

MSE의 최소값이 θ0 라는 함수를 정의할 수 있다.

결국 머신러닝은 MSE의 θ의 최소화하는 것이 궁극적 목표이다.

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글