欧几里得范数_从范数到正则化

范数是一个在数学领域中常用的工具,同时也是学习机器学习原理中经常碰到的概念。本文将从范数的定义出发,逐步带你理解其在机器学习中的应用。

首先需要明确的是,范数是一个函数,在机器学习中我们通常用它来衡量向量的大小。

范数定义为:

1.常见的范数

下面简要介绍一些常见的范数,到这一步暂且只需要记住它们的形式。

1.1

范数

当p = 2时,

范数也被称为欧几里得范数,表示从远点出发到向量
确定的点的欧几里得距离。这个范数在机器学习中应用的非常频繁,我们先记住它的简化表示:

1.2 平方

范数

顾名思义就是

范数的平方,好处就是它显然比
​范数容易计算,可以简单的通过点积
计算。

1.3

范数

有些情况下平方

范数不是很受欢迎,因为它在原点附近增长得十分缓慢。
有时候区分恰好是零和非零但值很小的元素是很重要的,这时候就可以使用各位置斜率相同
范数:

1.4

范数

范数也被称为最大范数,表示向量中具有最大幅值的元素的绝对值:

2.深度学习中的正则化

2.1偏差(bias)和方差(variance)

在介绍深度学习中的正则化之前,我们先要从机器学习的场景出发思考,是什么问题促使我们需要用正则化这个工具呢?​

偏差和方差通常可以用来判断模型拟合数据的情况,看下面这张图,

代表两种不同的样本点。

第一个坐标系中由于分类器接近于线性,拟合数据的能力比较差,表现出欠拟合,对应高偏差high bias;第三个坐标系对于训练数据过拟合,对应高方差high variance;而中间的坐标系则是恰到好处的,我们比较希望得到的泛化能力较强的模型。

e68790694aa9260a72897167cdcbed1d.png

因此:

  • if high bias:{更大的网络/更长的训练时长/(更合适的算法)}
  • if high variance:{更多的数据/正则化/(更合适的算法)}

我们可以将正则化理解为“对学习算法的修改——目的是为了减少泛化误差,以偏差的增加换取方差的减少,从而抑制过拟合。”

2.2正则化如何抑制过拟合

我们将目标函数定义为

,正则化后的目标函数为
,
。通常
只对权重
做正则化惩罚而不针对偏置项b,为了简单起见,我们假设没有偏置项:

是权衡正则化强度的超参。

2.2.1

正则化

范数正则化也被称为权重衰减,这时:

带入正则化后的目标函数

从上文1.2 平方

范数的介绍中得到
​,因此

与之对应的梯度为:

使用梯度下降更新权重,

为学习率:

即:

可以看出加入权重衰减后会引起学习规则的修改,在每步梯度更新之前都会先收缩权重向量——将权重向量前边乘上一个小于1的权重因子

,也就是说,正则化惩罚系数
升高会将权重
拉向0。可以从两个角度进一步理解一下这个操作:

a.在神经网络中,当一些权重趋近于0时,则可以理解为去掉了一些逻辑单元,简化后的网络虽然小但深度很大。从而将高方差的模型往高偏差的方向拉,直到获取一个恰到好处的模型。

59c0c8a80a170ae449cc543bfbabc746.png

b.假设神经网络每层的激活函数为

,正则化惩罚系数
,从而使得
从①③的
非线性状态区域进入②接近于线性状态的区域,导致每层几乎是线性的(线性函数叠加仍然为线性),起到抑制过拟合的效果。

a5266001649fcaa129bfc01949ef8698.png

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

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

相关文章

C++ 自定义调试信息的输出

自定义调试信息的输出调试信息的输出方法有很多种, 例如直接用printf, 或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进程则一般是使用syslog将调试信息输出到日志文件中等等...使用标准的方法打印调试信息有时候不是很…

IdentityServer4之持久化很顺手的事

