AI 개념/기계학습, 심층학습

회귀(경사하강법, 학습률, 지역최솟값, 과적합&과소적합)

AIstarter 2024. 3. 31. 23:45

목차

 

1. 회귀의 개념 (선형회귀 위주)

2. 경사하강법은 무엇인가?

3. 학습률은 어떤 영향을 줄까?

4. 경사하강법의 문제점와 해결방안 : 지역최소값 문제 

5. 과잉적합과 과소 적합


1. 회귀의 개념

1.1 회귀 개념

회귀는 지도학습 방법 중 하나로,

주어진 입력(x)-출력(y) 쌍을 학습한 후에 새로운 입력값이 들어왔을 때, 합리적인 출력값을 예측하는 것이다.

 

예를 들어, "운동을 하루에 5시간 한다면 그 사람의 예측 수명은 어떻게 될까?"와 같은 문제가 이에 해당한다.

입력과 출력에 해당하는 '운동 시간 별 수명 길이'에 대한 데이터를 학습한 후, 위의 문제처럼 운동시간(x)가 주어 적을때, 수명(y)를 예측하는 것이다.

 

일반적으로 데이터들을 2차원 공간에 찍은 후에 이들 데이터들을 가장 잘 설명하는 직선이나 곡선을 찾는 문제라고 할 수 있다.

가장 잘 설명하는 직선을 찾는 것선형회귀라고 할 수 있다.

선형 회귀는 입력 데이터를 가장 잘 설명하는 기울기와 절편값을 찾는 문제이다.

 

독립변수(x)가 하나인 경우를 단순 선형회귀라고 하며, 독립 변수(x)가 여러 개인 경우를 다중 선형회귀라고 한다.

단순 선형 회귀의 기본식: f(x) =Wx+ b (W: 가중치, b: 바이어스, Wo)

다중 선형회귀의 식: f(x1,x2,x3) = w0 + w1*x1 + w2*x2 + w3*x3

 

그렇다면 좋은 예측은 무엇일까?

해당 부분을 아래 부분에서 함께 설명하고자 한다.

 

1.2 손실

위의 그래프를 바라볼 때,
파랑 선, 즉, 데이터와 예측한 직선 사이의 거리가 작을 수록 더 좋은 예측일 것이다.

이때, 데이터와 구한 f(x) 직선의 거리를 손실(loss) 또는 비용(cost)라고 말한다. 즉, 손실이 적을수록 성능이 좋다.

 

손실을 나타내는 함수를 손실 함수라고 하는데, 

 

직선과 데이터 사이의 간격을 절대값으로 표현하면, MAE 손실함수이다.

* | y - f(x) | 이다.

 

이를 직선과 데이터 사이의 간격을 제곱하여 합한 값으로 나타내면 MSE(=Mean Squared Error) 손실함수로, 평균 제곱 오차 함수이다.

 

2. 경사하강법은 무엇인가?

경사하강법이란 경사(기울기)의 크기가 작아지는 방향으로 가중치(W)를 업데이트 시키는 것이다.

 

MSE와 같은 방식은 독립변수(x)와 종속변수가 각각 하나인 선형회귀에만 적용되며, 독립 변수가 여러개이면 적용이 불가하다. 이를 위해 제안된 것이 경사하강법이다.

 

경사 하강법은 손실 함수가 어떤 형태라도 또 독립변수(x)가 아무리 많아도 적용할 수 있는 일반적인 방법이다.

위의 사진과 같이, 전역 최솟값을 찾는 방향으로 계속 학습되는 것이다. x축은 가중치, y축은 가중치에 따른 손실(loss)를 의미한다.

 

경사하강법의 공식은 다음과 같다.

Wn+1 = Wn - (Learning Rate) * (w에서의 Loss)

 

여기서 Learning Rate는 어떤 영향을 줄까?

 

3. 학습률(Learning Rate)은 어떤 영향을 줄까?

학습률은 그래프로 봤을 때, 화살표가 움직이는 폭이라고 생각하면 된다.

학습률이 크면 업데이트 되는 양이 커지고, 학습률이 작으면 업데이트 되는 양이 작아진다.

 

학습률에 따라 업데이트 양이 달라지므로, 결국 학습률은 학습 속도를 조정할 수 있다.

 

4. 경사하강법의 문제점와 해결방안 : 지역최소값 문제 

경사하강법의 단점은 전역 최솟값을 찾아야 하는데, 지역 최소값에 빠질 수 있다는 것이다.

이러한 문제점을 지역최소값 문제라고 한다.

이를 해결할 수 있는 2가지 대표적인 방법은 다음과 같다.

1. 초기값을 랜덤하게 정하여, 경사하강법을 여러번 적용한다.

2. 학습률을 초반에 크게 잡았다가 진행 될 수록 학습률을 작게 한다.

 

4. 과잉적합과 과소 적합

과잉 적합(overfitting) : 훈련 데이터에서 과도한 학습을 한 경우이다.

이러한 경우, 훈련 데이터에서 성능이 뛰어나지만, 테스트(일반화)에 대해서는 성능이 잘 나오지 않는 모델을 생성한 것이다.

과소 적합(underfitting): 학습이 불충분한 경우로,

학습 데이터와 테스트 데이터 모두에서 성능이 좋지 않은 경우이다. 이 경우에는 모델 자체가 적합지 않은 경우가 많아서, 더 나은 모델을 찾아야할 수도 있다.

 

Q. 훈련 데이터가 매우 적을 경우, 어떤 일이 생길까?

한 가지 예시로 이해하면 쉽다. 데이터가 2개 밖에 없을 경우, 두 데이터 지점을 연결한 직선이 훈련데이터에서 100%의 성능을 지닌 경우일 것이다. 하지만, 테스트 데이터는 훈련데이터의 두 지점 외 지점에도 분포할 것이므로, 테스트 데이터에서는 성능이 좋지 않을 것이다.

즉, 이 문제는 Overfitting의 문제라고 할 수 있다.