神經網絡基礎-神經網絡補充概念-34-正則化

概念

正則化是一種用于控制模型復雜度并防止過擬合的技術,在機器學習和深度學習中廣泛應用。它通過在損失函數中添加一項懲罰項來限制模型的參數,從而使模型更傾向于選擇簡單的參數配置。

理解

L1 正則化(L1 Regularization):也稱為 Lasso 正則化,它在損失函數中添加參數的絕對值之和作為懲罰項。L1 正則化傾向于使某些參數變為零,從而實現特征選擇和稀疏性。

L2 正則化(L2 Regularization):也稱為 Ridge 正則化,它在損失函數中添加參數的平方和作為懲罰項。L2 正則化對參數的影響相對較小,但可以有效控制參數的大小。

彈性網正則化(Elastic Net Regularization):是 L1 和 L2 正則化的結合,它綜合了兩者的優勢,同時可以應對特征相關性較高的情況。

正則化的數學形式通常表示為:

L1 正則化:Loss = 原始損失函數 + λ * ∑|θi|
L2 正則化:Loss = 原始損失函數 + λ * ∑θi^2

其中,λ 是正則化參數,用于調節正則化的強度,θi 是模型的參數。

在深度學習中,正則化方法通常通過在模型的層中添加正則化項來實現,例如在全連接層中添加 L1 或 L2 正則化。正則化可以幫助模型更好地泛化到未見過的數據,減少過擬合問題。

代碼實現

import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers, regularizers# 加載數據
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train = x_train.reshape(-1, 28 * 28).astype('float32') / 255.0
x_test = x_test.reshape(-1, 28 * 28).astype('float32') / 255.0
y_train = keras.utils.to_categorical(y_train, num_classes=10)
y_test = keras.utils.to_categorical(y_test, num_classes=10)# 構建帶 L2 正則化的神經網絡模型
model = keras.Sequential([layers.Input(shape=(784,)),  # 輸入層layers.Dense(128, activation='relu', kernel_regularizer=regularizers.l2(0.01)),  # 隱藏層,添加 L2 正則化layers.Dense(10, activation='softmax')  # 輸出層
])# 編譯模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])# 訓練模型
model.fit(x_train, y_train, batch_size=64, epochs=10, validation_split=0.1)# 評估模型
test_loss, test_accuracy = model.evaluate(x_test, y_test)
print("Test Loss:", test_loss)
print("Test Accuracy:", test_accuracy)

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

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

相關文章

數據分析 | Boosting與Bagging的區別

Boosting與Bagging的區別 Bagging思想專注于降低方差,操作起來較為簡單,而Boosting思想專注于降低整體偏差來降低泛化誤差,在模型效果方面的突出表現制霸整個弱分類器集成的領域。具體區別體現在如下五點: 弱評估器:Ba…

vb數控加工技術教學素材資源庫的設計和構建

摘 要 20世紀以來,社會生產力迅速發展,科學技術突飛猛進,人們進行信息交流的深度與廣度不斷增加,信息量急劇增長,傳統的信息處理與決策的手段已不能適應社會的需要,信息的重要性和信息處理問題的緊迫性空前提高了,面對著日益復雜和不斷發展,變化的社會環境,特別是企業…

Windows上使用dump文件調試

dump文件 dump文件記錄當前程序運行某一時刻的信息,包括內存,線程,線程棧,變量等等,相當于調試程序時運行到某個斷點上,把程序運行的信息記錄下來。可以通過Windbg打開dump,查看程序運行的變量…

mysql 修改存儲路徑,重啟失敗授權

目錄 停掉mysql修改mysql 配置文件my.cnf目錄授權重啟mysql 停掉mysql 修改mysql 配置文件my.cnf 更改mysql 存儲位置 到/data/mysql_data目錄下: datadir/data/mysql/mysql_data/socket/data/mysql/mysql_data/mysql.sockmysql 默認路么徑在 /var/lib/mysql/ 防止…

go_并發編程(1)

go并發編程 一、 并發介紹1,進程和線程2,并發和并行3,協程和線程4,goroutine 二、 Goroutine1,使用goroutine1)啟動單個goroutine2)啟動多個goroutine 2,goroutine與線程3&#xff0…

在 React 中獲取數據的6種方法

一、前言 數據獲取是任何 react 應用程序的核心方面。對于 React 開發人員來說,了解不同的數據獲取方法以及哪些用例最適合他們很重要。 但首先,讓我們了解 JavaScript Promises。 簡而言之,promise 是一個 JavaScript 對象,它將…

