Linear Regression

김보현·2024년 7월 4일
0

MachineLearning

목록 보기
5/6

regression: 데이터포인트x에 해당하는 실제 값으로 주어지는 타겟y를 예측하는 과제
linear regression: 예측함수가 입력 feature들의 선형 조합으로 표현

Model

예시) 주택 가격 예측
input: area,age
price=wareaarea+wageage+bprice=w_{area}⋅area+w_{age}⋅age+b

d개의 변수가 있을 경우의 model
y^=w1x1+...+wdxd+b(y^=wx+b)ŷ =w_{1}⋅x_{1}+...+w_{d}⋅x_{d}+b (ŷ =w^⊤x+b)

  • x: 데이터 포인트
  • y: 타겟 변수

데이터 포인트들의 집합 X & 예측 값 ŷ
ŷ =Xw+b

Train Data

Goal: 예측값과 실제값의 차이를 최소화하는 model parameter를 찾는 것

Parameter

  1. Dataset = TrainingData = TrainingSet
  2. Sample
  3. Label

feature(covariate): sample의 특징을 표현하는데 사용됨

표현

  1. n: 수집한 샘플의 개수
  2. i: 각 샘플의 index
    sample: xi=[x1i,x2i]x^i=[x^i_{1},x^i_{2}]
    label: yiy^i

Loss Function

모델의 예측값과 실제값의 오차를 측정한다.
index i의 sample에 대한 오차계산

Square loss 제곱 오류 함수

li(w,b)=0.5(y^iyi)2l^i(w,b)=0.5(ŷ ^i−y^i)^2

0.5: 2차원 항목을 미분했을 때 값이 1이 되게 만들어서 더 간단한 수식을 만들기 위해 사용된 값

Quadratic Dependence 이차 의존성

예측값과 실제값의 큰 차이는 loss에서 더 크게 반영된다.
학습 샘플들의 평균 loss를 최소화하는 모델 파라미터 ww^*bb^*를 찾는 것이 모델을 학습시키는 것이다.

최적화 Algorithm

Stochastic Gradient Descent

  1. 난수를 이용해서 모델 파라미터 초기화
  2. 데이터를 반복적으로 사용해서 loss함수의 값을 줄인다.
  3. 1.,2.반복
  4. 3.에서는 학습 데이터에서 미리 정한 개수만큼의 sample을 임의로 균일하게 뽑아서 미니배치를 구성하고, 미니배치의 값들에 대한 평균 loss값의 모델 파라미터에 대한 미분을 구한다.
  5. 이 결과의 미리 정의된 스탭 크기 lr>0를 곱해서 loss값이 최소화되는 방향으로 파라미터를 변경한다.

hyper-parameter

미니 배치 크기, 학습 속도: 모델 학습을 통해 찾아지는 값이 아니라 직접 선택을 해야 하는 값들

hyper-parameter tuning

미니 배치 크기, 학습 속도 조정

벡터화

a,b: 1000차원의 벡터

벡터를 더하는 방법
방법1. for loop를 이용해서 벡터의 각 값들을 하나씩 더한다
방법2. 두 벡터를 직접 더한다

방법1

start = time()
c = nd.zeros(shape=10000)
for i in range(10000):
    c[i] = a[i] + b[i]
time() - start

1.4894440174102783
방법2

start = time()
d = a + b
time() - start

0.0002465248107910156

표준 분포와 제곱 Loss

평균이 μ이고 분산이 σ2σ^2인 정규분포(normal distribution)
12πσ2\frac1{\sqrt 2πσ^2}exp(12σ2(xμ)2)(−\frac1{2σ^2}(x−μ)^2)
시각화

%matplotlib inline
from matplotlib import pyplot as plt
from IPython import display
from mxnet import nd
import math

x = nd.arange(-7, 7, 0.01)
# Mean and variance pairs
parameters = [(0,1), (0,2), (3,1)]

# Display SVG rather than JPG
display.set_matplotlib_formats('svg')
plt.figure(figsize=(10, 6))
for (mu, sigma) in parameters:
    p = (1/math.sqrt(2 * math.pi * sigma**2)) * nd.exp(-(0.5/sigma**2) * (x-mu)**2)
    plt.plot(x.asnumpy(), p.asnumpy(), label='mean ' + str(mu) + ', variance ' + str(sigma))

plt.legend()
plt.show()
plt.savefig('그래프.jpg', format='jpeg')

그래프 해석
평균을 변경하면 함수를 이동시키고, 편차를 증가시키면 peak는 낮추고 분산되게 한다.
least mean square loss를 적용한 linear regression에서 중요한 가정들은 노이즈가 있는 관찰에서 얻어지고 이 노이즈들은 데이터에 더해진다는 것이다.

파라미터들에 대해서 데이터의 likelihood를 최대화하는 것은 Maximum Likelihood Principle 로 잘 알려져 있다.
이 estimator들은 Maximum Likelihood Estimators (MLE)라고 불린다.

지수 함수들의 곱의 최적화를 구현하는 것은 어렵기 때문에 Negative Log-Likelihood −logP(Y|X)를 최소화 하는 방법을 사용한다.

additive Gaussian noise를 갖는 선형 모델의 likelihood를 최대화하는 것은 squared loss를 적용한 선형 회귀와 동일한 문제로 정의될 수 있다.

profile
Fall in love with Computer Vision

0개의 댓글