神經網絡基礎-神經網絡補充概念-37-其他正則化方法

概念

L1 正則化(Lasso Regularization):L1 正則化通過在損失函數中添加參數的絕對值之和作為懲罰項,促使部分參數變為零,實現特征選擇。適用于稀疏性特征選擇問題。

L2 正則化(Ridge Regularization):L2 正則化通過在損失函數中添加參數的平方和作為懲罰項,使得參數值保持較小。適用于減小參數大小,減輕參數之間的相關性。

彈性網絡正則化(Elastic Net Regularization):彈性網絡是 L1 正則化和 L2 正則化的結合,綜合了兩者的優勢。適用于同時進行特征選擇和參數限制。

數據增強(Data Augmentation):數據增強是通過對訓練數據進行隨機變換來擴展數據集,以提供更多的樣本。這有助于模型更好地泛化到不同的數據變化。

早停(Early Stopping):早停是一種簡單的正則化方法,它通過在訓練過程中監控驗證集上的性能,并在性能不再改善時停止訓練,從而避免模型過擬合訓練數據。

批標準化(Batch Normalization):批標準化是一種在每個小批次數據上進行標準化的技術,有助于穩定網絡的訓練,減少內部協變量偏移,也可以視為一種正則化方法。

權重衰減(Weight Decay):權重衰減是在損失函數中添加參數的權重平方和或權重絕對值之和,以限制參數的大小。

DropConnect:類似于 Dropout,DropConnect 隨機地將神經元與其輸入連接斷開,而不是將神經元的輸出置為零。

代碼實現

import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler# 加載數據
data = load_iris()
X = data.data
y = data.target# 數據預處理
scaler = StandardScaler()
X = scaler.fit_transform(X)
y = keras.utils.to_categorical(y, num_classes=3)# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 定義模型
def build_model(regularization=None):model = keras.Sequential([layers.Input(shape=(X_train.shape[1],)),layers.Dense(64, activation='relu', kernel_regularizer=regularization),layers.Dense(32, activation='relu', kernel_regularizer=regularization),layers.Dense(3, activation='softmax')])return model# L1 正則化
model_l1 = build_model(keras.regularizers.l1(0.01))
model_l1.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model_l1.fit(X_train, y_train, epochs=50, batch_size=8, validation_split=0.1)# L2 正則化
model_l2 = build_model(keras.regularizers.l2(0.01))
model_l2.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model_l2.fit(X_train, y_train, epochs=50, batch_size=8, validation_split=0.1)# 彈性網絡正則化
model_elastic = build_model(keras.regularizers.l1_l2(l1=0.01, l2=0.01))
model_elastic.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model_elastic.fit(X_train, y_train, epochs=50, batch_size=8, validation_split=0.1)# 早停(Early Stopping)
early_stopping = keras.callbacks.EarlyStopping(monitor='val_loss', patience=10, restore_best_weights=True)
model_early = build_model()
model_early.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model_early.fit(X_train, y_train, epochs=100, batch_size=8, validation_split=0.1, callbacks=[early_stopping])# 評估模型
print("L1 Regularization:")
model_l1.evaluate(X_test, y_test)print("L2 Regularization:")
model_l2.evaluate(X_test, y_test)print("Elastic Net Regularization:")
model_elastic.evaluate(X_test, y_test)print("Early Stopping:")
model_early.evaluate(X_test, y_test)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40336.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40336.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40336.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

conda常用命令及國內鏡像源

conda命令使用介紹 啟動conda source ~/.bashrc幫助目錄 conda create -h檢查conda版本 conda --version升級當前版本的conda conda update conda環境管理 列出所有的環境 conda info -e conda env list安裝一個不同版本的python新環境 conda create --name py27 pytho…

PHP FTP的相關函數及簡單使用示例

簡介 FTP是ARPANet的標準文件傳輸協議,該網絡就是現今Internet的前身。 PHP FTP函數是通過文件傳輸協議提供對文件服務器的客戶端訪問,FTP函數用于打開、登陸以及關閉連接,也用于上傳、下載、重命名、刪除以及獲取服務器上文件信息。 安裝 …

Ubuntu下mysql8開啟遠程連接

環境 mysql8ubuntu22.04 更改配置文件 vim /etc/mysql/mysql.conf.d/mysqld.conf找到 bind-address 127.0.0.1 mysqlx-bind-address 127.0.0.1 把這兩行注釋掉,保存退出即可 修改mysql配置 登錄mysql創建一個遠程連接賬戶,名字任意,密碼任意,用戶名…

前端高頻面試題 Day02

面試題 var 和 let const 的區別 var 是 ES5 及之前的語法,let const 是 ES6 語法var 和 let 是變量,可修改;const 是常量,不可修改var 有變量提升,let const 沒有var 沒有塊級作用域,let const 有 &…

JavaWeb-DAO設計模式

目錄 DAO設計模式 1.認識DAO 2.DAO各部分的詳解 3.DAO設計模式流程 DAO設計模式 1.認識DAO DAO(Data Acess Object 數據庫訪問對象)的主要功能是操作數據庫,所以DAO在標準開發架構中數據數據層,以下是標準開發的架構 客戶層:目前使用B/…

vue中style scoped屬性的作用

