首页 > 其他分享 >正则化

正则化

时间:2023-12-11 21:23:35浏览次数:18  
标签:模型 正则 L2 L1 theta 范数

目录

什么是正则化

在机器学习中,一个核心问题是设计不仅在训练数据集上表现好,而且能在新输入上有好的泛化性,因此许多策略被显式地设计来减少测试误差,这些 策略统称为正则化。

因此,正则化被定义为对学习算法地修改-减少泛化误差而不是训练误差。也就是说,正则化的目的是防止模型过拟合,降低泛化误差,提高泛化能力。

正则化方法则是在模型参数上施加约束,添加惩罚项。假设模型的目标函数如下

\[\tilde{J}(\theta ; X, y)=J(\theta ; X, y)+\alpha \Omega(\theta) \]

这里α是超参数,用于控制正则化的力度,\(\Omega(θ)\)表示正则项。

什么是范数

将空间中两个点的距离这个概念给扩展一下就是范数。

  • L2范数

    如果权重w为一个高维的向量或高维空间中的一个点,这个点到原点的距离如果为欧式距离,则为L2范数。

  • L1范数

    而如果距离为曼哈顿距离,即对坐标值直接取绝对值,则为L1范数。

  • Lp范数

    当0<p<1时,得到的集合为非凸集;当p≥1时,得到的集合才是凸集

L1正则化

对目标函数施加L1正则化,则上述公式正则项表示为

\[\Omega(\theta)=\sum|\theta| \]

可以对深度模型按层进行L1正则化

L2正则化

对目标函数施加L2正则化,则公式中的正则项表示为

\[\Omega(\theta)=\sum \theta^2 \]

可以对深度模型按层进行L2正则化

其他正则化方法

  • 数据增强

  • early stopping

    在训练集上训练模型,周期性的在验证机上评价模型的效果,并保存效果最好的模型参数。返回具有最小验证机错误的模型参数

  • dropout

    在训练神经网络的过程中,以一定的概率使网络的神经元失效,输出0,以此来提升模型的效果。

标签:模型,正则,L2,L1,theta,范数
From: https://www.cnblogs.com/horolee/p/regularization.html

相关文章

  • nginx 正则
    坑点ginxlocation正则alias和try_files,存在排斥情况,不能一起使用,要使用root。案例如下#老版本门户前端location^~/assets{alias/usr/share/nginx/homepage_test/assets/;#老版本js、css文件}#nginxlocation正则alias和try_files,存在排斥情......
  • 正则化
    我们想让我们的模型拟合训练集的数据。有时,我们用线性来模拟一些复杂的数据,就会欠拟合(underfit),具有高偏差;这时候,我们可能就会采用一些非线性的模型拟合训练集,或许达到不错的效果;但有时,我们的模型太想拟合数据了,使得模型失去了泛化能力(泛化:能够对之前从未见过的全新示例也能给出......
  • java 正则表达式 用法
    在一个复杂的字符串中,使用正则表达式来取其中某个值importjava.util.regex.*;//正则表达式引用//复杂的字符串Stringinput="{\"pbxToken\":\"1ja930jsdlij912h94hk5l35poeweer\"}"+"{\"LS_CallStatus_Event_Type\":\"\",\"callId......
  • 探索正则可视化工具:让编程更直观、高效
    导语:在当今的编程世界中,正则表达式已成为不可或缺的技能。然而,理解和编写正则表达式往往是一项具有挑战性的任务。为了降低门槛,提高编程效率,正则可视化工具应运而生。一、正则表达式的简介与历史正则表达式(RegularExpression,简称:Regex)是一种强大的文本处理工具,其最早的雏形可......
  • c#利用正则表达式获取字符串中汉字的个数
    利用正则表达式获取字符串中汉字的个数stringstr=@"D:\文档\C#BASE\StringBuilder.md";Regexregex=newRegex("^[\u4e00-\u9fa5]{0,}$");intcount=0;for(inti=0;i<str.Length;i++){count=regex.IsMatch(str[i].ToString())?++......
  • 正则表达式与文本处理三剑客
    正则表达式使用方法通常为字符+次数+位置锚定1、字符匹配. 匹配任意单个字符,可以是一个汉字[] 匹配指定范围内的任意单个字符,示例:[wang][^] 匹配指定范围外的任意单个字符,示例:[^wang][0-9][a-z][a-zA-Z][:alnum:] 字母和数字[:alpha:] 代表任何英文大小写字......
  • 去除数字末尾0正则写法
    letnums=['12.00','12.001','12.100','12.350','12.45'];console.log('nums:',nums);nums.forEach(t=>{console.log('num:',trimZero(t))})functiontrimZero(num){/......
  • 动手写一个正则表达式引擎
    曾经有人开玩笑:当碰到棘手问题的时候,可以考虑使用正则表达式当考虑正则表达式的时候,又多了一个棘手的问题日常工作中,正则表达式是一个非常强大的工具,编写编译器/解释器的时候,正则表达式是必须的工具。自己动手写一个正则表达式,有利于使用者以正则表达式的方式思考,也是一个非常好......
  • 正则学习笔记
    正则学习笔记https://www.runoob.com/regexp/regexp-syntax.htmlhttps://blog.csdn.net/weixin_44579563/article/details/119424770(re.findall与分组_坑)https://blog.csdn.net/jiangshandaiyou/article/details/100823381例子捕捉组详解:https://blog.csdn.net/weixin_3......
  • Java登陆第十七天——正则表达式
    在java.util.regex包下,提供了正则表达式对字符串进行约束规范匹配正则表达式必须依靠Pattern类和Matcher类。PatternPattern类的主要作用是编写正则规范。常用方法如下:方法类型描述publicstaticPatterncompile(Stringregex)静态方法传入正则表达式规则,并返回......