zoukankan      html  css  js  c++  java
  • 惩罚因子(penalty term)与损失函数(loss function)

    penalty term 和 loss function 看起来很相似,但其实二者完全不同。

    惩罚因子:

    penalty term的作用是把受限优化问题转化为非受限优化问题。

    比如我们要优化:

    min f(x) = $x^2 - 10x$  x 受限于 g(x) = x -3 <= 0

    我们可以利用惩罚因子,将上述问题转化为非受限约束问题,也就是拿掉g(x)的限制。

    函数变为:

    min P(x,s,r) = $x^2 - 10x + srphi(x - 3)$

    其中s = +1 或-1, r 是控制变量,单调增或减, $phi$是惩罚函数。

    如果我们令 s = 1, r = 1, $phi = x^2$,则:

    min P(x,s,r) = $x^2 - 10x + (x-3)^2$

    最终得到结果是错的,原因是r太小,如果我们将r = 100,最终就能得到对的结果。

    也就是说,在迭代优化过程中,r是单调变量,如果优化结果不满足约束条件,那么可调节r的值,继续迭代,直至满足为止。

    损失函数(loss function):

    损失函数是分类(或回归)过程中计算分类结果错误(损失)的函数。为了检验分类结果,只要使总损失函数最小即可。

    以0,1分类为例:

    如果我们把一个样本分类正确记为1,错误记为0,那么这就是最简单的0,1 loss function.

    如果记$l(y) = max(0,1 - ty)$,其中 t为预期结果,y为实际结果,那这就是hinge loss.

    其他常用的还有 logistic loss等。

    选择合适的损失函数是分类问题的关键之一,对于分类问题最好的是hinge loss. [1]

    参考:

    [1] Rosasco, Lorenzo, et al. "Are loss functions all the same?." Neural Computation 16.5 (2004): 1063-1076.

    [2] http://web.engr.oregonstate.edu/~paasch/classes/me517/week7/penalty.html

    [3] https://en.wikipedia.org/wiki/Hinge_loss

  • 相关阅读:
    查看tls指纹
    并行流
    方法引入2
    方法引入
    Optional.ofNullable
    stream.filter
    stream.skip limit
    反射
    Optional orElseGet
    nginx 预压缩(gzip)
  • 原文地址:https://www.cnblogs.com/zqiguoshang/p/6137841.html
Copyright © 2011-2022 走看看