十一城

跬步千里,小流江海。

Home Linux ML Python Java Thoughts KmKg BookCan Links About

2018-02-14
机器学习-什锦-机器学习中的函数

• 分类: ml • 标签:

目标函数

如果有人说他们在用一种机器学习算法,那么只要问两个问题就能大致了解这种算法的价值:

  1. 目标函数是什么?
  2. 怎样将误差最小化?

一种方法是构建一个算法框架,通过与输入值相乘来预测输入的性质。不同的输出/预测结果是输入值与算法的乘积。

初始的预测通常错误较大,如果您有和输入值相关的实际基准标签,就可以将预测结果与基准标签进行对比,衡量误差的大小,然后依据误差来调整算法。如神经网络,它们会不断衡量误差、调整自身的参数,直至误差无法继续缩小。

目标函数一般出现最优化问题公式的第一行上,即他是我们对问题的一个抽象的数学表达,是优化的目标。一般包括经验风险结构风险。经验风险是为了是学习算法匹配测试样本,结构风险(范数)是为了防止过拟合。

经验风险

为了是学习算法匹配测试样本,一般用损失函数做此项。

损失函数

当我们通过以往的数据得到模型后,然后将数据输入这个模型得到的值与真实值之间会产生误差,我们求解误差总和的过程就是代价函数。损失函数、代价函数、成本函数cost function、误差函数基本是一个概念。

Surrogate-Loss-Function

  • 零一损失函数 $l(y,\hat{y})=\sum_{i=1}^m\chi(y_i\neq\hat{y_i})$——因为零一是不连续的,所以需要代理
  • 代理损失函数 surrogate loss function
    • 方差代价函数(Mean Squared Error)
      • 回归问题
      • 明显可以看出浅蓝色不是好的代理,所以优化MSE并不能优化模型的准确度
    • 交叉熵代价函数 cost function
      • binary_crossentropy 二分类——也叫做Logistc loss function
      • crossentropy 多分类
    • Hinge loss

结构风险

为了防止过拟合,最简单的是使用正则化中的范数,如L1、L2来表示。

参考

  1. https://www.zhihu.com/question/52398145
  2. http://sofasofa.io/forum_main_post.php?postid=1000605

dzzxjl

Home Linux ML Python Java Thoughts KmKg BookCan Links About