regression: 데이터포인트x에 해당하는 실제 값으로 주어지는 타겟y를 예측하는 과제
linear regression: 예측함수가 입력 feature들의 선형 조합으로 표현
예시) 주택 가격 예측
input: area,age
d개의 변수가 있을 경우의 model
데이터 포인트들의 집합 X & 예측 값 ŷ
ŷ =Xw+b
Goal: 예측값과 실제값의 차이를 최소화하는 model parameter를 찾는 것
Parameter
feature(covariate): sample의 특징을 표현하는데 사용됨
표현
모델의 예측값과 실제값의 오차를 측정한다.
index i의 sample에 대한 오차계산
0.5: 2차원 항목을 미분했을 때 값이 1이 되게 만들어서 더 간단한 수식을 만들기 위해 사용된 값
예측값과 실제값의 큰 차이는 loss에서 더 크게 반영된다.
학습 샘플들의 평균 loss를 최소화하는 모델 파라미터 와 를 찾는 것이 모델을 학습시키는 것이다.
Stochastic Gradient Descent
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
평균이 μ이고 분산이 인 정규분포(normal distribution)
exp
시각화
%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를 적용한 선형 회귀와 동일한 문제로 정의될 수 있다.