-
1. 선형 회귀(Linear Regression)AI/딥러닝 2019. 7. 8. 01:18
공부를 많이 할수록 시험 점수가 오르거나 운동을 많이 할수록 체중이 빠지듯이, 종속 변수와 설명 변수가 선형성을 띌 때 선형 회귀분석을 한다고 합니다...
성적
공부시간
90
44
35
12
48
20
12
4
예를 들어, 공부시간과 성적에 대한 데이터가 있습니다. 딱보면 공부를 많이 할수록 성적이 높아지네요,, 공부를 많이 합시다
이제 우린 몇 시간 공부하면 점수가 얼마나 나올지 예측해볼 겁니다.
그래프 상에선 다음과 같이 표현됩니다. 선형적으로 표현되네요. 일단 그러면 하나의 가정을 해봅시다.
까만 선을 그었습니다. 보이시나요?? 이제 저 가정에 따라 예측해보겠습니다. predict요
저 까만 선을 H(x) = Wx + b 라고 해볼까요! 그림을 보고 W, b를 구해보자면,
W = 9/5, b = 0이 되네요
이게 얼마나 잘 맞는 가정인지 확인하기 위해, 실제 데이터와의 오차를 구할 겁니다.
오차는 파란 동그라미와 까만 선의 차이가 되겠지요
실제 데이터의 성적을 y라고 한다면,
오차의 합 = Σ(H(x) - y)2 이 되겠군요. 모든 데이터의 실제값과 예측 값의 차이를 제곱한 뒤, 더했습니다.
제곱하는 이유는 차이를 더할 때 어떤 것은 마이너스 혹은 플러스가 돼서 오차가 0이 될 수도 있고, 제곱을 하면 차이가 클수록 그 오차값이 더욱 명확해지기 때문입니다.
이제 이 식을 cost function이라고 부르겠습니다.
Hypothesis = Wx + b
Cost function = 1/N * Σ(H(x) - y)2
이제 실제로 계산을 해볼까요,
실제 값 90 35 48 12 예측 값 79.2 21.6 36 7.2 오차(차이를 제곱) 104.4 179.56 144 23.04 Cost = 451 / 4 = 112.75
와우,, cost가 어마어마하네요. 그만큼 제가 엉터리로 가정을 짰다는 말입니다.
엉터리 가정을 고치려면, W와 b를 업데이트해야 합니다.
아까의 cost function을 다시 보면, 1/N* Σ(H(x) - y)2 = 1/N * Σ(W·x + b - y)2가 됩니다.
즉, Cost(W)는 W에 대한 2차 함수가 됩니다.
대략 이런 식이 될 겁니다. W가 9/5일 때, 112.75의 cost가 발생합니다.
이제 우리는 cost가 최소가 되도록, 2차원 그래프 상에서 최저점을 찍도록 W를 업데이트할 겁니다. 자동적으로요
반응형'AI > 딥러닝' 카테고리의 다른 글
5. Sotfmax, Cross Entropy (0) 2019.07.11 4. 로지스틱 회귀(Logistic Regression) (0) 2019.07.11 3. 다변량 선형 회귀(Multivariate Linear Regression) (0) 2019.07.11 2. 경사 하강법(Gradient Descent), Tensorflow 선형 회귀 구현 (0) 2019.07.09 Machine Learning 종류 (2) 2019.07.06