Python Web:Django、Flask和FastAPI框架對比

原文:百度安全驗證 Django、Flask和FastAPI是Python Web框架中的三個主要代表。這些框架都有著各自的優點和缺點,適合不同類型和規模的應用程序。 1. Django: Django是一個全功能的Web框架,它提供了很多內置的應用程序和工具&am…

排序+運算>直接運算的效率的原因分析

大家好,我是愛編程的喵喵。雙985碩士畢業,現擔任全棧工程師一職,熱衷于將數據思維應用到工作與生活中。從事機器學習以及相關的前后端開發工作。曾在阿里云、科大訊飛、CCF等比賽獲得多次Top名次。現為CSDN博客專家、人工智能領域優質創作者。喜歡通過博客創作的方式對所學的…

ADIS16470和ADIS16500從到手到讀出完整數據,附例程

由于保密原因,不能上傳我這邊的代碼,我所用的開發環境是IAR, 下邊轉載別的博主的文章,他用的是MDK 下文的博主給了你一個很好的思路,特此提出表揚 最下方是我做的一些手冊批注,方便大家了解這個東西 原文鏈…

如何利用 ChatGPT 進行自動數據清理和預處理

推薦:使用 NSDT場景編輯器助你快速搭建可二次編輯的3D應用場景 ChatGPT 已經成為一把可用于多種應用的瑞士軍刀,并且有大量的空間將 ChatGPT 集成到數據科學工作流程中。 如果您曾經在真實數據集上訓練過機器學習模型,您就會知道數據清理和預…

有沒有比讀寫鎖更快的鎖

在之前的文章中,我們介紹了讀寫鎖,學習完之后你應該已經知道了讀寫鎖允許多個線程同時訪問共享變量,適用于讀多寫少的場景。那么在讀多寫少的場景中還有沒有更快的技術方案呢?還真有,在Java1.8這個版本里提供了一種叫S…

Docker安裝Skywalking APM分布式追蹤系統

Skywalking是一個應用性能管理(APM)系統,具有服務器性能監測,應用程序間調用關系及性能監測等功能,Skywalking分為服務端、管理界面、以及嵌入到程序中的探針部分,由程序中的探針采集各類調用數據發送給服務端保存,在管…

novnc 和 vnc server 如何實現通信?原理?

參考:https://www.codenong.com/js0f3b351a156c/

隨機微分方程

應用隨機過程|第7章 隨機微分方程 見知乎:https://zhuanlan.zhihu.com/p/348366892?utm_sourceqq&utm_mediumsocial&utm_oi1315073218793488384

復習3-5天【80天學習完《深入理解計算機系統》】第七天

專注 效率 記憶 預習 筆記 復習 做題 歡迎觀看我的博客,如有問題交流,歡迎評論區留言,一定盡快回復!(大家可以去看我的專欄,是所有文章的目錄)   文章字體風格: 紅色文字表示&#…

Linux與bash(基礎內容一)

一、常見的linux命令: 1、文件: (1)常見的文件命令: (2)文件屬性: (3)修改文件屬性: 查看文件的屬性: ls -l 查看文件的屬性 ls …

神經網絡基礎-神經網絡補充概念-33-偏差與方差

概念 偏差(Bias): 偏差是模型預測值與實際值之間的差距,它反映了模型對訓練數據的擬合能力。高偏差意味著模型無法很好地擬合訓練數據,通常會導致欠擬合。欠擬合是指模型過于簡單,不能捕捉數據中的復雜模式…

基于java在線讀書與分享論壇設計與實現

摘 要 互聯系統的技術在如今的社會中,應用的越來越廣泛,通過互聯系統我們可以更方便地進行辦公,也能夠在系統上就能處理很多日常的事務。互聯系統的技術的發展,也是人們日常中接觸更多的一項技術。隨著互聯系統的發展,…

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 摘要當前的檢測sota模型網絡架構swin Transformer和Vision Transformer的不同之處整體架構Patch Partition結構Linear Embedding結構Swin Transformer Block結構 Patch MergingW-MSAMSA模塊計算量W-M…

學習Vue:Vue3 VS Vue2

Vue 3作為Vue.js的最新版本,帶來了一系列令人激動的新特性和改進,讓開發者們在構建現代Web應用時體驗更加順暢和高效。本文將全面介紹Vue 3相對于Vue 2的改進,重點解釋Composition API的使用,以及新引入的Teleport和Suspense等特性…