본문 바로가기
Mahcine Learning

선형회귀(Linear Regression) 이론 2 - 손실함수(Loss Function) 1

by double-step 2023. 5. 27.
728x90
반응형
SMALL

이전에는 선형회귀가 무엇인지, 그리고 선형회귀에 대한 가설함수까지 설명하였다.

https://wherwhen.tistory.com/2

 

선형 회귀(Linear Regression) 이론

지도 학습의 한 유형이면서, 연속적인 값을 가지고 예측을 하는 회귀 모델이다. 단순 회귀 모델이라고도 한다. 선형 회귀의 그래프는 위와 같은 형태를 지니고 있다. 여기서 직선은 목표 변수(y)

wherwhen.tistory.com

이번에는 이전에 언급한 가설함수를 평가하는 손실함수에 대해 설명하겠다.

손실함수는 보통 J라는 문자를 사용한다. 선형 회귀의 경우에는 평균 제곱 오차가 손실 함수의 output이다.

손실함수의 output이 작을수록 가설 함수의 손실이 적기 때문에 더 좋은 가설 함수라고 할 수 있고, 반대로

손실 함수의 output이 클수록 가설 함수의 손실이 크기 때문에 나쁜 가설 함수라고 할 수 있다.

손실함수
평균 제곱 오차

손실함수는 위와 같이 생겼다. 이전의 평균 제곱 오차와 비슷하기도 하며, 다른 부분은 1/m에서 1/2m으로 변경 되었다는 점이다. 이건 그냥 이후에 편리한 계산을 위한 변경이라고 보면 된다. 하지만 여기서 주의해야 할 점은, 이전에는 x(i)가 input 이었다면, 여기서는 θ가 input이다. h(x)= θ0+θ1x가 이전에 가설함수라고 했으니 위의 손실함수에 대입하면 되는데

여기서 우리가 변경 하며 테스트 할 수 있는 값은 θ값 밖에 없기 때문이다. i는 순서 즉, x와 y의 데이터의 순서를 의미하는

것이기에 우리의 input은 θ밖에 존재하지 않는다.

 

즉, 위의 글을 정리하면 다음과 같다.

1.손실함수의 input은 θ이다.

2.적절한 θ를 찾아야 손실함수의 output이 적고 이는 곧 평균 제곱 오차의 output이 적다는 것을 의미한다.

3.손실 함수의 output이 적다면 좋은 가설함수이고, 그렇지 않다면 나쁜 가설함수이므로 θ를 변경 해야 한다.

 

그럼 이제 여기서 θ(theta)세타 값을 적절히 조절하는 과정이 필요하다.

여러 방법이 존재한다. 그 중 가장 대표적인 경사 하강법(Gradient Descent)을 사용하여 설명하겠다.

경사 하강법(Gradient Descent) J(θ)

만약 위와 같은 그래프가 있다고 가정을 하자. 그리고 여기서 가장 적절한 θ(theta)세타 값을 찾으면 극소점에 도달할 수 

있다고 가정하자. 아마 처음부터 θ(theta)세타 값을 잘 찾아서 극소점에 도달하는것은 매우 어렵기도 하고, 운이 따라야

하기에 대부분 그래프의 직선 부분에 이르는 θ(theta)세타 값을 찾아낼 것이다.

경사 하강법 그래프 변화

예를 들어 위와 같은 그래프에서 파란색 점에 손실함수 output이 존재한다고 한다면, 좋지 않은 θ(theta)세타 값을 찾은것이고, 이는 즉 좋지 않은 가설 함수를 의미한다. 그리고 만약 빨간색 점에 해당하는 부분에 output이 존재한다면 좋은

θ(theta)세타 값을 찾은것이고, 이는 좋은 가설 함수를 의미한다. 그리고 이러한 좋지 않은 θ(theta)세타 값 또는 가설함수

에서 좋은 θ(theta)세타 값 또는 좋은 가설 함수로 가기 위해 θ(theta)세타 값을 변경 해주어야 한다.

위와 같은 그래프에서 만약 파란색 점의 손실함수 output이 -0.85라고 한다면 이는 결국 목표로 했던 값과 손실이 -0.85

라는 의미이고 이는 나쁜 가설 함수 즉, 적절치 않은 θ(theta)세타를 찾았다는것을 의미한다. 

극소점으로 가기 위해 θ(theta)세타 값을 변경하였고 이는 빨간색 점으로 변경되었다고 가정하자.

이는 이전보다 더 나은 손실함수 output이 나왔고, θ(theta)세타 값을 적절히 잘 변경했다고 볼 수 있다.

이렇게 조금씩 θ(theta)세타 값을 조절하여 극소점으로 내려가는 방법을 경사 하강법이라고 한다.

물론 이러한 그래프와 손실 함수에서의  θ(theta)세타 값은 문제를 단순하게 표현한 방법이다.

하지만 이전에 언급한 가설 함수  h(x)= θ0+θ1x를 보면 θ(theta)세타 값이 두개 인것을 볼 수 있다.

즉 변경해야 하는 input =  θ(theta)세타 값이 두개라는 의미이고, 다른 데이터나 문제에서 더 많은 θ(theta)세타 값을 다루어야한다. 그럼 왜 이렇게 단순하게 설명을 할까? 라는 의문이 들것이다. 좀 더 복잡하게 예시를 두고 그래프를 보면

다음과 같다.

출처  https://mazdah.tistory.com/833

여러 θ(theta)세타 값 = input이면 위와 같은 3차원의 그래프가 그려질것이다. 만약 예를 들어서 가설 함수의 output이 

그래프의 가장자리라고 가정을 하면, 그 위치에서 그래프의 가장 중앙지점(극소점)으로 이동을 해야 할 것이다.

손실함수

그럴려면 제일 먼저, 현재 위치에서 기울기를 구해야 하는데, 각 J를 각 input 변수에서 편미분을 하고, 현재 위치의 좌표를 대입하고 벡터로 만들어주면 된다. 그리고 결과로 나온 기울기를 보면 현재 J가 얼마나 기울었는지, 현재 θ(theta)세타 값

지점에서 가장 가파르게 올라가는 방향을 알 수 있다. 하지만 우리는 현재 θ(theta)세타 값에서 가장 가파르게 내려가는

방향을 알아야 하기에 이러한 벡터값을 음수로 변경해주면 된다.  그러면 아마 가설 함수가 개선되어 극소점으로 어느정도

내려갈것이다. 하지만 한번에 내려가기는 어렵기 때문에 여러번 진행하면서 극소점으로 내려가야 한다.

이렇게 극소점으로 내려가다보면 최적화 된 가설 함수를 발견할것이고, 이는 곧 매우 적은 손실 함수의 output을 얻을 수 있다는 의미이기도 한다.

 

다음글에서는 경사 하강법의 예시와 계산을 설명하겠다.

728x90
반응형
LIST