异想天开

What's the true meaning of light, Could you tell me why

机器学习之目标函数

日期:2019-06-30 15:43:23
  
最后更新日期:2019-07-20 22:11:21
昨晚看交叉熵时,复习了一下机器学习目标函数这些概念。虽然之前第一次学习时,有过手动推导,再次总结推导时,总感觉少了支撑点。体会到这些知识,是学了又忘了,忘了又学的程度,归根一点,没有深刻理解背后的思想。目标函数也对应要优化的损失函数。

均方差损失
初中阶段,学习线性回归时, 老师会教你在一堆点中间,画一条直线表示这种趋势。这种方法,大概就是种下一颗种子,等待有缘人后萌芽。上了大学后,也还不知道有另外一种方法可以精确求解系数a,b。 如果只有两个样本,那么可以用方程组来完美解决。 aha, 可以这样,将数据集分为两组,然后分别用均值代替,求解两个方程解决。 机器学习求解线性回归问题,会定义MSE(mean square error)目标函数,为什么需要定义MSE目标函数? 这是因为这堆点出现在你面前,是概率选择的结果,概率大的情况更有可能出现,均方差正好等价误差正态分布下测量值的最大似然化。 得益于高斯在研究多次测量取平均值这个经验方法奏效的原理时,发现了正态分布。 于是乎:
$$
J(\theta) = - \sum_i ( y^* - f(x) )^2
$$
f(x)是x一次,线性回归的均方差误差函数,还是凸函数,可以用梯度下降方法求解。用线性回归解决问题,说明已经对业务规则和主要因素都摸得很清楚了,线性回归简洁性体现了她的优雅。第一个目标函数均方差已经介绍完毕。

对数损失
ctr(Click-Through-Rate)预估常用逻辑回归来建模。 假定事件发生的概率与事件不发生的概率对数比率为常数,那么这个分布就是逻辑斯蒂分布:
$$
h(x) = \frac {1} {1 + e^{-wx}}
$$
这个时候,我们依葫芦画瓢,用均方差误差,却发现均方差已经不是凸函数了。例如对于正例而言,用mathematica找到反例证明:

不是凸函数,那么不能用梯度下降方法来优化。
每一个样本描述的似然函数为:
$$
h(x)^{y^*} + (1 - h(x))^{(1-y^*)}
$$
这个时候,对根据条件概率,多个样本的最大似然函数,做一个数学化的处理,取一个对数操作。进行了对数化处理后,我们来观察目标函数负例的二阶导数,二阶导数为负,则为凸函数。
这么作图是不是不放心呢? 没关系纸笔演算一下,发现二阶导数是恒为负的。这里不做演示,同理正例也是凸函数。那么就得到了,我们的目标函数:
$$
J(w) = y^{*} In h(x) + (1-y^{*}) * In ( 1 - h(x))
$$

刚才无意中,解决了一个问题,针对分类问题,采用交叉熵作为目标函数,避免均方差作为目标函数时为非凸函数的尴尬。熵,这个词大家肯定会立马想到信息论大神香农。对于三分类问题,假设标签为(1,0,0),若有预测值两例(0.8,0.1,0.1)和(0.5, 0.5,0),那么那个预测更好一点?交叉熵可以计算预测的分布与真实分布的距离:
对于(0.8,0.1,0.1)而言,-1 * In0.8 - 0 * In 0.1 - 0 * In 0.1 = 0.22
对于(0.5, 0.5, 0) 而言, 这里跳坑了,工程中应该不会出现这种情况,假定不会出现为0的情况,数据稍加修改,(0.5, 0.499, 0.001):
-1 * In 0.5 - 0 * In 0.499 - 0 * In 0.001 = 0.69
成而用(0.8,0.1,0.1)去估计(1,0,0)是更好一些。 而解释上交叉熵是对最大似然函数取了log对数。


合页损失
假设用一个决策平面将数据集分类,在决策边界平面上点可以用wx + b = 0表示,我们希望数据集中的点与决策边界保持一定距离,对于正例距离大于1,wx + b >= 1, 对于负例,距离小于-1, wx + b <= -1。统一起来, 为 y * ( wx + b) >= 1。 定义 函数距离为:y * (wx + b), 这时使用合页函数为评价:
$$
y = 0 if x >=1 , else y = z
$$
对于正确区分的样本, 则loss为0, 否则存在一个不为0的loss。