본문 바로가기

연구원생활

[머신러닝] 선형 회귀와 경사 하강법

728x90
반응형

선형 회귀(Linear Regression)

데이터를 잘 대변해주는 선 (최적선, line of best)을 찾아내는 것
즉, 데이터에 가장 잘 맞는 가설 함수를 찾아야 

  • 목표 변수(target variable / output variable) : 맞추려고 하는 값
  • 입력 변수(input variable / feature) : 맞추는데 사용하는 값

 


가설 함수

가설 함수(hypothesis function) : 데이터를 잘 대변 해줄 수 있는 선(y=ax+b)을 찾는 것

가설 함수 표현법 : 일반적으로, $h(x)=\Theta _{0}+\Theta _{1}x$ 로 표현함

  • 목표 변수 y에 끼치는 요소들이 굉장히 많기 때문에, 이러한 것들을 일관성 있게 표현하기 위해서 θ로 표현함
  • θ들을 조율하면서 최적의 선을 찾음

 


가설 함수 평가법 : 평균 제곱 오차(MSE)

  • 이 데이터들이 가설 함수와 얼마나 떨어져있는지 평가하는 방법
  • 각 데이터의 실제값과 가설 함수가 예측하는 값의 차이
    • 모든 오차를 양수로 표현하기 위해서 제곱함

 

평균 제곱 오차(MSE) 일반식

$$\frac{1}{m}\sum_{i-1}^{m}(h_{\Theta }(x^{i})-y^{i})^{2}$$
$x^{i}$에 대한 예측값($h_{\Theta }(x^{i})$)과 실제 결과값($y^{i}$)에 대한 차이(=오차)의 제곱값을 모두 더한 후, 데이터의 개수(m)으로 나눈 것

 

MSE의 의미

  • MSE가 크다 : 가설 함수가 데이터에 잘 안 맞다
  • MSE가 작다 : 가설 함수가 데이터에 잘 맞다

 


손실 함수 (Loss Function)

  • 가설 함수의 성능을 평가하는 함수
    • 손실 함수가 작으면, 가설 함수가 데이터에 잘 맞다
    • 손실 함수가 크면, 가설 함수가 데이터에 잘 안 맞다
  • 선형 회귀의 경우에는 평균 제곱 오차가 손실 함수의 output임
    • θ값들을 바꿔 손실 함수의 output을 최소가 되도록 하는 것이 목표임

 

손실 함수의(J) 일반식

$$J(\Theta)=\frac{1}{2m}\sum_{i-1}^{m}(h_{\Theta }(x^{i})-y^{i})^{2}$$

 


경사 하강법(Gradient Descent)

경사 하강법(Gradient Descent)은 최적화 알고리즘 중 하나로, 주어진 함수의 최소값을 찾는 방법으로, 주로 기계 학습에서 모델의 파라미터를 학습하는 데 사용되며, 이 알고리즘은 함수의 기울기를 이용해 최소값을 찾아

  • θ값들을 바꿔 손실 함수의 output을 최소가 되도록 하는 것
  • 손실 함수(J)의 최소값(극소점)에 가까워지면 가설함수가 최적화 되었다고 판단 할 수 있음
    • 손실 함수의 기울기를 이용

경사 하강법 일반화

➡️ $\frac{1}{m}\sum_{i-1}^{m}(h_{\Theta }(x^{i})-y^{i})$를 $\mu_{error}$ 로 표현하면,

  • $ \alpha $ : 학습률(learning rate)
학습률 α가 너무 큰 경우
- α가 크면 클수록 경사 하강을 한 번을 할 때마다 θ의 값이 많이 바뀜
- α가 너무 크면 경사 하강법을 진행할수록 손실 함수J의 최소점에서 멀어질 수 있음
- 학습률이 너무 크면, 경사 하강법을 할수록 손실 그래프가 커질 수 있음


학습률 α가 너무 작은 경우
- θ가 계속 엄청 찔끔찔끔 씩 움직여서 최소 지점을 찾는게 너무 오래 걸릴 수 있음
- 학습률이 너무 작으면, iteration(반복수)가 너무 많아짐

 

728x90
반응형