您的位置:首页 > 其它

linear regression

2016-03-01 00:22 190 查看
一个训练集合S 有M个训练样本(xi,yi)(x_{i},y_{i}),其中x为n维的变量。用一次线性假设:

hΘ(x)=Θ0+Θ1x1+...+Θnxn=ΘTxh_{\Theta }(x)=\Theta _{0}+\Theta _{1}x_{1}+...+\Theta _{n}x_{n}=\Theta ^{T}x

则对于整个训练集合,costfunction为:

J(Θ)=12∑i=1M(hΘ(x(i))−y(i))2J(\Theta )=\frac{1}{2}\sum_{i=1}^{M}(h_{\Theta }(x^{(i)})-y^{(i)})^{2}

如果M=1,也就是说只有一个训练样本,则J(Θ)J(\Theta )对Θj\Theta _{j}求偏导得出:

∂∂ΘjJ(Θ)=∂∂Θj12(hΘ(x)−y)2=(hΘ(x)−y)xj\frac{\partial }{\partial \Theta _{j}}J(\Theta )=\frac{\partial }{\partial \Theta _{j}}\frac{1}{2}(h_{\Theta }(x)-y)^{2}=(h_{\Theta }(x)-y)x_{j}

我们要最小化J(Θ)J(\Theta ),采用梯度下降法Θ\Theta 的更新方式为:

Θj:=Θj−α∂∂jJ(Θ)\Theta _{j}:=\Theta _{j}-\alpha \frac{\partial }{\partial j}J(\Theta )

其中α\alpha 为学习速度。如果M=1,则:

Θj:=Θj−α(yi−hΘ(xi))xij\Theta _{j}:=\Theta _{j}-\alpha(y^{i}-h_{\Theta }(x^{i}))x_{j}^{i}

如果M不等于1:

Θj:=Θj−α∑i=1m(yi−hΘ(xi))xij\Theta _{j}:=\Theta _{j}-\alpha\sum_{i=1}^{m}(y^{i}-h_{\Theta }(x^{i}))x_{j}^{i}

每次Θj\Theta _{j}的更新j从0到n+1全部更新之后才再计算J(Θ)J(\Theta ),然后再更新Θ\Theta。由于每次计算Θj\Theta _{j}都需要用到全部的训练样本,所以这种方式叫做batch gradient descent。还有一种方法是每次更新Θj\Theta _{j}只需用到一个训练样本,直到用完全部集合中的样本,再从第一个样本重新更新Θj\Theta _{j}来计算J(Θ)J(\Theta ),一直到J(Θ)J(\Theta )不再变化或者变化范围小于某个阈值(自己设定)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: