机器学习笔记二:监督学习应用:梯度下降
例子:视频:算法学习司机驾驶实现自动驾驶
例子:房价预测
面积 | 价格 |
---|---|
2104 | 400 |
1416 | 232 |
1534 | 315 |
852 | 178 |
1940 | 240 |
引入符号:
- m:表示训练样本个数
- x:输入变量(特征)
- y:输出变量(目标变量)
- (x,y):训练样本
第i个训练样本:(
Xi,Yi )一般解决过程:
如何表示假设,这里选择线性表示:
h(x)=θ0+θ1∗x 注意,一般的,对于 有n个特征的假设公式:
h(x)=∑ni=0θi∗xi 评估参数选取:
J(θ)=12∑i=1m[hθ(xi)−yi]2 目标即是通过不断改变参数使得取得一个最小的值:
minθJ(θ) 初始参数选择对梯度下降的影响:Matlab PPT例子:导致收敛于局部最优解
梯度下降法更新参数策略:迭代法更新
θi:=θi−∂∂∂θiJ(θ) - 例子:针对仅有一个特征参数的情况
∂∂θiJ(θ)=∂∂θi12(hθ(x)−y)2=(hθ(x)−y)∂∂θi[hθ(x)−y]=(hθ(x)−y)∂∂θi[θ0x0+...+θixi+...+θnxn−y]=(hθ(x)−y)∗xi 更新:
θi:=θi−α(hθ(x)−y)∗xi 这里
α 代表学习率,手动设置。批梯度下降(batch gradient descent)
θi:=θi−α∑j=1m(hθ(xj−yj))∗xji 算法不足:对大批量的训练集,下降需要的计算次数太多
随机梯度下降(stochastic gradient descent):一次下降选择部分特征而非全部特征(
x1,x2,...,xi,...,xm )即:重复
ξ ,取j=1toξ 更新θi:=θi−α(hθ(xj)−yj)∗xji 最小化问题的代数解法
求解问题的数学表达
∇θ=⎡⎣⎢⎢⎢⎢⎢∂J∂θ0...∂J∂θn⎤⎦⎥⎥⎥⎥⎥∈Rn+1 θ:=θ−α∇θJ 几个先导知识点:矩阵迹 的运算性质
- 迹的定义:对于一个方阵,设主对角元素
Aii,i=1,...,n ,则迹trA=∑i=1nAii - 性质一:
trABC=trCAB=trBCA - 性质二:
∇AtrAB=BT - 性质三:
trA=trAT - 性质四:
tra=a,ifa∈R - 性质五:
∇AtrABATC=CAB+CTABT
- 迹的定义:对于一个方阵,设主对角元素
代数法的推导:
Xθ=⎡⎣⎢x(1)Tθ...x(m)Tθ⎤⎦⎥=⎡⎣⎢⎢hθ(x(1))...hθ(x(m))⎤⎦⎥⎥ y⃗ =⎡⎣⎢y(1)...y(m)⎤⎦⎥ ⇒Xθ−y=⎡⎣⎢h(x(1))−y(1)...h(x(m))−y(m)⎤⎦⎥ ⇒12(Xθ−y)T(Xθ−y)=12∑i=1m(h(xi−yi))2=J(θ) 为了求解最小值,可以通过极值来求解:
∇θJ(θ)=0⃗ ⇒∇θ12(Xθ−y)T(Xθ−y)=12[∇θtrθθTXTX−∇θtr.yTXθ−∇θyTXθ]=0⃗ ⇒∇θJ(θ)=XTXθ−XTy=o⃗ ⇒XTXθ=XTy⇒θ=(XTX)−1XTy