Keras教学(7):Keras的正则化Regularizers,看这一篇就够了

【写在前面】:大家好,我是【猪葛】
一个很看好AI前景的算法工程师
在接下来的系列博客里面我会持续更新Keras的教学内容(文末有大纲)
内容主要分为两部分
第一部分是Keras的基础知识
第二部分是使用Keras搭建FasterCNN、YOLO目标检测神经网络
代码复用性高
如果你也感兴趣,欢迎关注我的动态一起学习
学习建议:
有些内容一开始学起来有点蒙,对照着“学习目标”去学习即可
一步一个脚印,走到山顶再往下看一切风景就全明了了



本篇博客学习目标:1、掌握正则化的用法









文章目录

  • 一、正则化Regularizers
    • 1-1、正则化器的概念
    • 1-2、正则化器的使用
    • 1-3、可用的正则化
    • 1-4、定义新的正则化器

一、正则化Regularizers

1-1、正则化器的概念

正则化器允许在优化过程中对层的参数或层的激活情况进行惩罚。 网络优化的损失函数也包括这些惩罚项。

惩罚是以层为对象进行的。具体的 API 因层而异,但 Dense,Conv1D,Conv2D 和 Conv3D 这些层具有统一的 API。

正则化器开放 3 个关键字参数:

  • kernel_regularizer: keras.regularizers.Regularizer 的实例,不能传递名字字符串
  • bias_regularizer: keras.regularizers.Regularizer 的实例,不能传递名字字符串
  • activity_regularizer: keras.regularizers.Regularizer 的实例,不能传递名字字符串

1-2、正则化器的使用

正则化器的使用跟初始化器的使用方法一模一样,在这不赘述。欢迎点击:【Keras教学(6)】卷积神经网络的初始化,看这一篇就够了。自行查看。

唯一不一样的是,正则化使用的是正则化器,初始化使用的是初始化器。

1-3、可用的正则化

import tensorflow.keras as keras
keras.regularizers.l1(0.)  # L1范式正则
keras.regularizers.l2(0.)  # L2范式正则
keras.regularizers.l1_l2(l1=0.01, l2=0.01)  # L1范式,L2范式同时正则

1-4、定义新的正则化器

任何输入一个权重矩阵、返回一个损失贡献张量的函数,都可以用作正则化器,例如:

import tensorflow.keras as keras
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教学内容大纲,欢迎关注我的动态一起学习哟
Keras教学(7):Keras的正则化Regularizers,看这一篇就够了_第1张图片

你可能感兴趣的:(TF2.0.keras深度学习,深度学习,tensorflow,机器学习,神经网络,keras)