Quantcast
Channel: Sam的技术Blog
Viewing all articles
Browse latest Browse all 158

机器学习代价函数

$
0
0
作者: 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 和θ,让这条直线能够最好的代表实际情况。

如果才算是最好的情况呢? 当然是取适合的θ0 和θ后,让所有假设函数计算出的值与真实值差距最小。这个差距值,即Cost Function的结果。

Cost Function可以表示为:J(θ0 , θ)
机器学习中代价函数有很多,根据不同的问题,选用不同的代价函数,比如逻辑回归使用对数代价函数,分类问题使用交叉熵作为代价函数。 平方误差代价函数则很常用,因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。 

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 , θ)不断变小。直到找到最小值或者局部最小值。

3.3:数学原理:
代价函数:为J(θ0 , θ):

重复做以下动作,直到收敛。
\theta_i = \theta_i - \alpha\frac{\partial}{ \partial\theta_i}J(\theta)
其中: α为学习率。可以看做步长。
后面跟的其实是导数。
注意: θ0 , θ1要同步更新。

3.4:学习率:
学习率太大太小都不好。








梯度下降不一定能找到全局最优解,有可能是一个局部最优解。起始点不同时,可能到达的局部最小值也不同。

当损失函数是凸函数的时候,梯度下降法所求的解就是全局最优解。


 

线性回归代价函数是凸函数,无局部最优解,只有一个最优解。所以用梯度下降法很适合。





 

Viewing all articles
Browse latest Browse all 158

Trending Articles