本节为吴恩达教授机器学习课程学习第一部分:线性回归(1),包括:问题定义,最小均方算法,批梯度下降,随机梯度下降及其python实现。
给定一个映射函数
h
θ
(
x
)
h_{\theta}(x)
hθ(x),并令
x
0
=
1
x_0=1
x0=1,有:
其中,
x
1
(
i
)
x_1^{(i)}
x1(i)为训练集中第
i
i
i个样本的第一个影响因素,
θ
\theta
θ则包含了所有影响因素对应的权重/参量。另外,为了衡量该映射函数与真实标签
y
y
y的接近程度,定义如下代价函数:
1. 最小均方算法
为了选定
θ
\theta
θ来最小化
J
(
θ
)
J(\theta)
J(θ),引入梯度下降算法,它以
θ
\theta
θ某个特定的初值开始,不断对其根据下式迭代更新:
其中
α
\alpha
α为学习率,表示更新的幅度,为了更方便的实现梯度下降算法,需根据符合函数的链式求导法则对上式进行如下变形:
从而得到单个样本条件下参数
θ
\theta
θ的更新规则:
这个规则也成为最小均方法法则(LMS,least mean squares)。
上面更新规则是针对单个样本的条件,当训练集存在多个样本时,有两种方式来应对,方式一即批梯度下降算法:
批梯度下降算法在每次迭代中都会用到训练集中的每一个样本的信息,使得最终
θ
\theta
θ收敛到全局最优值,代价即庞大的运算量,python代码如下所示:
方式二即随机梯度下降算法:
该方式每次迭代只选用训练集中的一个样本对参数进行更新,可能无法收敛到全局最优解,但实践中,最优解附近的解大部分情况也是合理够用的,随机梯度下降算法python代码如下:
欢迎扫描二维码关注微信公众号 深度学习与数学 [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]