티스토리 뷰

이전 포스팅에서 머신러닝의 개념 중 지도학습(Supervised Learning) 에 대하여 포스팅 하였다. 

그 중 머신러닝에서의 선형 회귀(Linear Regression)을 활용한 모델이 있는데 이에 대해 알아보자!



회귀 분석(Regression Analysis)


먼저 회귀 분석에 대해서 간단히 짚고 넘어가자.

회귀의 사전적인 의미는 "다시 예전의 상태로 돌아감" 을 의미한다. 

이 용어는 영국의 유전학자 Francis Galton 이라는 분이 유전의 법칙을 연구하다 나온 것에 기인하게 되는데 대략적인 연구내용을 살펴보자면 부모와 자녀의 키 사이의 관계를 연구하면서 나오게 된 연구의 결과로 자녀의 키가 아버지 그리고 어머니 키의 평균을 조사하여 표로 나타낸 결과 결국 자녀의 키는 엄청 크거나 작은 것이 아닌 그 세대의 평균으로 돌아가려는 경향이 있다는 것을 발견하였다. 그래서 Galton은 이를 회귀 분석이라 하게 되었다.



머신 러닝에서 회귀 분석 모델을 적용하는 것은 무엇일까?


이전 예제와 동일하게 아래와 같은 데이터가 있다고 해보자.


 X ( 학습 시간 )

Y ( 시험 점수 ) 

10

90 

80 

50 

30 


이 위의 데이터에서 예측하는 스코어의 유효 범위는 0점 에서 100점 사이이다.

위의 데이터 즉, 트레이닝 데이터 셋을 가지고 학습(트레이닝) 을 시키게 되면 

이에 해당하는 회귀 모델(Regression Model)의 기반인 어떤 모델이 만들어지게 된다.


예를 들어, 학생이 7시간을 공부 했을 때 어떤 결과치를 받을 수 있을까? 라고 생각해보자.

그러면, X=7 이라 했을 때 인공지능이 학습(트레이닝)을 통해 생성된 회귀모델을 기반으로 가령 Y=65점이다 라고 예측을 하는 것이다.


위의 데이터를 기반으로 간단한 트레이닝 데이터 셋 예제를 하나 만들어 보자.

 

 X ( 학습 시간 )

Y ( 시험 점수 ) 

1

2

1

2

1

2

1

2


위와 같이 4개의 학습 데이터가 있을 때 우리는 이 데이터를 통해서 Linear 모델을 찾게 된다.

즉, 데이터의 분포가 하나의 선안에 표현될 수 있을 때와 같은 최적의 모델을 찾는다.

그리고 학습한 이 데이터의 모델이 맞을 것이라고 일단 가정하는 것이며 이 선을 찾아서 나타내는 것이 학습을 하는 것이라고 볼 수 있다.


또 다른 데이터로 그림으로 그려서 나타내 보자면 아래와 같이 트레이닝 데이터의 점이 위치 했을 때 최적의 선형 모델 (선)을 찾는 것이 관건이라 할 수 있겠다.




이를 수식으로 표현하자면,


H(x) = Wx + b 


H(x) 가 우리가 가정한 가설(Hypothesis) 을 의미하고 W(Weight)의 값 그리고 b(bias) 의 수치에 따라 선의 모양이 달라지게 된다. 


위의 데이터 셋에 대한 가설은, H(w) = 1*x + 0 ( 축이 0에서 부터 시작했기 때문) 으로 나타낼 수 있다.

여기서, 그려진 선이 각 데이터의 분포와의 차이를 계산하여 가장 적은 것이 이 모델에 적합한 선이라는 것을 알 수 있다.

그래서 이를 비용함수(Cost Function) 라고 부른다.

이 비용함수를 통해 우리가 세운 가설과 실제 나타내는 값이 얼마나 다른가를 가늠해 볼 수 있다.


위의 간단한 식을 빌려서 이야기 해보자면 실제로 위의 식으로는 값이 얼마나 다른지 구할 수 없다. 위와 같은 형태는 차를 계산할 뿐 가설 데이터보다 더 큰 실제의 값을 나타내는 것이 주어졌을 때 표현할 수가 없기 때문이다.

이를 나타내기 위해 해당 식에 제곱을 취해주게 된다. 또한 이를 바탕으로 실제로 더 차이가 큰 값에는 더 큰 패널티를 줄 수 있도록 이러한 가중치를 자동적으로 부여할 수 있게 된다. 비용함수에 대한 식을 나타내면 아래와 같다.



일반적으로 m을 데이터의 개수라 하면 각각의 우리가 예측한 값 X와 실제 데이터 값 Y의 차이를 제곱한 값의 전체 데이터 개수만큼의 결과 값을 더하여 다시 데이터의 개수만큼 크기로 나누어 평균을 구하게 되는 것이다.


결과적으로, 이 회귀 분석(Linear Regression)을 통하여 그래프 상에서 선을 그렸을 때 W(가중치) 값과 미세하게 조절되는 b(바이어스)의 값을 찾아 가설과 실제 데이터의 차가 가장 작은 은 최소값을 찾는 것이 머신러닝에서의 선형 회귀(Linear Regression)의 학습이라고 볼 수있다.




아주 기초적인 예제를 통해 머신러닝에서의 선형 회귀의 학습에 대하여 알아보았다. 수포자도 알아 들을 수 있을 정도로 정말 가려웠던 궁금증을 잘 긁어주신 모두의 딥러닝, 김성훈 교수님께 정말 진심으로 감사하다고 전해드리고 싶다! 

다음 포스팅은 이의 개념을 바탕으로 텐서플로우 라이브러리를 활용하여 선형 회귀의 모델을 구현해보도록 하겠다.



※ 해당 포스팅은 정리의 개념으로 남긴 포스팅이며 조금씩 틀린부분이 있을 수도 있습니다. 지나가다 보시면 댓글로 지적이 나 태클 부탁드립니다.!





반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함