網(wǎng)站首頁(yè) 編程語言 正文
keras中正則化(regularization)
keras內(nèi)置3種正則化方法
keras.regularizers.l1(lambda) keras.regularizers.l2(lambda) keras.regularizers.l1_l2(l1=lambda1, l2=lambda2)
目前我的理解是lambda越大,對(duì)參數(shù)的約束就越強(qiáng),也就是懲罰力度越大。
其中L1正則化方法,是對(duì)|w|進(jìn)行懲罰,使得w趨近0
而L2正則化方法,是對(duì)w2進(jìn)行懲罰,使得w盡可能小
Dense,Conv1D,Conv2D,Conv3D有統(tǒng)一的正則化API,見keras中文文檔。
3個(gè)正則化關(guān)鍵字
1. kernel_regularizer
對(duì)權(quán)值進(jìn)行正則化,大多數(shù)情況下使用這個(gè)
2. bias_regularizer
限制bias的大小,使得輸入和輸出接近
3. activity_regularizer
對(duì)輸出進(jìn)行正則化,使得輸出盡量小
keras中添加正則化
正則項(xiàng)
正則項(xiàng)在優(yōu)化過程中層的參數(shù)或?qū)拥募せ钪堤砑討土P項(xiàng),這些懲罰項(xiàng)將與損失函數(shù)一起作為網(wǎng)絡(luò)的最終優(yōu)化目標(biāo)
懲罰項(xiàng)基于層進(jìn)行懲罰,目前懲罰項(xiàng)的接口與層有關(guān),但Dense, Conv1D, Conv2D, Conv3D具有共同的接口。
這些層有三個(gè)關(guān)鍵字參數(shù)以施加正則項(xiàng):
-
kernel_regularizer
:施加在權(quán)重上的正則項(xiàng),為keras.regularizer.Regularizer對(duì)象 -
bias_regularizer
:施加在偏置向量上的正則項(xiàng),為keras.regularizer.Regularizer對(duì)象 -
activity_regularizer
:施加在輸出上的正則項(xiàng),為keras.regularizer.Regularizer對(duì)象
例子
from keras import regularizers model.add(Dense(64, input_dim=64, ? ? ? ? ? ? ? ? kernel_regularizer=regularizers.l2(0.01), ? ? ? ? ? ? ? ? activity_regularizer=regularizers.l1(0.01)))
可用正則項(xiàng)
keras.regularizers.l1(0.) keras.regularizers.l2(0.) keras.regularizers.l1_l2(0.)
開發(fā)新的正則項(xiàng)
任何以權(quán)重矩陣作為輸入并返回單個(gè)數(shù)值的函數(shù)均可以作為正則項(xiàng),示例:
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
總結(jié)
原文鏈接:https://blog.csdn.net/Cold__Heart/article/details/102238029
相關(guān)推薦
- 2023-06-18 C#?整數(shù)轉(zhuǎn)二進(jìn)制字符串方式_C#教程
- 2022-05-29 Docker容器下運(yùn)行Nginx并實(shí)現(xiàn)反向代理_docker
- 2022-11-17 C++中的函數(shù)返回值問題_C 語言
- 2022-06-13 正則化DropPath/drop_path用法示例(Python實(shí)現(xiàn))_python
- 2022-01-18 django中ajax發(fā)送post請(qǐng)求報(bào)403錯(cuò)誤csrf禁止,解決只需三步
- 2022-09-14 iOS開發(fā)多線程下全局變量賦值崩潰原理詳解_IOS
- 2022-05-22 Python數(shù)據(jù)結(jié)構(gòu)之隊(duì)列詳解_python
- 2022-09-07 詳解C語言結(jié)構(gòu)體,枚舉,聯(lián)合體的使用_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支