作者: Sam (甄峰) sam_code@hotmail.com
1:基础知识:
1.1:
假设函数:
一元线性回归(单变量线性回归)
通过训练,推导出假设函数。即: Training Set
通过Learning Algorithm,获取Hypothesis.
假设函数,x作为输入,
输出是预测值。
θ0 和θ1
:Parameters. 模型参数。 参数的改变,导致假设函数的变化,进而导致输入值的变化。
1.2: 损失函数(Loss
Function):
是定义在单个样本上的,算的是一个样本的误差。
1.3. 代价函数(Cost
Function):
是定义在整个训练集合(Training
Set)上的,是所有样本误差的平均。也就是损失函数的平均。
2. 代价函数(Cost
Function):
在现实例子中,数据会以点的形式提供,想要解决回归问题,就要将这些点拟合成一条直线,找到最优的θ0 和θ1 ,让这条直线能够最好的代表实际情况。
如果才算是最好的情况呢? 当然是取适合的θ0 和θ1 后,让所有假设函数计算出的值与真实值差距最小。这个差距值,即Cost
Function的结果。
Cost Function可以表示为:J(θ0 ,
θ1 )
机器学习中代价函数有很多,根据不同的问题,选用不同的代价函数,比如逻辑回归使用对数代价函数,分类问题使用交叉熵作为代价函数。
平方误差代价函数则很常用,因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。
2.1:平方误差代价函数:
为了使这个值不受个别极端数据影响而产生巨大波动,采用类似方差再取二分之一的方式来减小个别数据的影响。所以就产生了以下公式:
m: 样本个数。
在线性回归中,我们需要寻找合适的参数(θ0 和θ1),
而让输出值和真实值差距最小。 所以,我们要解决的是一个最小化问题。即求出代价函数的最小值。
2.2:二次代价函数数学涵义:
我们先简化一下,θ0 和θ1简化到一个变量θ1:
如果是两个单数:θ0 和θ1
我们需要求出代价函数的最小值。
3. 梯度下降法:
梯度下降法是一种寻找目标函数最小化的方法。不光用于线性回归上,还被广泛应用于机器学习的众多领域。
3.1:梯度:
梯度是衡量一个函数特性----稍微改变输入,输出的改变率。
也就是函数的斜率。也就是微积分中的导数。
3.2:步骤:
A. 给定θ0 ,
θ1初始值。
B. 不断改变θ0 ,
θ1,让J(θ0 ,
θ1 )不断变小。直到找到最小值或者局部最小值。
3.3:数学原理:
代价函数:为J(θ0 ,
θ1 ):
重复做以下动作,直到收敛。
其中: α为学习率。可以看做步长。
后面跟的其实是导数。
注意: θ0 ,
θ1要同步更新。
3.4:学习率:
学习率太大太小都不好。
梯度下降不一定能找到全局最优解,有可能是一个局部最优解。起始点不同时,可能到达的局部最小值也不同。
当损失函数是凸函数的时候,梯度下降法所求的解就是全局最优解。
线性回归代价函数是凸函数,无局部最优解,只有一个最优解。所以用梯度下降法很适合。