cs229-Part1
符号声明:
x(i):输入(input)或特征(features)
y(i):输出(output)或目标(target)
(x(i),y(i)):训练样本(training example)
{(x(i),y(i));i=1,...m}:训练集,m个训练样本
(i):表示训练集的索引
:输入值空间
:输出值空间
描述监督学习问题:给定训练集,学习函数 h:↦

如果目标变量y是连续值我们成为‘回归问题’,如果y是离散值则称为‘分类问题’。
线性回归:
假设一个x的线性函数来逼近 y:h(x)=θ0+θ1x1+θ2x2
其中 θ 称为 ↦ 的参数(也叫做权重weights)
令 x0=1 则 h(x)=∑i=0nθixi=θTx , 其中n为特征的个数。
给定训练集如何学习参数 θ ?
一个合理的想法是使 h(x) 逼近 y ,我们定义cost function:
J(θ)=12∑i=1m(h(x(i))−y(i))2
为了得到 θ 我们需要 minθJ(θ)
1.迭代法(梯度下降) 2.最小二乘(LMS ‘least mean squares’)
1、梯度下降
θj:=θj−α∂∂θjJ(θ) ,其中 j=0,...n,α 为学习率
对一个训练样本求梯度:
∂∂θjJ(θ)=∂∂θj12(h(x)−y)2=(h(x)−y)∂∂θj(h(x)−y)=(h(x)−y)∂∂θj(∑i=0nθixi−y)=(h(x)−y)xj
因此, θj:=θj−α(h(x(i))−y(i))x(i)j
批梯度下降(batch gradient descent):
Repeat until convergence{
θj:=θj−α∑i=1m(h(x(i))−y(i))x(i)j (for every j)
}
随机梯度下降(stochastic gradient descent):
Loop{
for i=1 to m{
θj:=θj−α(h(x(i))−y(i))x(i)j (for every j)
}
}
note:批梯度下降需要用到整个训练集,如果m很大则训练速度很慢;随机梯度下降比批梯度快的多但是可能不会收敛到最小值而是在最小值附近震荡(实际中大部分近似真正的最小值)。
1、最小二乘法
tip:矩阵相关操作
矩阵的迹: trA=∑i=1nAii 矩阵对角线的和。
trABC=trCAB=trBAC≠trBAC
trA=trAT , tr(A+B)=trA+trB , traA=atrA (a为实数)
J(θ)=12∑i=1m(h(x(i)−y(i))2=12(Xθ−y⃗ )T(Xθ−y⃗ )
∇θJ(θ)=∇θ12(Xθ−y⃗ )T(Xθ−y⃗ )=12∇θ(θTXTXθ−θTXTy⃗ −y⃗ Xθ+y⃗ Ty⃗ )=12∇θtr(θTXTXθ−θTXTy⃗ −y⃗ Xθ+y⃗ Ty⃗ )=12∇θ(trθTXTXθ−2try⃗ Xθ)=12(XTXθ+XTXθ−2XTy⃗ )=XTXθ−XTy⃗
令 ∇θJ(θ)=0,则 θ=(XTX)−1XTy⃗