考虑下面的训练样本:
我们希望通过房屋面积和卧室数量估计房屋价格。
这在里,输入
x
是一个2维的向量。
并且我们用
首先我们假设
h(x)=∑i=0nθixi=θTx
我们期望通过 h(x) 输出的结果(即估计值),与样本的实际值尽可能的接近,即 h(x(i))−y(i) 的绝对值尽量小。因此引入代价函数:
J(θ)=12∑i=1m(hθ(x(i))−y(i))2
梯度下降算法
我们期望获得使得
J(θ)
尽可能小的
θ
。考虑梯度下降法:
θj:=θj−α∂∂θjJ(θ)
这里 α 是学习速率, θ 的初始值是随机的(当然也可以指定初值)。
下面让我们看上式中的求导部分,先考虑一个样本下的情况:
因此对于一个训练样本我们可以得到更新规则:
下面将其扩展到整个训练样本集。两种方法:
1、批梯度下降法,也就是对全部的训练数据针对某一特征上求得误差后再对
θ
进行更新,需要一次读取所有样本。:
2、增量梯度下降,每次只读取一个样本,依次用每个样本来更新,该方法有可能因为
α
的选取不当导致无法收敛: