网络编程
位置:首页>> 网络编程>> 网络编程>> 解读keras中的正则化(regularization)问题

解读keras中的正则化(regularization)问题

作者:Cold__Heart  发布时间:2023-08-13 12:28:45 

标签:keras,正则化,regularization

keras中正则化(regularization)

keras内置3种正则化方法

keras.regularizers.l1(lambda)
keras.regularizers.l2(lambda)
keras.regularizers.l1_l2(l1=lambda1, l2=lambda2)

目前我的理解是lambda越大,对参数的约束就越强,也就是惩罚力度越大。

其中L1正则化方法,是对|w|进行惩罚,使得w趋近0

而L2正则化方法,是对w2进行惩罚,使得w尽可能小

Dense,Conv1D,Conv2D,Conv3D有统一的正则化API,见keras中文文档。

3个正则化关键字

1. kernel_regularizer

对权值进行正则化,大多数情况下使用这个

2. bias_regularizer

限制bias的大小,使得输入和输出接近

3. activity_regularizer

对输出进行正则化,使得输出尽量小

keras中添加正则化

正则项

正则项在优化过程中层的参数或层的激活值添加惩罚项,这些惩罚项将与损失函数一起作为网络的最终优化目标

惩罚项基于层进行惩罚,目前惩罚项的接口与层有关,但Dense, Conv1D, Conv2D, Conv3D具有共同的接口。

这些层有三个关键字参数以施加正则项:

  • kernel_regularizer:施加在权重上的正则项,为keras.regularizer.Regularizer对象

  • bias_regularizer:施加在偏置向量上的正则项,为keras.regularizer.Regularizer对象

  • activity_regularizer:施加在输出上的正则项,为keras.regularizer.Regularizer对象

例子

from keras import regularizers
model.add(Dense(64, input_dim=64,
                kernel_regularizer=regularizers.l2(0.01),
                activity_regularizer=regularizers.l1(0.01)))

可用正则项

keras.regularizers.l1(0.)
keras.regularizers.l2(0.)
keras.regularizers.l1_l2(0.)

开发新的正则项

任何以权重矩阵作为输入并返回单个数值的函数均可以作为正则项,示例:

from keras import backend as K
 
def l1_reg(weight_matrix):
    return 0.01 * K.sum(K.abs(weight_matrix))
 
model.add(Dense(64, input_dim=64,
                kernel_regularizer=l1_reg)

可参考源代码keras/regularizer.py

来源:https://blog.csdn.net/Cold__Heart/article/details/102238029

0
投稿

猜你喜欢

  • 在今天的设计中,排版常常被忽视,特别是被网页设计师忽视。这真是件遗憾的事情因为CSS可以做很多事情来控制我们的排版。也就是说,我们被局限于某
  • 1.SYS用户具有DBA权限,并且拥有SYS模式,只能通过SYSDBA登陆数据库。是Oracle数据库中权限最高的帐号SYSTEM具有DBA
  • 这个函数是前几年刚流行小偷程序的时候,偶写来用于小偷程序中截取代码的;可能有些朋友在我以前的代码中看见过了,但没有写用法,现在把调用方法及使
  • 你是否对获得MySQL改变字符集的实际操作感到十分头疼?不用急,以下的文章将会给你正确的解答方案,以下的文章主要是介绍获得MySQL改变字符
  • MySQL Group By用法我们现在回到函数上。记得我们用 SUM 这个指令来算出所有的 Sales (营业额)吧!如果我们的需求变成是
  • 原理就是先声明常量,包括列数,行数,各列的属性,然后在程序的其它过程用这些常量来控制Cells。非常方便,便于修改和移植! 以下为窗体整体代
  •     对于个人站长来说,如何能使自己的网站与众不同、充满个性,一直是不懈努力的目标。除了尽量提高页面的视觉效
  • 只有mdf文件的数据库附加失败的修复 附加时报如下错误: 服务器: 消息 1813,级别 16,状态 2,行 1 未能打开新数据库 '
  • 任何数据库系统都无法避免崩溃的状况,即使你使用了Clustered,双机热备等等,仍然无法完全根除系统中的单点故障,何况对于大部分用户来说,
  • 一个什么都不懂的家伙非跟我要个sql查询器 随便写了一个,当然为了数据安全,要过滤掉一个sql关键词和系统中的一些表了 哦,对了,里面的一些
  • 阅读上一篇:FrontPage2002简明教程五:css样式表的应用 用户可以快速和容易地创建图片库,以显示图片或图像。他们可以将图像添加到
  • 1,CSS,JS,IMG一个都不能少运行代码框<style  type="text/css">&l
  • MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文主要介绍了show命令的主要用
  • 有时候想为我们的网页提供多语言支持,如果一种语言用一张网页来做实在太麻烦了,幸好Google提供了语言工具功能,下面介绍如何利用它来实现网页
  •  '************************************* '检测是否只包含英文和数
  • 这篇文章不谈大道理,只谈细节。关于facebook的大道理,大家可以去海内网的帖子《谁去救救麦田老师吧》讨论。那里有很多IT评论高手,谈的很
  • [原文地址] VS 2008 Performance Improvements[原文发表时间] Thursday, September 27
  • OL定义有序列表的时候,除非指定list-style-position:inside;,否则文字和前导符是有缩进的。但有的时候,OL定义的列
  • 常用配置以下配置能使用File -> New Projects Settings -> Settings for New Pro
  • 1.linux下启动mysql的命令:mysqladmin start/ect/init.d/mysql start (前面为mysql的安
手机版 网络编程 asp之家 www.aspxhome.com