l2正则化

在机器学习中,无论是分类还是回归,都可能存在由于特征过多而导致的过拟合问题。当然解决的办法有

 

  (1)减少特征,留取最重要的特征。

  (2)惩罚不重要的特征的权重。

 

但是通常情况下,我们不知道应该惩罚哪些特征的权重取值。通过正则化方法可以防止过拟合,提高泛化能力。

 

先来看看L2正则化方法。对于之前梯度下降讲到的损失函数来说,在代价函数后面加上一个正则化项,得到

 

    

 

注意是从1开始的。对其求偏导后得到

 

    

 

然后得到梯度下降的表达式如下

 

     

 

注意当0的时候,可以认为的值为0。可以看出没有正则化时,系数的权重为1,而现在明显

 

       

 

也就是说权值进行了衰减。那么为什么权值衰减就能防止overfitting呢 ?

 

首先,我们要知道一个法则-奥卡姆剃刀,用更少的东西做更多事。从某种意义上说,更小的权值就意味着模型的复杂度更低,对数据的拟合更好。接下来,引用知乎上的解释。

 

(1)当权值系数更大时,会过拟合。

 

    

 

(2)在PRML中,正则化就是通过对模型的参数设定一个先验来防止过拟合。

 

     

 

     试想一下,在上图中,如果不加正则化项,那么最优参数对应的等高线离中心点的距离可能会更近,加入正

     则化项后使得训练出的参数对应的等高线离中心点的距离不会太近,也不会太远。从而避免了过拟合。

转载于:https://www.cnblogs.com/awishfullyway/p/6065583.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机房收费系统的合作版

概述 机房收费系统的合作版自己负责的是B层和Facade层,在做这块的时候有很多的感触:动态SQL语句;设计模式;合作开发应该注意的点。其中动态SQL语句的理解已经在上一篇博客中写了,如果你有意向的话,可以看一…

ajax跨域,这应该是最全的解决方案了

From: https://segmentfault.com/a/1190000012469713 前言 从刚接触前端开发起,跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,16年时也整理过一篇相关文章,但是感觉还是差…

centos 7.0防火墙导致vagrant端口映射失败

在vagrant上部署了centos7.0后,Vagrantfile端口转发设置后,宿主机访问客户机站点还是无法访问,问题出在:centos7.0以上版本默认会安装firewalld防火墙, firewalld有区(zone)概念,默认在public区,public:指定外部链接可以进入 先查看下当前端口…

如何导入ShareSDK的sample

由于项目需要,最近需要做10几个平台的分享,如果自己去集成,浪费很多时间,而且还很难成功。最后发现Sharesdk,可以满足项目需求。 首先,需要到他们的官网http://sharesdk.cn/下载android版本的SDK。 然后玩了一下他们的…

Spring Boot配置跨域访问策略

From: https://blog.csdn.net/garyond/article/details/80192760 1. 引言 我们在开发过程中通常因为不同应用之间的接口调用或者应用之间接口集成时经常会遇到跨域问题, 导致无法正常获取接口数据,那么什么是跨域? 跨域的解决办法是什么&am…

SPOJ 220 Relevant Phrases of Annihilation(后缀数组+二分答案)

【题目链接】 http://www.spoj.pl/problems/PHRASES/ 【题目大意】 求在每个字符串中出现至少两次的最长的子串 【题解】 注意到这么几个关键点:最长,至少两次,每个字符串。   首先对于最长这个条件,我们可以想到二分答案&…

EF5.x Code First 一对多关联条件查询,Contains,Any,All

