我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

解读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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

这篇文章主要介绍了解读keras中的正则化(regularization)问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-15

如何解决php正则替换乱码的问题

今天小编给大家分享一下如何解决php正则替换乱码的问题的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、什么是PHP正则表达
2023-07-06

Python中常见的正则表达式问题及解决方法

Python中常见的正则表达式问题及解决方法正则表达式是一种强大的文本匹配工具,在Python中使用正则表达式可以高效地处理字符串操作。但是,由于正则表达式语法较为复杂,常常会遇到一些问题。本文将介绍一些常见的正则表达式问题,并提供相应的解
2023-10-22

JavaWeb中的路径问题解读

这篇文章主要介绍了JavaWeb中的路径问题解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-21

如何在Python中处理正则表达式的问题

如何在Python中处理正则表达式的问题,需要具体代码示例正则表达式是一种用于匹配和处理文本的强大工具。在Python中,可以使用内置的re模块来处理正则表达式。本文将介绍如何在Python中利用正则表达式进行文本处理,并提供具体的代码示例
2023-10-22

JavaScript RegExp 方法的常见问题解答:解决常见的正则表达式难题

JavaScript RegExp 方法的常见问题解答:克服常见的正则难题
JavaScript RegExp 方法的常见问题解答:解决常见的正则表达式难题
2024-03-09

如何分析.NET程序中的正则表达式性能问题

这篇文章将为大家详细讲解有关如何分析.NET程序中的正则表达式性能问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。之前在web程序中错误的使用了RegexOptions.Compiled
2023-06-17

解读Java中char类型相加的问题

这篇文章主要介绍了解读Java中char类型相加的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-23

oracle中读写blob字段的问题解析

这篇文章以程序实例说明通过JDBC操纵Oracle数据库LOB类型字段的几种情况
2022-11-15

Python中方法的缺省参数问题解读

这篇文章主要介绍了Python中方法的缺省参数问题解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-19

C++中编译优化问题的详解

C++中编译优化问题的详解编写高效的C++代码是每个程序员都追求的目标,而编译优化就是其中一个重要的方面。正确理解和应用编译优化可以极大地提高程序的性能和效率。本文将从C++编译优化的基本原理、常见的优化技术和具体的代码示例入手,详细解析C
2023-10-22

html5在android中的使用问题及技巧解读

1、特效按钮的进展 之前的思路:css设置div的样式,在js中实现div对事件的响应,并改变div的样式,以实现动画效果。 1:以动画的形式 代码如下: var bb = document.getElementById("element
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录