AI Fundamentals/LG Aimers 3기

[LG Aimers] Module 5.2(Supervised Learning 분류, 회귀) : Linear Regression

Jae. 2023. 7. 13. 07:56
728x90

1. Regression

 

  • Continuous Outputs
  • Data Set에서 입력과 정답으로 구성되어 있는 label이 있는 Data set을 사용

 

2. Linear Models

 

  • 입력 feature $x_{i}$와 model parameter $\theta_{i}$의 linear combination으로 구성되어 있음
  • d-dimension vector $x$ with $x_{0} = 1$ 으로 설정
  • 두 벡터 $\theta$, $x$를 내적해서 처리
  • 선형 모델이라고 해서 입력 변수도 선형일 필요는 없음 : Model(learnable) Parameter기준 Linear하면 됨

 

  • Advantages 
    • 단순하다 : 처음 시도해보고 성능 측정하기가 쉬움
    • Input parameter가 Output에 영향을 얼마나 주는지 해석가능
    • Generalization : model이 단순하기 때문에 성능이 높지는 않아도 다양한 환경에서 안정적인 성능 제공가능

 

 

 

반드시 입력 parameter도 linear할 필요는 없다

 

 

입력변수가 하나일 경우 univariate problem, 여러 개일 경우 multivariate problem으로 분류

 

 

3. Linear Regression

 

 

주어진 입력에 대해 출력과의 선형적인 관계를 추론하는 문제

 

 

  • 입력 feature 1개, Model parameter 2개
  • $y^{(i)}$ : Target Data (Data set에서의 정답)
  • $h_{\theta}(x^{(i)})$ : Predicted Output (Model의 출력)

 

 

 

 

 

cost(loss) function을 최소화하는 parameters(theta_0,1)을 찾기

 

 

 

 

 

4. Optimization (Normal Equation, Gradient Descent)

 

 

 

  • d-dimension vector : row 형태로 들어가 있음
  • $\theta_{0}$에 곱해지는 input parameter = 1로 설정하기 위해 각 vector의 first entry = 1로 처리
  • 최적화 parameter $\theta$ : cost function을 가장 최소화하는 것

 

  • Vector $X$, $\Theta$ 내적 : $X^{T}\Theta$ (Transpose가 앞에 붙는다)
  • Transpose 성질 : $(X \Theta)^{T} = \Theta^{T} X^{T}$ : Transpose를 분배하면 순서가 바뀐다

 

 

  • Normal Equation

 

Theta에 대해 미분 : 무관한 항들은 상수로 취급

 

 

  • n >= m 이므로 데이터가 변수 개수보다 많거나 같아야 함
  • 선형회귀분석 연립방정식과 달리 행의 개수(식의 개수) > 열의 개수(변수의 개수)이므로 방정식을 푸는 것은 불가능함
  • Normal Equation 를 이용해서 해를 구하는 것 : Data의 Sample수가 늘어날 경우 비효율적 (Matrix의 dimension이 늘어나게 될 경우 inverse matrix 연산이 복잡해짐)

 

 

  • Gradient Descent

 

  • Iterative 하게 시행하여 gradient = 0인 지점을 찾는 방법
  • Gradient : 함수의 변화도가 가장 큰 방향으로 이동
  • Greedy Algorithm의 특성 : GD는 경우에 따라 Local Optimum만을 달성하기가 쉽다 (전체에서 최적화된 point가 아닐 가능성 존재)

 

 

 

 

  • Hyperparameter: 사전에 정의된 parameter (update X)
  • Learnable parameter: GD 알고리즘을 통해 학습하고자 하는 parameter (update O)

 

 

 

 

예측값 - 실제값으로 처리한 이유는 -alpha 형태를 유지하기 위해 (실제값 - 예측값으로 처리하면 -가 2번 나오기 때문에 +로 나옴)

 

 

Q1. MSE를 작성할 때 $\sum_{i=1}^{N}$ 까지 총 Sample의 수는 $N$개지만 $2N$으로 나누는 이유

 

 

  • Derivation이 수학적으로 더 깔끔하기 때문: Partial Derivation시 $2$가 $\frac {1} {2}$와 상쇄됨
  • "To make the derivations mathematically more convenient"
  • Loss Function을 최소화하는 Parameter를 찾는데 있어서 Constant를 곱하는 행위는 아무런 영향도 주지 않음

 

https://mccormickml.com/2014/03/04/gradient-descent-derivation/

 

Gradient Descent Derivation · Chris McCormick

Gradient Descent Derivation 04 Mar 2014 Andrew Ng’s course on Machine Learning at Coursera provides an excellent explanation of gradient descent for linear regression. To really get a strong grasp on it, I decided to work through some of the derivations

mccormickml.com

 

실제로 같은 결과를 expect 할 수 있다

 

 

Q2. 원래는 (실제값 - 예측값)^2 으로 처리했으나 (예측값 - 실제값)^2으로 MSE 작성 후에도 Gradient값이 동일한가?

 

Yes

 

  • (실제값 - 예측값)으로 처리한 경우: Partial Derivation시 (-)가 앞으로 튀어나온다
  • $\frac{\partial R(w)}{\partial w_{1}} = \frac {-2} {N} \sum_{i=1}^{N} x_{i} * (실제값_{i} - 예측값_{i})$
  • $\frac{\partial R(w)}{\partial w_{0}} = \frac {-2} {N} \sum_{i=1}^{N}  (실제값_{i} - 예측값_{i})$

 

  • (예측값 - 실제값)으로 처리한 경우: (-)가 선반영 되어있다
  • $\frac{\partial R(w)}{\partial w_{1}} = \frac {2} {N} \sum_{i=1}^{N} x_{i} * (예측값_{i} - 실제값_{i})$
  • $\frac{\partial R(w)}{\partial w_{0}} = \frac {2} {N} \sum_{i=1}^{N}  (예측값_{i} - 실제값_{i})$

 

 

 

 

  • Gradient Descent VS Normal Equation

 

 

 

 

728x90