[비전공자를 위한 딥러닝] 2.1 선형회귀 (1)





챕터 1에서 살펴보았듯이, 머신러닝이란 데이터를 통해 학습시킨 모델을 가지고 새로운 데이터를 예측하는 하나의 문제 해결 방법이다.

머신러닝이 등장하기 훨씬 전부터 통계학에서는 데이터를 활용해 모델을 만들고, 모델을 활용해 새로운 데이터를 예측하는 방법을 사용해왔다. 그 대표적인 방법이 "선형회귀"다. 예를 들어 생각해보자.

우리는 집의 가격을 예측하는 모델을 만들고자 한다. "집의 넓이", "건축연도", "집의 위치", "집의 가격" 이렇게 네 가지 값을 각각 가지고 있는 1만 개의 집 데이터를 수집했다고 가정하자.


우리가 예측하고자 하는 변수는 네 가지 값 중에 "집의 가격"이기 때문에, 나머지 세 변수를 통해 집의 가격을 잘 표현하는 모델을 만들어야 한다.


1. 세 변수를 가지고 "집의 가격"을 잘 표현하는 모델을 만들고,

2. 새로운 데이터가 들어왔을 때 그 모델을 사용해 집의 가격을 예측할 것이다.


예측하고자 하는 변수인 "집의 가격"을 타겟(target)이라고 하고, 나머지를 데이터의 특성(feature)이라고 한다.

그렇다면 어떻게 "집의 넓이", "건축 연도", "집의 위치"라는 특성들로 타겟인 "집의 가격"을 잘 표현할 수 있을까? 가장 먼저 생각해볼 수 있는 것은, 특성별로 집의 가격에 영향을 미치는 정도가 다를 것이라는 점이다. 따라서 다음과 같이 서로 다른 가중치를 갖는 특성들이 더해지는 가중합(weighted sum)의 관계로 나타내볼 수 있다.




세 가지 특성이 각각 "집의 가격"에 대해 얼마나 영향을 미치는지 그 중요도, 즉 가중치(weight)를 가지고 있는 것을 나타낸 그림이다. 예를 들어 "건축 연도"라는 특성이 갖는 가중치가 "집의 넓이"라는 특성이 갖는 가중치보다 훨씬 작다고 가정해보자. 그 의미는, 건축 연도가 집의 가격에 미치는 영향보다, 집의 넓이가 집의 가격에 미치는 영향이 더 크다는 것이다. 따라서 가중치 w1이 w2보다 큰 값을 가지는 모델이 된다.

"집의 가격"에 대해서, 특성1의 가중치(w1)가 더 크다


이를 좀 더 일반화시키면 다음과 같이 된다.


이때 각 특성과 집의 가격을 그래프로 그려보면 다음과 같다. 실제로는 특성2와 특성3이 함께 표현된 4차원 그래프가 되겠지만, 시각화하기가 어렵기 때문에 한 특성씩 나누어 살펴보기로 하자.

이때 각각의 점은 1000개의 집 데이터를 의미하며, 이 분포를 잘 표현하는 하나의 직선을 찾는 것이 선형회귀의 목적이다. (여러 특성이 함께 표현된 다차원 그래프에서는 직선보다 높은 차원인 면 등의 하이퍼플레인으로 표현될 수 있다.)
이때 직선의 기울기가 특성1에 대한 가중치 w1에 해당하게 되는데, 가중치 w1의 의미 (특성1이 "집의 가격"에 얼마나 영향을 끼치는지) 를 생각해보면 이해하기 어렵지 않다.*

* 이 의미를 잘 기억해두면, 역전파에서 편미분의 값을 이해할 때 도움이 될 것이다.


이렇게 얻은 직선을 가지고, ("집의 가격"이 빈 칸인) 새로운 데이터가 들어왔을 때 위와 같이 "집의 가격"을 예측할 수 있다.


하지만 데이터의 분포가 다음과 같을 경우에는 어떨까?

이 경우에는 원점 (0,0)에 붙어 있는 직선으로는 분포를 제대로 표현하기가 힘들다.* 따라서 편향(bias)을 수식에 포함해 원점에서 해방될 수 있는 자유를 주면 훨씬 좋은 예측을 할 수 있는 모델이 된다.
(모든 특성이 함께 표현된 4차원 그래프에서는 원점 (0,0,0,0)에서 해방된다고 볼 수 있다.)

* y = ax 인 직선은 항상 (0,0)을 지난다. 위 그래프의 직선 target = (feature1) x (weight1) 역시 마찬가지다. 



여기까지 소개한 개념을 정리해보면 다음과 같은데, 이것이 바로 선형회귀(linear regression)라고 할 수 있다.


다음 장에서는 선형회귀를 계산하는 방법, 즉 위 그림에서 파란색 직선을 어떻게 구하는지 살펴볼 것이다.



댓글 쓰기

0 댓글