吴恩达机器学习2——单变量线性回归
监督学习工作模式
训练集中同时给出了输入输出,即人为标注的“正确结果”喂给学习算法,得到一个函数h,h
可以根据输入的x得到一个y,因此h是x到y的一个映射。
一种可能的表达方式为:
hθ(x)=θ0+θ1x
因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。
x:特征/输入变量
上式中, θ为参数, θ 的变化才决定了输出结果,不同以往,这里的 x 被我们视作已知(不论是数据集还是预测时的输入),所以怎样解得 θ以更好地拟合数据,成了求解该问题的最终问题。
2.2代价函数(cost function)
损失函数(loss function):计算单个样本的误差
代价函数(cost function):计算整个训练集所有损失函数之和的平均值
为求解最小值,引入代价函数(cost function)的概念
问题转化为求解J(θ0,θ1)的最小值
系数1/2不影响结果,是为了在应用梯度下降时,平方的导数抵消1/2,便于计算。
假设θ0=0,得到的hθ(x)和J(θ1)如下
以此类推,θ≠0时
可以看出仍存在一点使J(θ0,θ1)最小.
2.5梯度下降(gradient descent)
梯度下降背后的思想是:开始时,我们随机选择一个参数组合(θ0,θ1,…θn)即起始点,计算代价函数,然后寻找下一个能使得代价函数下降最多的参数组合。不断迭代,直到找到一个局部最小值(local minimum),由于下降的情况只考虑当前参数组合周围的情况,所以无法确定当前的局部最小值是否就是全局最小值(global minimum),不同的初始参数组合,可能会产生不同的局部最小值。
批量梯度下降(batch gradient descent)算法的公式为:
公式中,学习率α决定了参数变化的速率即“走多少距离”,而偏导这部分决定了下降到方向即“下一步往哪里走”
实现梯度下降算法的微妙之处是,在这个表达式中,如果你要更新这个等式,你需要同时更新θ0和θ1,我的意思是在这个等式中,我们要这样像左边一样更新而不是右边,否则结果上会有出入,原因不做细究
2.6梯度下降直观理解
无论初始点是在左边还是右边,通过梯度下降法,θ1都会不断向局部最小值移动,直到收敛。
对于学习率α,需要选择一个合适的值才能使梯度下降法运行良好。
学习率不需要在运行梯度下降法时进行动态改变,随着斜率接近0,代价函数的变化幅度会越来越小,直至为0.
2.7线性回归中的梯度下降
这种梯度下降的算法称之为批量梯度下降算法,主要特点:
在梯度下降的每一步中,我们都用到了所有的训练样本
在梯度下降中,在计算微分求导项时,我们需要进行求和运算,需要对所有m个训练样本求和
线性回归只有一个全局最优解,所以函数一定可以收敛到全局最小值(α不可以过大),J函数被称为凸函数,线性回归函数求解最小值问题属于凸函数优化问题。