본문 바로가기

프로그래밍/기계학습

다중선형회귀 (Multiple Linear Regression)

🟧다중선형회귀 란 ?

: 수치형 설명변수 X와 연속형 숫자로 이뤄진 종속변수 Y간의 관계를 선형으로 가정하고 이를 가장 잘 표현할 수 있는 회귀계수를 데이터로부터 추정하는 모델.

 

-예시 : 주택크기(설명변수 1개)와 주택가격(연속형 종속변수)의 관계를 나타내는 직선을 찾는 문제.

 

💛설명변수로 인해서 종속변수는 영향을 받아 변하게 된다. 

 

-설명사진 넣기

 

 

🟧 회귀 계수 결정법 

 

🔵Direct Solution

-선형회귀의 계수들은 실제값과 모델 예측값의 차이, 오차제곱합을 최소로 하는 값을 회귀계수로 선정

-최적의 계수들은 회귀 계수에 대해 미분한 식을 0으로 놓고 풀면 명시적인 해를 구할 수 있음. 즉 x와 y데이터만으로 회귀 계수를 구할 수 있음.

 

🔵Numerical search

-경사하강법(gradient descent) : 어떤 함수 값(목적 함수, 비용 함수, 에러 값)을 최소화하기 위해 임의의 시작점을 잡은 후 해당 지점에서의 그래디언트(경사)를 구하고 그래디언트의 반대 방향으로 조금씩 이동하는 과정을 여러번 반복하는 것. 그렇게 이동하다보면 미분값이 0이되는 지점과 비슷한 Global cost minimum을 구할 수 있게 된다.

Lerning rate 세팅은 이동정도를 세팅하는 것이다. 

 

-그래프 사진 넣기

 

🔹경사하강법 종류

 

◻Batch Gradient Descent (GD)

-파라미터를 업데이트 할 때마다 모든 학습 데이터를 사용하여 cost function의 gradient를 계산.

-Vanilla Gradient Descent라 불림

-매우 낮은 학습 효율을 보일 수 있음.

◻ Stochastic Gradient Descent (SGD)

-파라미터 업데이트 시, 무작위로 샘플링된 학습 데이터를 하나씩만 이용하여 cost function의 gradient를 계산

-모델을 자주 업데이트 하며, 성능 개선 정도를 빠르게 확인 가능

-Local minumum의 빠질 가능성을 줄일 수 있음.

-최소 cost의 수렴했는지의 판단이 상대적으로 어려움.

 

Q. 무작위로 하나만 이용하므로 오히려 Local minimum에 빠지기 쉬울수도 있지 않나...?

 

◻Mini Batch Gradient Descent

-파라미터 업데이트 시, 일정량의 일부 데이터를 무작위로 뽑아 cost function의 gradient를 계산

-앞의 두 방법의 개념의 혼합

-SGD의 노이즈를 줄이면서 GD의 전체 배치보다 효율적

-널리 사용되는 기법

 

🟧정규화(regularization)

- 회귀 계수가 가질 수 있는 값에 제약조건을 부여하여 미래 데이터에 대한 오차 기대 

- 미래데이터에 대한 오차의 기대 값은 모델의 Bias와 Variance로 분해 가능.

-정규화는 variance를 감소시켜 일반화 성능을 높이는 기법(단 이과정에서 bias가 증가할 수 있음)

 

-왼쪽 그림은 학습데이터를 정말 잘 갖추고 있지만, 미래 데이터가 조금만 바뀌어도 예측 값이 들쭉날쭉할 수 있음.

-우측 그림은 가장 강한 수준의 정규화를 수행한 결과로 학습데이터에 대한 설명력을 다소 포기하는 대신 미래 데이터 변화에 상대적으로 안정적인 결과를 나타냄.

 

🟧Bias - Variance Decomposition이란 ?

-일반화 성능을 높이는 정규화, 앙상블 기법의 이론적 배경

-학습에 쓰지 않는 미래 데이터에 대한 오차의 기대값을 모델의 Bias와 Variance로 분해하자는 내용

 

🔵Bias variance의 직관적인 이해

-첫번째 그림을 보면 예측값(파란색 엑스표)의 평균이 과녁과 멀리 떨어져 있어 Bias가 크고 예측값들이 서로 멀리 떨어져 있어 variance 또한 큼

-네번째 그림의 경우 Bias, Variance모두 작음. 제일 이상적임.

-부스팅(Boosting)은 Bias를 줄여 성능을 높이고, 라쏘회귀(Lasso regression)는 Variance를 줄여 성능을 높이는 기법임.

 

- 사진 넣기 

 

 

출처 : https://github.com/sejongresearch/2022.MachineLearning