Linear Regression
线性回归
监督学习
- Features : input variables,x;
- Target : output vaiable,y;
- Training example:( x ( i ) , y ( i ) x^{(i)},y^{(i)} x(i),y(i)), i = 1,2,3,…,m
- Hypothesis: h :x → \rightarrow →y
linear regression
- Linear hypothesis : h ( x ) = θ 1 x + θ 0 h(x) = \theta_{1}x + \theta_{0} h(x)=θ1x+θ0
- θ i \theta_{i} θi :要估计的参数
如何去选择 θ i \theta_{i} θi?
给定data
x
∈
R
n
x \in \mathbb{R}^{n}
x∈Rn,有
θ
∈
R
n
+
1
\theta \in \mathbb{R}^{n+1}
θ∈Rn+1
那么
h
θ
(
x
)
=
∑
i
=
0
n
θ
i
x
i
=
θ
T
x
h_{\theta}(x) = \sum_{i=0}^{n}\theta_{i}x_{i} = \theta^{T}x
hθ(x)=∑i=0nθixi=θTx,在这里定义
x
0
=
1
x_{0} = 1
x0=1(为x添加一维)
如何去选择最好的 θ \theta θ ?
定义损失函数(cost function):
J
(
θ
)
=
1
2
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2}
J(θ)=21i=1∑m(hθ(x(i))−y(i))2
也就是估计值于样本差值平方和
目标:
m
i
n
J
(
θ
)
=
1
2
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
min J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2}
minJ(θ)=21i=1∑m(hθ(x(i))−y(i))2
梯度
变化最快的方向
- 梯度垂直于等值线
- 梯度的模,代表变化的快慢
- 梯度的方向指向增长的方向
梯度下降法
J
(
θ
)
的
值
随
θ
的
变
化
而
改
变
,
沿
着
j
(
θ
)
梯
度
相
反
的
方
向
,
能
最
快
的
下
降
,
达
到
收
敛
值
(
j
(
θ
)
值
最
小
J(\theta) 的值随\theta的变化而改变,沿着j(\theta)梯度相反的方向,能最快的下降,达到收敛值(j(\theta)值最小
J(θ)的值随θ的变化而改变,沿着j(θ)梯度相反的方向,能最快的下降,达到收敛值(j(θ)值最小
\rule[-5pt]{14.3cm}{0.1em}
A
l
g
o
r
i
t
h
m
1
\mathbf{Algorithm 1}
Algorithm1 Gradient Descent
\rule[-5pt]{14.3cm}{0.05em}
1:
G
i
v
e
n
\mathbf{Given}
Given a starting point
θ
∈
d
o
m
J
\theta\in\mathbf{dom}J
θ∈domJ
2:
r
e
p
e
a
t
\mathbf{repeat}
repeat
3: Calculate gradient
▽
J
(
θ
)
;
\bigtriangledown J(\theta);
▽J(θ);
4: Update
θ
←
θ
−
α
▽
J
(
θ
)
;
\theta\leftarrow\theta-\alpha\bigtriangledown J(\theta);
θ←θ−α▽J(θ);
5:
u
n
t
i
l
\mathbf{until}
until convergence criterion is satisfied
\rule[-5pt]{14.3cm}{0.05em}
- θ 可 以 被 随 机 初 始 化 \theta 可以被随机初始化 θ可以被随机初始化
- α 被 称 为 学 习 速 率 \alpha 被称为学习速率 α被称为学习速率
如何更新 θ \theta θ
θ
j
←
θ
j
−
α
∂
J
(
θ
)
∂
θ
j
,
∀
j
=
0
,
1
,
.
.
.
,
n
\theta_{j}\leftarrow\theta_{j}-\alpha\frac{\partial J(\theta)}{\partial\theta_{j}}, \forall j=0,1,...,n
θj←θj−α∂θj∂J(θ),∀j=0,1,...,n
∂
J
(
θ
)
∂
θ
j
=
∂
∂
j
1
2
∑
i
=
1
m
(
θ
T
x
(
i
)
−
y
(
i
)
)
2
\frac{\partial J(\theta)}{\partial\theta_{j}} = \frac{\partial}{\partial_{j}}\frac{1}{2}\sum_{i=1}^{m}(\theta^{T}x^{(i)} - y^{(i)})^{2}
∂θj∂J(θ)=∂j∂21i=1∑m(θTx(i)−y(i))2
=
∂
∂
j
1
2
∑
i
=
1
m
(
∑
j
=
0
n
θ
j
x
j
(
i
)
−
y
(
i
)
)
2
=\quad \frac{\partial}{\partial_{j}}\frac{1}{2}\sum_{i=1}^{m}(\sum_{j=0}^{n}\theta_{j}x_{j}^{(i)} - y^{(i)})^{2}
=∂j∂21i=1∑m(j=0∑nθjxj(i)−y(i))2
=
∑
i
=
1
m
(
∑
j
=
0
n
θ
j
x
j
(
i
)
−
y
(
i
)
)
x
j
(
i
)
=\quad \sum_{i=1}^{m}(\sum_{j=0}^{n}\theta_{j}x_{j}^{(i)} - y^{(i)})x_{j}^{(i)}
=i=1∑m(j=0∑nθjxj(i)−y(i))xj(i)
=
∑
i
=
1
m
(
θ
T
x
(
i
)
−
y
(
i
)
)
x
j
(
i
)
=\quad \sum_{i=1}^{m}(\theta^{T}x^{(i)} - y^{(i)})x_{j}^{(i)}
=i=1∑m(θTx(i)−y(i))xj(i)
- 注:有时候用的是 θ j ← θ j − α m ∂ J ( θ ) ∂ θ j , ∀ j = 0 , 1 , . . . , n \theta_{j}\leftarrow\theta_{j}-\frac{\alpha}{m}\frac{\partial J(\theta)}{\partial\theta_{j}}, \forall j=0,1,...,n θj←θj−mα∂θj∂J(θ),∀j=0,1,...,n,多一个m,避免了因为数据集太大,导致数值过大的情况
随机梯度下降法 SGD
如若数据集过大,在每一次迭代中,对所有的数据集进行运算,会导致开销过大
使用随机梯度下降,用于解决数据集过大的情况
在每一次迭代的过程中,随机选择一个数据样本进行计算并更新参数
\rule[-5pt]{14.3cm}{0.1em}
A
l
g
o
r
i
t
h
m
2
\mathbf{Algorithm 2}
Algorithm2 Stochastic Gradient Descent for Linear Regression
\rule[-5pt]{14.3cm}{0.05em}
1:
G
i
v
e
n
\mathbf{Given}
Given a starting point
θ
∈
d
o
m
J
\theta\in\mathbf{dom}J
θ∈domJ
2:
r
e
p
e
a
t
\mathbf{repeat}
repeat
3: Randomly shuffle the training data;
4: for i =1,2,…,m do
5:
θ
←
θ
−
α
▽
J
(
θ
;
x
(
i
)
,
y
(
i
)
)
;
\theta\leftarrow\theta-\alpha\bigtriangledown J(\theta;x^{(i)},y^{(i)});
θ←θ−α▽J(θ;x(i),y(i));
6: end for
7:
u
n
t
i
l
\mathbf{until}
until convergence criterion is satisfied
\rule[-5pt]{14.3cm}{0.05em}
函数对向量、矩阵的梯度(向量、矩阵求导)
给出定义,若函数
f
:
r
m
×
n
→
R
f : \mathbb{r}^{m\times n} \rightarrow\mathbb{R}
f:rm×n→R,则
∂
f
∂
X
也
是
一
个
m
×
n
矩
阵
\frac{\partial f}{\partial X}也是一个m\times n矩阵
∂X∂f也是一个m×n矩阵:
(
∂
f
∂
X
)
i
j
=
∂
f
∂
x
i
j
(\frac{\partial f}{\partial X})_{ij}= \frac{\partial f}{\partial x_{ij}}
(∂X∂f)ij=∂xij∂f
表示实值函数对矩阵的梯度,记作
▽
x
f
\bigtriangledown_{x}f
▽xf
矩阵化计算
X
=
[
(
x
(
1
)
)
T
⋮
(
x
(
m
)
)
T
]
Y
=
[
(
y
(
1
)
)
T
⋮
(
y
(
m
)
)
T
]
X= \begin{bmatrix}(x^{(1)})^{T} \\ \vdots \\ (x^{(m)})^{T} \end{bmatrix} \qquad Y = \begin{bmatrix}(y^{(1)})^{T} \\ \vdots \\ (y^{(m)})^{T} \end{bmatrix}
X=⎣⎢⎡(x(1))T⋮(x(m))T⎦⎥⎤Y=⎣⎢⎡(y(1))T⋮(y(m))T⎦⎥⎤
X
θ
−
Y
=
[
(
x
(
1
)
)
T
θ
⋮
(
x
(
m
)
)
T
θ
]
−
[
(
y
(
1
)
)
T
⋮
(
y
(
m
)
)
T
]
=
[
h
θ
(
x
(
1
)
)
T
−
y
(
1
)
⋮
h
θ
(
x
(
m
)
)
T
−
y
(
m
)
]
X\theta - Y = \begin{bmatrix}(x^{(1)})^{T}\theta \\ \vdots \\ (x^{(m)})^{T} \theta \end{bmatrix} - \begin{bmatrix}(y^{(1)})^{T} \\ \vdots \\ (y^{(m)})^{T} \end{bmatrix} = \begin{bmatrix}h_{\theta}(x^{(1)})^{T} - y^{(1)}\\ \vdots \\ h_{\theta}(x^{(m)})^{T}-y^{(m)} \end{bmatrix}
Xθ−Y=⎣⎢⎡(x(1))Tθ⋮(x(m))Tθ⎦⎥⎤−⎣⎢⎡(y(1))T⋮(y(m))T⎦⎥⎤=⎣⎢⎡hθ(x(1))T−y(1)⋮hθ(x(m))T−y(m)⎦⎥⎤
J
(
θ
)
=
1
2
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
=
1
2
(
X
θ
−
Y
)
T
(
X
θ
−
Y
)
J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2} = \frac{1}{2}(X\theta - Y)^{T}(X\theta - Y)
J(θ)=21i=1∑m(hθ(x(i))−y(i))2=21(Xθ−Y)T(Xθ−Y)
求解
▽
θ
J
(
θ
)
\triangledown_{\theta}J(\theta)
▽θJ(θ)的矩阵化计算推导
▽
θ
J
(
θ
)
=
▽
θ
1
2
(
X
θ
−
Y
)
T
(
X
θ
−
Y
)
=
1
2
▽
θ
(
θ
T
X
T
−
Y
T
)
(
X
θ
−
Y
)
=
1
2
▽
θ
t
r
(
θ
T
X
T
X
θ
−
Y
T
X
θ
−
θ
T
X
T
Y
+
Y
T
Y
)
(
注
:
这
里
取
迹
不
影
响
结
果
因
为
这
个
矩
阵
运
算
完
本
来
就
是
一
个
常
数
,
但
是
会
方
便
我
们
求
导
我
们
求
导
:
▽
A
T
t
r
A
B
A
T
C
=
B
T
A
T
C
T
+
B
A
T
C
)
=
1
2
▽
θ
t
r
(
θ
T
X
T
X
θ
)
−
X
T
Y
=
1
2
(
X
T
X
θ
+
X
T
X
θ
)
−
θ
T
Y
=
X
T
X
θ
−
X
T
Y
\triangledown_{\theta}J(\theta) = \triangledown_{\theta}\frac{1}{2}(X\theta - Y)^{T}(X\theta - Y)\\=\frac{1}{2}\triangledown_{\theta}(\theta^{T}X^{T}-Y^{T})(X\theta-Y)\\=\frac{1}{2}\triangledown_{\theta}tr(\theta^{T}X^{T}X\theta-Y^{T}X\theta-\theta^{T}X^{T}Y+Y^{T}Y)\\(注:这里取迹不影响结果因为这个矩阵运算完本来就是一个常数,\\但是会方便我们求导我们求导:\\\triangledown_{A^{T}}trABA^{T}C=B^{T}A^{T}C^{T}+BA^{T}C)\\=\frac{1}{2}\triangledown_{\theta}tr(\theta^{T}X^{T}X\theta)-X^{T}Y\\=\frac{1}{2}(X^{T}X\theta+X^{T}X\theta)-\theta^{T}Y\\= X^{T}X\theta - X^{T}Y
▽θJ(θ)=▽θ21(Xθ−Y)T(Xθ−Y)=21▽θ(θTXT−YT)(Xθ−Y)=21▽θtr(θTXTXθ−YTXθ−θTXTY+YTY)(注:这里取迹不影响结果因为这个矩阵运算完本来就是一个常数,但是会方便我们求导我们求导:▽ATtrABATC=BTATCT+BATC)=21▽θtr(θTXTXθ)−XTY=21(XTXθ+XTXθ)−θTY=XTXθ−XTY
当
且
仅
当
A
的
列
向
量
线
性
无
关
,
A
T
A
可
逆
,
▽
θ
J
(
θ
)
=
0
的
解
为
:
当且仅当A的列向量线性无关,A^{T}A可逆,\triangledown_{\theta}J(\theta) =0 的解为:
当且仅当A的列向量线性无关,ATA可逆,▽θJ(θ)=0的解为:
θ
=
(
X
T
X
)
−
1
X
T
Y
\theta = (X^{T}X)^{-1}X^{T}Y
θ=(XTX)−1XTY
但我认为因为有些时候可能这个解不太好解,所以需要我们的梯度下降法,一步步逼近最优解
线性回归与极大似然估计的关系
目标变量和输入的关系
y
=
θ
T
x
+
ϵ
y = \theta^{T}x + \epsilon
y=θTx+ϵ
ϵ
\epsilon
ϵ表示误差,是独立同分布的,并且服从于高斯分布
N
(
0
,
σ
2
)
N(0,\sigma^{2})
N(0,σ2),也就是说,实际的值y和我们计算出来的
θ
T
x
\theta^Tx
θTx之间是存在误差的,我们假设这个误差是服从一个高斯分布的。
概率密度函数:
f
(
ϵ
)
=
1
2
π
σ
e
x
p
(
−
ϵ
2
2
σ
2
)
f(\epsilon) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{\epsilon^2}{2\sigma^2})
f(ϵ)=2πσ1exp(−2σ2ϵ2)
所以y的条件概率密度函数服从
y
∣
x
;
θ
∼
N
(
θ
T
x
,
σ
2
)
y|x;\theta \sim N(\theta^Tx,\sigma^2)
y∣x;θ∼N(θTx,σ2)
归于给定的训练集
d
a
t
a
{
x
(
i
)
,
y
(
i
)
}
data\{x^{(i)},y^{(i)}\}
data{x(i),y(i)}
p
(
y
=
y
(
i
)
∣
x
=
x
(
i
)
;
θ
)
=
1
2
π
σ
e
x
p
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
p(y = y^{(i)}|x = x^{(i)};\theta) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^Tx^{(i)})^2}{2\sigma^2})
p(y=y(i)∣x=x(i);θ)=2πσ1exp(−2σ2(y(i)−θTx(i))2)
我们要使得我们估计出来的结果,等于实际值的可能性更大,就可以列出如下的极大似然函数:
L
(
θ
)
=
∏
i
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
∏
i
1
2
π
σ
e
x
p
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
L(\theta) = \prod_{i}p(y^{(i)} | x^{(i)} ; \theta) \\ = \prod_{i} \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^Tx^{(i)})^2}{2\sigma^2})
L(θ)=i∏p(y(i)∣x(i);θ)=i∏2πσ1exp(−2σ2(y(i)−θTx(i))2)
进行取对数
l
(
θ
)
=
l
o
g
L
(
θ
)
=
m
log
1
2
π
σ
−
1
2
σ
2
∑
i
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
l(\theta) = logL(\theta)\\=m\log \frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{2\sigma^2}\sum_{i}(y^{(i)} - \theta^Tx^{(i)})^2
l(θ)=logL(θ)=mlog2πσ1−2σ21i∑(y(i)−θTx(i))2
那么也就是说,我们要使得
L
(
θ
)
L(\theta)
L(θ)更大,就要使得下式更小:
1
2
∑
i
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
\frac{1}{2}\sum_{i}(y^{(i)} - \theta^Tx^{(i)})^2
21i∑(y(i)−θTx(i))2
那么就说明,我们设
J
(
θ
)
=
1
2
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
=
1
2
(
X
θ
−
Y
)
T
(
X
θ
−
Y
)
J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2} = \frac{1}{2}(X\theta - Y)^{T}(X\theta - Y)
J(θ)=21∑i=1m(hθ(x(i))−y(i))2=21(Xθ−Y)T(Xθ−Y),去求插值的平方和,而不是4次方或6次方和,是合理的。