前言原计划打算在春节期间多分享几篇技术文章的,但到最后一篇也没出,偷懒了吗?算是吧,过程是这样的:每次拿出电脑,在孩姥姥家的院子总有阳光沐浴,看不清屏幕,回屋又有点冷(在强行找理…

java获取下周一整周的日期_获取Java中日期范围内的所有星期五

我最近遇到了一个任务,我必须在一个日期范围内获得所有星期五.我写了一小段代码,很惊讶看到一些奇怪的行为.以下是我的代码:public class Friday {public static void main(String[]args){String start "01/01/2009";String end "12/09/2013"…

手写体识别代码_Python识别图片中的文字

一、前言不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制。或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存。但是当我们想用到里面的文字时&a…

递推与储存,是动态规划的关键

小智最近由于项目需要,经常要接触到一些规划类的问题。那今天就给大家讲一讲旅行商问题及其解法吧。旅行商问题,即TSP问题(Travelling Salesman Problem)。问题是,有一个旅行商人要拜访n个城市,每个城市只能…

SQL 标量值函数的调用

调用 MS SQL 标量值函数,应该在函数前面加上 "dbo.",否则会报 “不是可以识别的 内置函数名称”错误。例如 DECLARE WhichDB TINYINT; SELECT WhichDB dbo. user_GetWhichDB(1);--看看是哪个数据库的 另外,标量值函数就相当于…

dotnet core TargetFramework 解析顺序探索

dotnet core TargetFramework 解析顺序测试Intro现在 dotnet 的 TargetFramework 越来越多,抛开 .NET Framework 不谈,如果一个类库支持多个 TargetFramework 应用实际运行的时候会使用哪个版本的 API 呢,之前一直都是想当然的自以为是了&…

java递归单链表查找中间元素_《数据结构与算法——C语言描述》答案 3.11 查找单链表中的特定元素(递归)...

转载请注明出处:http://blog.csdn.net/xdz78#include #include //查找单链表中的特定元素,《数据结构与算法——c语言描述》 3.11 答案int count;//全局变量自动初始化为0int m;//需要查找的元素大小typedef struct student {int data;struct student *n…

python调用robotframework_robotframework+python接口自动化的点滴记录(2)

1.在循环体内,赋值语句的前后名称不能一样,否则在跑循环的第二次时就会报错:TypeError: not all arguments converted during string formatting这样写是错的:${设置计划接口_请求body} string format ${设置计划接口_请求body}…

这种感觉真爽

今天接到客户的修改需求,说了一大段话,然后我们开始讨论解决方案。最后自己来负责前台的修改。看了六七个小时的代码,最后修改了一行。达到了要求。想起了以前课文中学到的一句话:画一条线1美元,知道在哪里画这条线999…

大数据时代,掌握数据分析需要做到这几点

这些年来,随着进入大数据时代,各行各业均有一个词频频被提到,那就是数据分析。那么数据分析究竟是什么呢?数据分析就是指用适当的统计分析方法对收集来的大量数据进行处理分析,提取有用信息并形成结论,从而…

93.7%的程序员!竟然都不知道Redis为什么默认16个数据库?

背景在实际项目中redis常被应用于做缓存,分布式锁/消息队列等。但是在搭建配置好redis服务器后很多朋友应该会发现和有这样的疑问,为什么redis默认建立了16个数据库,16个数据库的由来redis是一个字典结构的存储服务器,一个redis实…

python tablewidget 颜色_QT中,QTableView鼠标移动到item上时该item所在行的背景颜色变成其他颜色,这要怎么实现...

展开全部//不解释,自己看。不保证完整,仅供思路参考#include #include "TableView.h"#include #include int main(int argc, char *argv[]){QApplication a(argc, argv);QStandardItemModel model;for ( int col 0; col {QList list;for ( in…

java8 垃圾 不同_【不同的Java垃圾回收器的比较】

现在已经是2014年了,但是对大多数开发人员而言有两件事情仍然是个谜——java垃圾回收以及异性(码农又被嘲笑了)。由于我对后者也不是特别了解,我想我还是试着说说前者吧,尤其是随着Java8的到来,这个领域也发生了许多重大的变化及提…

。。。第一次。。。

记得第一次给你发短信。。问你。。数据结构期末考试有没有范围啊。。没有告诉你。。那次只是给你发短信的借口。。记得第一次打电话给你。。问你。。那个。。什么什么。。的那道题。。你会做吗。。第一次在电话里听你的声音。。是那样的甜美。。记得第一次和安子。阿昆吃饭的时…

“一边熬夜一边求不要猝死”,90后养生朋克指南,条条扎心!

随着一批又一批的90后步入中年秃头、失眠、衰老...健康的压力如影如随是时候开始养生朋克了当代青年:养生朋克指南养生朋克一边作死一边自救的养生方式比如一边熬夜一边涂贵价护肤品用最贵的眼霜 熬最长的夜心理活动经常是:一边熬夜一边祈祷自己不要猝死…

EntityFramework Core查询数据基本本质

【导读】在EntityFramework Core中、当查询出数据后,是如何将数据映射给实体的呢?本节我们预先做个基本探讨,后续给出其底层原理本质前不久,我们在探索性能时,给出利用反射达到性能瓶颈时的方案即使用委托,…

pythonmt4通讯swot矩阵_swot分析矩阵范例(各部门)

优势(Strengths)S1.团队工作氛围和谐融洽,作风吃苦耐劳,积极主动、自我改进意识强S2.品质管控专业人才工作能力强、沟通能力强,执行力坚决S3.产品质量管控体制、流程健全,拥有质量监督管控权S4.产品检测、试验设备齐全&#xff0c…

2009从知到行知识管理培训公开课最后一期

由知识管理中心(Knowledge Management Center)举办的“从知到行:知识管理理论与实施”培训班第十六期将于2009年11月26-27日于北京举办,这也是KMC举办的2009年最后一期面向CKO、知识管理总监、经理和知识管理专员等知识管理实施人…

java socket 多次write_java NIO2异步socket的write事件与read事件的完成次数不一致是怎么回事...

引用来自“Black_JackQ”的评论异步的,client需多次read处理完数据。是这样做的,但是目前观察消息接受率只有70%左右,代码如下:socket.read(byteBuffer, null, new CompletionHandler() {Overridepublic void completed(Integer r…