背景 通过多个部门id获取所有用户,部门和用户是多对多。 已知部门id,获取该部门包括该部门下的所有子部门的所有用户。 关系如下: public class Entity:IEntity{public Guid Id { get; set; }public string CreateUser { get; set; }public D…

Spring5:@Autowired注解、@Resource注解和@Service注解

From: https://www.cnblogs.com/szlbm/p/5512931.html 什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点: 1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如…

C#通过SSH连接MySql

出于安全考虑,有的时候数据库服务器只能通过SSH访问,比如MySql服务装在了服务器A上,并且A机器只允许B机器才能访问,而部署环境可能在C机器上,这时候就要C服务器通过B服务器连接A服务器,这时候就需要用到SSH…

CCNA实验(8) -- PPP HDLC

HDLC帧格式与以太帧格式有很大差别,HDLC帧没有源MAC和目的MAC地址。HDLC不能提供验证,缺少对链路保护。Cisco设备与Cisco设备连接,可用HDLC封装。Cisco设备与非Cisco设备连接,应使用PPP协议。PPP经过4个过程在点到点链路上建立连接…

Spring Boot实战:数据库操作

From: https://www.cnblogs.com/paddix/p/8178943.html 上篇文章中已经通过一个简单的HelloWorld程序讲解了Spring boot的基本原理和使用。本文主要讲解如何通过spring boot来访问数据库,本文会演示三种方式来访问数据库,第一种是JdbcTemplate&#xff0…

PDB调试Python程序

pdb是python内置的调试工具, 它可以在终端中调试Python程序, 这允许pdb在很多无法安装IDE的服务器上使用. 虽然远程调试使用广泛, 但在必要的时候(比如难以在本地搭建运行环境)pdb仍然是一个便利的选择. 我们可以在python源代码中设置断点: i…

不使用中间变量交换2个数据

2019独角兽企业重金招聘Python工程师标准>>> 第一种方法&#xff1a; <!-- lang: cpp -->aab;ba-b;aa-b;可能产生越界和溢出。 第二种方法&#xff1a; <!-- lang: cpp -->aa^b;ba^b;aa^b;这种方法只适用整形数。 写成宏的形式 <!-- lang: cpp -->…

slf4j的简单用法以及与log4j的区别

From: https://www.cnblogs.com/qlqwjy/p/9275415.html 之前在项目中用的日志记录器都是log4j的日志记录器&#xff0c;可是到了新公司发现都是slf4j&#xff0c;于是想着研究一下slf4j的用法。 注意:每次引入Logger的时候注意引入的jar包&#xff0c;因为有Logger的包太多了。…

PS不能存储,因为程序错误

当PS中遇到不能存储文件&#xff0c;因为程序错误时&#xff0c;可以这样&#xff1a; http://www.zcool.com.cn/article/ZMTgwOTQw.html 转载于:https://www.cnblogs.com/kjcy8/p/6072599.html

MEF相关总结

&#xff08;1&#xff09;蛮好的一篇文章&#xff1a;LoveJenny的MEF 打造的插件系统 一个简单单很能容易理解的例子讲解了MEF. &#xff08;2&#xff09;原理方面的看Bēniaǒ成长笔记的《MEF程序设计指南》博文汇总 &#xff08;3&#xff09;http://www.cnblogs.com/pszw/…

JdbcType类型和Java类型的对应关系

From: https://www.cnblogs.com/tongxuping/p/7134113.html 在Oracle中有些字段不是必填时在用户使用的时候会出现数据null的情况。这个时候在Oracle中是无法进行插入的。 1 JDBC Type Java Type 2 CHAR String 3 VARCHAR String 4 L…

MyBatis Generator配置文件翻译

From: https://www.cnblogs.com/GaiDynasty/p/4088531.html <classPathEntry> 驱动文件指定配置项 <classPathEntry location"/Program Files/IBM/SQLLIB/java/db2java.zip" /> <columnOverride> 将数据库中的字段重命名为实体类的属性 colu…

java实现计算字符串表达式

ScriptEngineManager manager new ScriptEngineManager(); ScriptEngine engine manager.getEngineByName("JavaScript");Object result engine.eval("12");转载于:https://www.cnblogs.com/highfly2012/p/6080374.html

Android:Application

1.Application是程序真正的入口&#xff0c;启动时会先执行Application再执行其他组件。2.建立自己的Application类&#xff0c;需要在xml里将application修改自己的application类&#xff1a;<applicationandroid:name"com.example.aexh_19_application.MyApplication…