전공 이야기/Deep Learning

#2 예측 모델의 기본 원리

[감자] 2023. 11. 25. 20:29

1. 선형 회귀 분석

딥러닝을 이해하기 위해서 먼저 가장 기본적 계산 원리 선형 회귀와 로지스틱 회귀에 대해서 이해해야 한다.

 

1. 선형 회귀의 정의

어떠한 변하는 정보의 값 x와 x에 값에 따라 변하는 y가 있다고 하자.

여기서 독립적으로 변하는 값 x를 독립 변수

그리고 독립 변수의 값에 따라 종속적으로 변하는 y를 종속 변수라고 한다.

 

선형 회귀(linear regression)란 독립 변수 x를 사용해 종속 변수 y의 움직임을 예측하고 설명하는 작업을 의미한다.

 

독립 변수가 x 하나뿐이기에 x1, x2, x3 등 x의 값을 여러개 준비해 뒀을 수도 있는데,

x의 값 하나로 y를 설명할 경우 단순 선형 회귀(simple linear regression)

x1, x2, x3 처럼 여러개의 x 값으로 y를 설명할 경우 다중 선형 회귀(multiple linear regression)라고 한다.

 

 

예를 들어 독립 변수가 하나인 단순 선형 회귀를 예로 들었을 때,

x를 독립변수, y를 종속 변수라고 놓았을 때 y = ax+b라는 일차 함수 그래프가 나온다.

정확한 계산과 그래프를 그리기 위해서는 상수 a와 b의 값을 알아야 하며

곧 선형 회귀란 주어진 데이터를 가지고 최적의 상수 a와 b의 값을 찾는것을 이야기한다.

 

 

2. 최소 제곱법

이러한 대략적인 상수의 값 a와 b를 알기 위해 최소 제곱법(method of least squares) 이라는 공식을 적용할 수 있다.

$$ a = \frac{\sum (x-m(x))(y-m(y))}{\sum (x-m(x))^2} $$

 

$$ b = m(y) - (m(x)\times  \triangledown a ) $$

 

3. 평균 제곱 오차

최소 제곱법을 통해 상수의 값을 구했지만 오차는 존재한다.

오차를 구할 때 가장 많이 사용되는 방법이 평균 제곱 오차(Mean Square Error, MSE) 이다.

 

오차를 구하는 방정식은 오차 = 실제값 - 예측 값이며

오차의 합은 오차의 값을 제곱하여 모두 합해주면 된다.

 

실제 값을 y, 예측 값을 y'이라 할 경우

오차의 합을 수식으로 나타내면

$$ SOE = \sum_{i}^{n}(y_i-y'_i)^2 $$

위와 같은 공식이 나타나며

 

평균 제곱 오차는 오차의 합을 n으로 나눈 것이며 곧

$$ MSE = \frac{1}{n}\sum_{i}^{n}(y_i-y'_i)^2 $$

와 같은 공식이 된다.

 

 

 

2. 선형 회귀의 모델링

기울기와 오차는 이차 함수의 관계성을 가지며 곧 기울기가 0이 되는 부분에서 오차가 가장 적게 발생한다.

이를 경사 하강법(gradient decent)라 한다.

 

1. 경사 하강법

경사 하강법은 곧 기울기가 0이 되는 지점을 찾는 것이며, 이는 곧 미분값이 0이 되는 지점(m)을 찾는 것이라 할 수 있다.

경사 하강법이란 어떤 한 지점에서의 미분을 취하여 기울기를 구하고,

기울기가 +면 음의 방향으로, 기울기가 -면 양의 방향으로 이동시키며 다시 미분을 반복하는 작업이다.

이렇게 반복적으로 기울기 a를 변화시켜 기울기가 0인 한 지점(m) 을 찾아내는 방법을 경사 하강법이라고 한다.

 

기울기를 바꾸어 다시 미분할 때 너무 멀리 이동시켜 버리면 a 값이 한 점으로 모이지 않고 발산하게 되며, 발산하게 된다.

그렇기에 어느 정도 이동시킬지 신중한 결정이 필요하며 이때의 이동 거리를 정해 주는 것이 학습률(learning rate)이다.

 

곧 경사 하강법은 오차의 변화에 따라 이차 함수 그래프를 만들고 적절한 학습률을 설정해 미분 값을 0으로 만드는 것이다.

 

 

2. 다중 선형 회귀

하나의 선형 회귀를 사용하여 예측 직선을 사용하여도 오차가 발생하는데, 이는 하나의 요소만이 영향을 끼치는 것이 아니기 때문이다. 기존보다 더욱 정확한 예측을 하기 위해서는 많은 정보를 포함한 다중 선형 회귀를 만들어야 한다.

 

 

 

3. 로지스틱 회귀

참과 거짓을 가르는 과정은 로지스틱 회귀(logistic regression)를 통해 일어난다.

 

1. 로지스틱 회귀의 정의

결과가 0과 1로만 이루어져 있는 경우 그래프로 나타내면 점들이 0과 1에만 존재하는 이산적인 형태를 갖는다.

선을 그어 이 점의 특성을 잘 나타내는 일차 방정식을 만들면, 1과 0 사이의 값이 없기에 직선으로 만들기 어렵고 S자 형태 곡선을 띈다.

로지스틱 회귀는 선형 회귀와 같이 선을 그어가는 과정이다.

다만 선형 회귀처럼 직선이 아니라 1과 0 사이를 구분짓는 S자 형태의 선이다.

 

2. 시그모이드 함수

이러한 S자 형태의 그래프가 그려지는 함수로는 시그모이드 함수가 있으며, 시그모이드 함수는 다음과 같다.

$$ y=\frac{1}{(1 + e^{-ax+b})} $$

위 식을 보고 알 수 있는 것은 결국 우리가 구해야 하는 것은 ax+b라는 것이다.

a는 그래프의 경사도를 나타내며, b는 그래프의 좌우 이동을 나타낸다.

 

a값과 b값에 따라 오차가 변한다.

a가 커질수록 오차는 줄어들며

b값은 너무 작아지거나 커지면 오차가 커지는 2차 함수와 유사한 형태를 취하고 있다.

 

3. 오차 공식

시그모이드 함수에서 a의 값과 b의 값을 구하기 위해서도 경사 하강법을 사용한다.

시그모이드 함수의 특징으로는 y의 값이 0과 1 사이라는 것이며 실제 값이 1 혹은 0에 가까울 때 오차가 커진다.

이러한 형태를 공식으로 만들어 주는 함수가 바로 로그 함수다.

이는 다음과 같은 수식으로 나타낼 수 있다.

$$ -(ylog(h) + (1-y)log(1-h)) $$

 

위의 공식은 y가 1일때 뒤의 항이 없어지며 y가 0일때 앞의 항이 없어진다.

이러한 공식을 교차 엔트로피 오차 함수(cross entropy error)라고 한다.

'전공 이야기 > Deep Learning' 카테고리의 다른 글

#1 Deep Learning 시작을 위한 준비 운동  (0) 2023.11.11