二、机器学习入门

h_{\theta }(x)=\theta _{0}+\theta _{1}x

 一、线性回归模型描述


常用变量含义:
m:训练样本的数量
x's:代表输入变量或者说特征
y's:输出变量
(x,y):表示一个样本


h(hypothesis):假设函数,h(x)=y。当我们设计一个学习算法的时候,需要考虑怎么表示这个假设函数h,在线性回归算法中,我们通常使用如下的假设函数:​​​​​​h_{\theta }(x)=\theta _{0}+\theta _{1}x,有时会简写为h(x)。从函数中可以看出假设函数h为一个线性函数。线性函数的模型最简单,这个函数处理的是一个回归问题,只有单个变量x,所以又叫做一元线性回归函数或单变量回归函数。

二、代价函数


 1、问题:

M代表了训练样本的数量,比如M=47。假设函数为:h_{\theta }(x)=\theta _{0}+\theta _{1}x,其中,θ0和θ1是假设函数的两个参数,我们要做的,就是确定这两个参数的值。不同的参数会得到不同的假设函数h(x),如下图:

 2、目的:得出θ0和θ1这两个参数的最优值,让假设函数表示的直线尽量地与数据点很好的拟合。

 


3、标准化


标准化定义:在线性回归中,我们要解决的是一个最小化问题。我们需要预测值h(x)与真实值y之间的差异尽可能的小,也就是尽量减少假设的输出与真实值之间差的平方。公式如下:\frac{1}{2m} \sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})^{2},其中 h_{\theta }(x^{(i)})=\theta _0+\theta_1*x^{(i)},则J(\theta_0, \theta_1 )叫做代价函数,也被称为平方误差函数,有时也被叫做平方误差代价函数。


 

 

 三、梯度下降

(一)梯度下降算法思路

1、给定\theta _0\theta _1的初始值,通常设置为0。

2、不停的改变\theta _0\theta _1的值,来使J(\theta_0, \theta_1 )变小,直到我们找到J的最小值或者局部最小值。

梯度下降算法存在多个局部最优解,并且容易陷入某一个局部最优解之中。

 

 (二)梯度下降算法定义

重复此步骤,直到函数收敛:{ \theta _{j}:=\theta _{j}-\alpha \frac{\partial }{\partial \theta _{j}}J(\theta_{0}, \theta_{1}),for( j = 0 and j = 1) }

更新过程:

temp0 := \theta_{0} - \alpha \frac{\partial }{\partial \theta_{0}}J(\theta_{0}, \theta_{1})

temp1 := \theta_{1} - \alpha \frac{\partial }{\partial \theta_{1}}J(\theta_{0}, \theta_{1})

\theta _{0} := temp0

\theta _{1} := temp1

其中符号 := 表示赋值,α被称为学习率,α用来控制的梯度下降时的步长,α的大小跟步长成正比。

需要注意的是, \theta _0\theta _1是同步更新的,不能用下面的方法:

temp0 := \theta_{0} - \alpha \frac{\partial }{\partial \theta_{0}}J(\theta_{0}, \theta_{1})

\theta _{0} := temp0

temp1 := \theta_{1} - \alpha \frac{\partial }{\partial \theta_{1}}J(\theta_{0}, \theta_{1})

\theta _{1} := temp1

如果用这种方法,计算\theta _1的时候\theta _0已经改变了。

(三)、演算梯度下降算法几何展示

假设J(\theta )只有一个参数,那么上述公式可以简化为\theta_0:=\theta_0-\alpha\frac{d}{d \theta_0}J(\theta_0),因为是一个参数即函数只有一个自变量,所以偏导数变为了导数。

根据导数的几何意义可知:\frac{d}{d \theta_0}J(\theta_0)为点( \theta_0,J(\theta_0))处的切线斜率,当函数J在点( \theta_0,J(\theta_0))处单调增时,导数为正,\theta _0减去一个正数数值变小,则由单调性可知J值变小,同理如果在点处单调减,则导数为负数,\theta _0减去一个负数相当于加上一个正数,\theta _0变大,则J值还是变小。

 (四)、α的取值

1、如果α取值太小,那么每次的步长就会很小,函数收敛速度就会很慢。

 2、如果α取值太大,那么每次的步长就会很大,当接近最低点的时候,可能因为步长过大而越过最低点,会导致函数无法收敛甚至发散。

四、线性回归算法

假设函数:h_{\theta }(x^{(i)})=\theta _0+\theta_1*x^{(i)}

 代价函数:J(\theta_0, \theta_1 )=\frac{1}{2m} \sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})^{2}

将两个函数带入梯度下降算法中得到:

 temp0:=\theta _0-\alpha \frac{\partial }{\partial \theta _0}J(\theta _0,\theta_1)=\theta _0-\alpha \frac{\partial (\frac{1}{2m}\sum_{i=1}^{m}(h_\theta (x^{(i)})-y^{(i)})^{2})}{\partial \theta _0}=\theta _0-\alpha \frac{\partial (\frac{1}{2m}\sum_{i=1}^{m}(\theta_0 + \theta_1 * (x^{(i)})-y^{(i)})^{2})}{\partial \theta _0}=\theta_0-\frac{\alpha}{m}\sum_{i=1}^{m}(\theta_0 + \theta_1 * (x^{(i)})-y^{(i)})^{2})

temp1:=\theta _1-\alpha \frac{\partial }{\partial \theta _1}J(\theta _0,\theta_1)=\theta _1-\alpha \frac{\partial (\frac{1}{2m}\sum_{i=1}^{m}(h_\theta (x^{(i)})-y^{(i)})^{2})}{\partial \theta _1}=\theta _1-\alpha \frac{\partial (\frac{1}{2m}\sum_{i=1}^{m}(\theta_0 + \theta_1 * (x^{(i)})-y^{(i)})^{2})}{\partial \theta _1}=\theta_1-\frac{\alpha}{m}\sum_{i=1}^{m}(\theta_0 + \theta_1 * (x^{(i)})-y^{(i)})^{2})

\theta _0 := temp0

\theta _1 := temp1

重复以上步骤,直到函数收敛,这就是线性回归的梯度下降算法。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值