为什么可以通过给目标函数增加一个正则项来防止其过拟合?(来使其更圆滑?)

(在实现MF矩阵分解算法的时候,也有给损失函数增加一个正则项:推荐系统之矩阵分解及其Python代码实现)

经常用来控制过拟合现象的一种技术是正则化(regularization)。

这种技术涉及到给误差函数增加一个惩罚项,使得系数不会达到很大的值。

这种惩罚项最简单的形式采用所有系数的平方和的形式。

误差函数的修改后的形式:

  (可以用解析的形式求出最小值)

其中,

系数 λ 控制了正则化项相对于平方和误差项的重要性。

像这样的技术在统计学的文献中被叫做收缩(shrinkage)方法,因为这种方法减小了系数的值。
二次正则项的一个特殊情况被称为山脊回归(ridge regression)(Hoerl and Kennard, 1970)。

在神经网络的情形中,这种方法被叫做权值衰减(weight decay)。

另外,避免过拟合的其他方法有:

1)early stopping;

 :记录到目前最好的值, 可以看loss,也可以看测评指标, 连续多少次迭代都没有超过这个最好值就可以停了。

  与增加一个正则项的方法有什么本质区别

  —— 增加一个正则项的方法:是避免参数过拟合(约束所有的参数不过拟合,但是参数组合以后的情况不可预料的。

  —— early stopping是从结果上看的,

2)增大数据集的规模;

正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay);

3)dropout(为了防止神经网络中出现的过拟合);

【Reference】

1、正则化为什么能防止过拟合

2、PRML

通过给目标函数增加一个正则项来防止其过拟合相关推荐

  1. [JS]请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。

    请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组. 刚开始复习js题还不太习惯 CSDN上看了一个帖子,说是牛客上的标答, ...

  2. Directx11教程(11) 增加一个debug宏

    现在我们在common.h中增加一个debug的宏,在每个d3d11函数后调用,如果d3d函数出错,它能够给出程序中错误的代码行数. common.h代码如下: #pragma once #inclu ...

  3. 如何为ccflow工作流引擎增加一个优先级PRI?

    为什么80%的码农都做不了架构师?>>>    如何为ccflow工作流引擎增加一个优先级PRI? 对于一条流程的优先级可分为 低,中,高三个级别,用这个状态来标示这条流程的紧急程度 ...

  4. [内部项目]i前端如何增加一个页面

    i 的前端如何增加一个新页面呢? 要改很多地方: (1)pathMap.js 路径:js/pathMap.js 说明:key表示url访问路径,value表示接口路径和js文件名称 (2)Header ...

  5. android gradle 给所有的buildFlavor 的versionName 增加一个后缀

    build里面有很多的productFlavors,我想要给所有的productFlavors 的versionName增加一个后缀比如:_20180323 怎么做?注意是所有的productFlav ...

  6. Kali Linux又增加一个顶级域名kali.download

    Kali Linux又增加一个顶级域名kali.download 现阶段,kali.download只提供软件包和镜像下载.大家可以把该域名作为备选软件源来使用.形式如下: deb  http://k ...

  7. 增加一列为主键 oracle,给oracle数据库增加一列做主键,增加一个sequence,数据库怎么获得主键。...

    ? 1 删除一张表 ? delete from T_DHK_SJ; 2 给表增加一类,并做主键 alter table T_DHK_SJ add (DHKBH number(20)); alter t ...

  8. 大数据量表中,增加一个NOT NULL的新列

    这次,发布清洗列表功能,需要对数据库进行升级.MailingList表加个IfCleaning字段,所有的t_User*表加个IfCleaned字段. 脚本如下 对所有的t_User表执行 alter ...

  9. android7.1增加一个开机自启动的bin应用遇到的权限问题

    android7.1增加一个开机自启动的bin应用遇到的权限问题 1.    增加开机自启动的bin应用 1.1  增加的源代码 新建external\study,编译生成study,编译方式有两种 ...

最新文章

  1. Google Brain团队最新视频介绍
  2. SqlConnection的open打开后没关闭的后果
  3. 如何让for循环中最后一次的输出和循环体的不一样
  4. 九章算法 | 骑士的最短路线-BFS
  5. c++清空一个txt文本_Linux下常用文本处理命令大全
  6. 5 PP配置-组织架构-定义生产管理员
  7. KinhDown 2.4.08最新稳定版 百度网盘不限速下载工具
  8. html中select只读显示
  9. CATransition(过渡)
  10. mysql 转字符串 blob_BLOB转换为字符串或图像/ PHP或SQL
  11. 汽车型号json数据
  12. 查询正在使用的用户(删除用户时)
  13. 4、SYN-RCVD
  14. Unity 艺术字体制作
  15. Python 的文件定位
  16. ocm认证年薪多少_华为“天才少年”张霁:本硕“双非”,凭啥斩获最高年薪201万...
  17. Linux之IFS间隔符、C编程、gdb调试
  18. 百度网盘提速加速方法
  19. Oracle 10g 32位 下载地址
  20. Rust GUI 编程漫谈:超越 Web 与原生 GUI

热门文章

  1. go语言打印日期_基于 Go 语言开发在线论坛(八):消息、视图及日期时间本地化...
  2. python进程socket通信_python3 进程间通信之socket.socketpair()
  3. 顺序执行命令需要哪个符号链接_18年MBA联考如何安排答题时间及顺序
  4. 第一台电子计算机于1846年诞生,全国2010年1月高等教育自学考试计算机与网络技术基础试题.doc...
  5. rman一致性备份oracle数据库可以在非归档模式下么,探索ORACLE之RMAN_03一致性备份...
  6. win10 mfc 连接mysql_win10下使用c语言连接mysql
  7. 有一个计算机在桌子上用英语怎么写,什么在桌子上的英文怎么写
  8. c# 链接mongDB集群实战开发2
  9. 组件服务-计算机-我的电脑出现红色向下箭头的解决办法
  10. log4j日志级别以及配置