什么是目标函数?
定义是:指所关心的目标与相关的因素的函数关系。举个例子,假如我们想要预测公司楼下手抓饼店明天能卖多少张手抓饼,已知过去10天每天卖多少,以及每天的天气情况,是否有节假日,和手抓饼店老板和老板娘的感情状况,这几项数据都统计好了。对应到目标函数的解释就是:
  1. 关心的目标是明天能卖多少手抓饼,未知量。
  2. 相关因素是每天数量,天气情况,节假日,老板老板娘感情状况,已知量。
  3. 目标函数:按照一定的思路把这些已知条件利用起来,去求解未知量的函数关系式。


损失函数
也叫代价函数,是同一个东西。是用来评估模型的预测值f(x)与真实值Y的差距,它是一个非负实值函数。稍等一下,为什么是非负的呢?举个例子:比如上面说的手抓饼,模型预测第一天是30,真实值是29,差距30-29是1;预测第二天是35,真实值是36,差距35-36是-1;如果把它们直接加起来就是1-1 = 0,难到没有差距?非常明显是错误的,差距是0人家还以为都预测对了呢,其实都预测错了,所以不能有负值,可以用绝对值,平方或者一些其它的数学运算。
常用的损失函数有:
  1. LR逻辑回归:log对数损失函数 参考:https://xiaozhuanlan.com/topic/7491865230
  2. 最小二乘法:平方损失函数 参考: https://xiaozhuanlan.com/topic/3129560874
  3. Adaboost:指数损失函数 (后面会专门介绍这个算法)


好的,现在我们再来看一下目标函数通常的定义形式:
Obj(Θ)=L(Θ)+Ω(Θ)
中文翻译一下是 :
目标函数 = 损失函数 + 正则项

目标函数和损失函数我们都理解了,那么正则项是干什么的呢?

正则化
回到我们前面举的那个例子,如果第五天有个人中彩票了然后兴奋的来买了1百张手抓饼,比几天的量都多,很明显这个情况会影响我们的模型训练,这个情况就是过拟合。而加入正则项的目的就是使模型避免过拟合。
常用的有L1,L2正则化,很熟悉对不对,前面讲过的线性代数中的L1,L2范数有些类似。其实本质是一样的,在机器学习里叫正则化,线性代数叫范数,统计学里叫惩罚项。
机器学习里:L1使用的是绝对值距离,也叫曼哈顿距离,L2使用的是平方距离,也叫做欧式(Euclidean)距离
线性代数:L1 范数计算的是向量所有元素绝对值的和,L2 范数计算的是通常意义上的向量长度 参考: https://xiaozhuanlan.com/topic/4961780352



总结:
介绍了目标函数,损失函数和正则项的作用,优化损失函数使模型避免欠拟合使损失函数最小化,优化正则项使模型避免过拟合。

什么是目标函数,损失函数?目标函数为什么要加正则项?的更多相关文章

  1. Java正则表达式API边界匹配

    这篇文章主要介绍了Java正则表达式API边界匹配,文章围绕主题展开相应的相关资料,具有一定的参考价值,需要的朋友可以参考一下

  2. PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析

    这篇文章主要介绍了PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法,结合具体实例形式分析了preg_replace()报错的原因与相关解决技巧,需要的朋友可以参考下

  3. PHP正则删除html代码中a标签并保留标签内容的方法 原创

    这篇文章主要介绍了PHP正则删除html代码中a标签并保留标签内容的方法,涉及php基于正则的字符串匹配与子表达式操作相关技巧,需要的朋友可以参考下

  4. php正则删除html代码中class样式属性的方法 原创

    这篇文章主要介绍了php正则删除html代码中class样式属性的方法,涉及php字符串正则匹配相关操作技巧,需要的朋友可以参考下

  5. PHP正则匹配到2个字符串之间的内容方法

    今天小编就为大家分享一篇PHP正则匹配到2个字符串之间的内容方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  6. IOS正则表达式之验证密码身份证手机号

    这篇文章主要介绍了IOS正则表达式之验证密码身份证手机号的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

  7. 正则表达式在js前端的15个使用场景梳理总结

    本篇带来15个正则使用场景,按需索取,收藏恒等于学会!!有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  8. 详解JavaScript高级正则表达式

    这篇文章主要为大家介绍了vue组件通信的几种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

  9. JS不用正则验证输入的字符串是否为空(包含空格)的实现代码

    下面小编就为大家带来一篇JS不用正则验证输入的字符串是否为空(包含空格)的实现代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. jQuery插件form-validation-engine正则表达式操作示例

    这篇文章主要介绍了jQuery插件form-validation-engine正则表达式操作,结合实例形式分析了jQuery插件form-validation-engine进行正则验证操作的相关技巧,需要的朋友可以参考下

随机推荐

  1. 法国电话号码的正则表达式

    我正在尝试实施一个正则表达式,允许我检查一个号码是否是一个有效的法国电话号码.一定是这样的:要么:这是我实施的但是错了……

  2. 正则表达式 – perl分裂奇怪的行为

    PSperl是5.18.0问题是量词*允许零空间,你必须使用,这意味着1或更多.请注意,F和O之间的空间正好为零.

  3. 正则表达式 – 正则表达式大于和小于

    我想匹配以下任何一个字符:或=或=.这个似乎不起作用:[/]试试这个:它匹配可选地后跟=,或者只是=自身.

  4. 如何使用正则表达式用空格替换字符之间的短划线

    我想用正则表达式替换出现在带空格的字母之间的短划线.例如,用abcd替换ab-cd以下匹配字符–字符序列,但也替换字符[即ab-cd导致d,而不是abcd,因为我希望]我如何适应以上只能取代–部分?

  5. 正则表达式 – /bb | [^ b] {2} /它是如何工作的?

    有人可以解释一下吗?我在t-shirt上看到了这个:它似乎在说:“成为或不成为”怎么样?我好像没找到’e’?

  6. 正则表达式 – 在Scala中验证电子邮件一行

    在我的代码中添加简单的电子邮件验证,我创建了以下函数:这将传递像bob@testmymail.com这样的电子邮件和bobtestmymail.com之类的失败邮件,但是带有空格字符的邮件会漏掉,就像bob@testmymail也会返回true.我可能在这里很傻……当我测试你的正则表达式并且它正在捕捉简单的电子邮件时,我检查了你的代码并看到你正在使用findFirstIn.我相信这是你的问题.findFirstIn将跳转所有空格,直到它匹配字符串中任何位置的某个序列.我相信在你的情况下,最好使用unapp

  7. 正则表达式对小字符串的暴力

    在测试小字符串时,使用正则表达式会带来性能上的好处,还是会强制它们更快?不会通过检查给定字符串的字符是否在指定范围内比使用正则表达式更快来强制它们吗?

  8. 正则表达式 – 为什么`stoutest`不是有效的正则表达式?

    isthedelimiter,thenthematch-only-onceruleof?PATTERN?

  9. 正则表达式 – 替换..与.在R

    我怎样才能替换..我尝试过类似的东西:但它并不像我希望的那样有效.尝试添加fixed=T.

  10. 正则表达式 – 如何在字符串中的特定位置添加字符?

    我正在使用记事本,并希望使用正则表达式替换在字符串中的特定位置插入一个字符.例如,在每行的第6位插入一个逗号是什么意思?如果要在第六个字符后添加字符,请使用搜索和更换从技术上讲,这将用MatchGroup1替换每行的前6个字符,后跟逗号.

返回
顶部