아무거나

Linear Regression 본문

AI or APP/Tensorflow

Linear Regression

전봉근 2018. 7. 4. 01:16
반응형

Linear Regression란 Linear는 직선, Regression은 회귀 즉, 단어의 뜻을 그대로 이해하면 이름 그대로 이해하면 된다. 예를 들어 기계가 학습을 하기 위해선 하기와 같은 데이터가 필요하다.

 x(hours) 

 y (score)

 10

 90

 9

 80

 3

 50

 2

 30


여기서 우리가 최종적으로 원하는 목표는 score이다 이와 같은 데이터는 score의 값이 다양하다. ( ex: 0 ~ 100 점대로 다양함) 이러한 것들은 영역이 넓기 때문에 이런 유형의 예측을 하는 것을 supervised 중에 regression이라고 한다.  


만약, 위 데이터를 regression 모델에 학습을 시키고 나서, x로 8을 regression 모델에 입력하면 70 정도의 값이 출력 될 것이다. 이러한 과정은 Linear Regression을 모두 표현한 것이다.


[ (Linear) Hypothesis(가설) ]

아래 데이터를 간단하게 그래프로 그려보자. (x=y)

 x

 y 

 1

 1 

 2

 2 

 3

 3 


세상에 Linear regression으로 표현할 수 있는 것들은 많다. 예를 들면

- 학생이 공부를 많이 하면 성적이 올라간다.

- 운동을 많이 할수록 체력이 좋아진다.

- 집이 클수록 가격이 올라간다.

등이 있다.


Linear 하게 가설을 쓴다는 것은 어떤 데이터가 있다면 여기에 잘 맞는 어떤 Linear 한 선을 찾는다는 것으로 생각할 수 있다.

어떤 선이 데이터에 잘 맞는 선을 찾는 것이 바로 학습을 하는 것이다.


만약 아래와 같은 선이 있다. 이것을 수학적으로 나타낸다면 2차 함수에서 선을 긋는 것이니까 

H(x) = Wx + b 방정식으로 표현이 가능하다.

H(x)가 가설이 될 것이며, 이것은 x의 값에 W를 곱하고 b를 더하면 대략 어떤 하나의 형태이 선이 나올 것이다.

즉, W와 b에 따라 선이 바뀐다. 여기까지가 Linear Regression의 첫 번째 단계이다.

그러면 위의 그림과 같이 저 선들 중에 어떤 선이 우리가 갖고 있는 데이터와 가장 잘 맞는 선일까를 찾아야 한다.

대략적으로 노란 색선은 H(x) = 0.5 * x + 2 가 될 것이고 파란 색선은 H(x) = 1 * x + 0 의 가설이 될 것이다.


[Cost function]

위의 이미지처럼 가설이 나타내는 데이터 점과(검은색 점) 실제 데이터(빨간색 선이 시작되는 시작점) 간의 거리를 비교해서 거리가 멀면은 나쁜 것이고 가까우면 좋은 것이라는 것을 계산한 것이다. 

이것을 Linear Regression에서 Cost function이라고 부른다.(거리를 측정한다는 것, 또한 Lost function이라고도 불린다.우리가 세운 가설과 실제 데이터가 얼마나 다른가를 나타내는 것


H(x) - y 가 실제 데이터와 가설로 나온 데이터 간의 차이가 된다. 해당 데이터는 양수 음수 모두 나오기 때문에 제곱을 한다.

-> (H(x) - y)^2 

즉, 이것을 우리는 Cost function이라고 부른다.


조금 더 정확하게 정리하자면 아래 이미지와 같은 식으로 나타낼 수 있다.



첫 번째는 각각의 x, y의 자리 순서대로 차이를 계산하여 그 값을 제곱한다. 그 값들을 전부 더한 것을 3으로 나눈다. ( 3개 데이터니까 평균을 내기 위하여 3으로 나누었다. ) 이것을 cost function이라고 하며 

두 번째는 첫 번째 같은 경우는 정해진 데이터에 대한 cost를 구하는 방법으로는 한계가 있다 그러므로 해당 함수를 이용하면 전체 데이터에 대한 cost를 알 수 있다. 그래야 적합한 가설을 찾을 수 있기 때문이다. (=일반화)


만약 m을 데이터의 개수라고 생각해보자.

즉, 각각의 H(x^i(i)) - y^(i))^2  ==>> H(x^(i)) : 예측한 값, y^(i) : 데이터 값의 차이에 제곱을 하고 각각을 1부터 m 개까지 더한 후 m으로 나누어서 평균을 구한다.( 시그마 왼쪽에 m 분의 1이 평균(=데이터 개수) 을 구하는 것이다)



cost 함수는 W, b에 대한 함수가 된다. cost 값을 최소화하는 W와 b를 구하는 것이 이 학습의 목표가 된다. (=minimize cost)

=> 결론적으로 cost를 가장 작게 만드는 W와 b를 구하는 것이 Linear Regression의 학습이 된다.



참조: https://www.inflearn.com/course/%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9D%B8-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B0%95%EC%A2%8C/dashboard


반응형

'AI or APP > Tensorflow' 카테고리의 다른 글

multi-variable linear regression  (0) 2019.12.01
cost 최소화 알고리즘 설명  (0) 2018.07.15
TensorFlow 설치 및 사용  (6) 2018.06.22
머신러닝이란  (0) 2018.06.18
Comments