一、為什么要給style 節點加 scoped 屬性(vue) 1、作用:當style標簽里面有scoped屬性時,它的css只作用于當前組建的元素。在單頁面項目中可以使組件之間互不污染,實現模塊化(實現組件的私有化,不…

Ubuntu安裝mysql5.7

目錄 1. 更新系統軟件包2. 安裝MySQL 5.73. 啟動MySQL 服務4. 設置MySQL root 密碼5. 驗證MySQL 安裝6. 啟用遠程訪問7. 創建新用戶8. 為新用戶授予權限9. mysql命令 以Ubuntu 18.04系統為例,安裝MySQL 5.7。操作步驟如下: 1. 更新系統軟件包 sudo apt…

Openai中的tokens怎么估計

大規模語言模型(LLM)的出現給自然語言處理領域帶來了變革的可能性,Openai開放了chatgpt的API,方便了開發人員使用LLM的推理能力,注冊時贈送5美元的使用額度,有效期3個月。 如果想便捷的使用chatgpt的API&a…

介紹 TensorFlow 的基本概念和使用場景

TensorFlow 是一種開源的機器學習框架,由 Google 開發。它是用來構建和訓練機器學習模型的強大工具,支持很多種不同類型的機器學習算法,并使用數據流圖來表示計算過程。 TensorFlow 的核心是張量 (Tensor) 和計算圖 (Graph)。 張量 (Tensor)…

OpenCV之薄板樣條插值(ThinPlateSpline)

官方文檔&#xff1a;OpenCV: cv::ThinPlateSplineShapeTransformer Class Reference 使用方法&#xff1a; 頭文件&#xff1a;#include <opencv2/shape/shape_transformer.hpp> &#xff08;1&#xff09;點匹配 一般根據有多少個樣本&#xff08;或者點&#xff09;…

6.2 Spring Boot整合MyBatis

1、基于Spring BootMyBatis的學生信息系統的設計與實現案例 基于Spring BootMyBatis實現學生信息的新增、修改、刪除、查詢功能&#xff0c;并實現MySQL數據庫的操作。 MySQL數據庫創建學生表&#xff08;t_student&#xff09;&#xff0c;有主鍵、姓名、年齡、性別、出生日…

npm如何設置淘寶的鏡像源模式

1. 查看當前npm的下載源 npm config get registry2. 全局配置npm使用淘寶鏡像作為默認下載源 npm config set registry https://registry.npm.taobao.org --global3. 安裝依賴包 npm install <package-name> 添加到devDependencies字段中&#xff1a; npm install &l…

Jmeter 二次開發 函數助手 AES加解密

Jmeter 二次開發 函數助手 AES加解密 1. 環境準備2. 關鍵技術說明2.1 離線導包2.2 示例代碼 3. 代碼包4. 結果演示 1. 環境準備 IDE &#xff1a;IntelliJ IDEA 2021.1.1 x64JAVA環境 &#xff1a;jdk1.8.0_251離線導包&#xff1a;導入Jmeter安裝目錄下lib/ext下的ApacheJmet…

Java課題筆記~ SpringMVC的四種跳轉方式

默認的跳轉是請求轉發&#xff0c;直接跳轉到jsp頁面展示 還可以使用框架提供的關鍵字redirect&#xff0c;進行一個重定向操作&#xff0c;包括重定向頁面和重定向action&#xff0c;使用框架提供的關鍵字forward&#xff0c;進行服務器內部轉發操作&#xff0c;包括轉發頁面…

Martin_DHCP_V3.0 (DHCP自動化泛洪攻擊GUI)

Github>https://github.com/MartinxMax/Martin_DHCP_V3.0 首頁 Martin_DHCP_V3.0 自動化DHCP洪泛攻擊 Martin_DHCP_V3.0 使用方法 安裝三方庫 #python3 1.RunMe_Install_Packet.py 攻擊路由器 #python3 Martin_DHCP_Attack.py 填寫網卡 填寫攻擊次數 開始運行

《Go 語言第一課》課程學習筆記(二)

初窺門徑&#xff1a;一個 Go 程序的結構是怎樣的&#xff1f; 創建“hello&#xff0c;world”示例程序 在 Go 語言中編寫一個可以打印出“hello&#xff0c;world”的示例程序&#xff0c;我們只需要簡單兩步&#xff0c;一是創建文件夾&#xff0c;二是開始編寫和運行。通…

高光譜 | 礦物識別和分類標簽數據制作、農作物病蟲害數據分類、土壤有機質含量回歸與制圖、木材含水量評估和制圖

本課程提供一套基于Python編程工具的高光譜數據處理方法和應用案例。 本課程涵蓋高光譜遙感的基礎、方法和實踐。基礎篇以學員為中心&#xff0c;用通俗易懂的語言解釋高光譜的基本概念和理論&#xff0c;旨在幫助學員深入理解科學原理。方法篇結合Python編程工具&#xff0c;…

阿里云服務器部署RabbitMQ流程

阿里云百科分享使用阿里云服務器部署RabbitMQ流程&#xff0c;RabbitMQ是實現了高級消息隊列協議&#xff08;AMQP&#xff09;的開源消息代理軟件&#xff0c;用于在分布式系統中存儲轉發消息&#xff0c;有良好的易用性、擴展性和高可用性。本文介紹如何通過ECS實例部署Rabbi…

CentOS系統環境搭建(四)——Centos7安裝Java

centos系統環境搭建專欄&#x1f517;點擊跳轉 Centos7安裝Java 查看云端yum庫中目前支持安裝的jdk軟件包 yum search java|grep jdk選擇JDK版本&#xff0c;并安裝 yum install -y java-1.8.0-openjdk檢查是否安裝成功 java -version查看JDK的安裝目錄 find / -name jav…

【Java面試】redis雪崩、穿透和擊穿詳解

一 Redis雪崩、穿透和擊穿 1. Redis雪崩&#xff1a; Redis雪崩是指在某一時刻&#xff0c;緩存中大量的緩存數據同時失效或過期&#xff0c;導致大量的請求直接打到后端數據庫&#xff0c;導致數據庫負載劇增&#xff0c;引發性能問題甚至崩潰。這通常是因為緩存數據的過期時…