Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

네박자대로

[모두의 딥러닝2] 3. Simple linear regression 본문

딥러닝 공부

[모두의 딥러닝2] 3. Simple linear regression

ysyang 2022. 7. 14. 12:17

https://youtu.be/Mx7oqTKwhIA

 

오늘은 linear regression에 대한 수업을 들었다. 

어제 강의에서 알았다시피 '회귀'란 각 데이터 (x,y)들을 가장 잘 대변하는

직선을 향해 회귀한다는 뜻이다. 

 

[linear regression]

 

여기까진 지난 시간 리뷰와 다르지 않다. 

새롭게 알게 된 것들은 다음과 같다.

 


hypothesis

'가설' 을 의미하는 단어이다. 이게 왜 머신러닝과 관련이 있을까??

 

[hypothesis]

가령 (1,1) (2,2) (3,3) 이라는 데이터가 있다고 해보자. 

이 세 점을 가장 잘 대변해주는 직선의 방정식은 무엇일까?

위 그림에서는 파란 직선이 세 점을 가장 잘 대변하는 함수라고 할 수 있겠다. 

 

즉 'hypothesis'란 가장 그럴듯한 가설이다. 

내가 가진 데이터들을 가장 잘 대변하는 가설을 의미한다. 

 

linear regression에서는 이러한 hypothesis를 

H(x) = weight * x + bias

라는 식으로 나타내는 것이다. 


 

그렇다면, 가장 최적의 hypothesis를 어떻게 정의할 수 있을까??

이 때 그렇게 많이 들어온 용어 cost가 등장한다.

 

 

hypothesis로부터 예측한 예측값 - 실제 데이터값 = error (오차)

즉, 이 오차를 최소화하면 할수록 가장 optimized한 hypothesis를 정의할 수 있게 된다. 

 

 

 

그렇다면, 도대체 이 오차를 어떻게 최소화할 수 있을까??

 

[cost function]

여기서 그 유명한 비용함수(cost function)이 등장한다.

cost function을 정의하는 방법들은 많지만, 이번 시간에는 가장 기본적인 정의를 살펴보자.

 

우선 오차를 단순히 합산해서 전체 cost를 구하는 방법을 생각해볼 수도 있을 것이다.

그러나 이러면 문제가 발생한다.

바로, H(x)-y 값이 음수가 될수도, 양수가 될수도 있다는 것이다. 즉 정확한 cost가 계산되는 것이 아니라 

오차의 폭이 큰데도 불구하고 0에 수렴하는 값이 계산될 수 있다.

 

 

 

 

따라서 각 오차에 제곱하여 합산하는 방식으로 cost를 계산하게 된다.

MSE(Mean Squared Error)

이를 평균제곱오차 = MSE라고 한다.

 

결국 MSE로 정의한 cost function을 최소화하는 Weight와 bias를 찾아내는 것이 모델 학습 과정인 것이다.

 

 

Goal

 

이 비용함수를 최소화하는 기법들이 그 유명한 gradient descent (경사하강법) 등이다. 

 

 


※ Cost function 정의할 때, 왜 절댓값이 아닌 제곱을 취할까??

[출처]http://taewan.kim/post/cost_function_derivation/

구글링해보니 제곱을 취해야 하는 명확한 이유들이 있으나, 솔직히 제대로 이해하지 못했다. 

https://velog.io/@yuns_u/%ED%8F%89%EA%B7%A0%EC%A0%9C%EA%B3%B1%EC%98%A4%EC%B0%A8MSE-%ED%8F%89%EA%B7%A0%EC%A0%88%EB%8C%80%EC%98%A4%EC%B0%A8MAE

 

평균제곱오차(MSE), 평균절대오차(MAE)

MSE, MAE, 손실함수와 머신러닝.

velog.io

필요할 때 찾아읽어보며 이해해보자. 

 

Comments