優化深度神經網絡

訓練集、開發集(驗證集)、測試集

偏差與方差

正則化

L2正則

Dropout

隨機丟棄部分神經元輸入,經常用于計算機視覺的神經網絡內,因為通常沒有足夠的訓練數據,很容易出現過擬合的問題

數據增強

訓練集規一化

可以使其圖像更均勻,梯度下降更容易收斂

梯度消失與梯度爆炸

梯度消失

  • 激活函數:如Sigmoid或Tanh,其導數在輸入較大或較小時會趨近于零,梯度在多層傳播中逐漸減小。

  • 網絡深度:層數越多,梯度經過多次連乘后變得更小。

梯度爆炸

  • 權重初始化不當,導致梯度在傳播中不斷放大。

  • 網絡深度增加,梯度連乘后變得過大。

參數初始化

He初始化與Xavier初始化

Mini-Batch梯度下降

在訓練集數據量較大時,每輪迭代只使用小部分數據進行訓練,大幅提高訓練速度

如何選擇batch大小

batch size太小會抖動嚴重,并且失去向量化帶來的加速優勢;太大則會每輪迭代成本很高

梯度下降算法的優化

Momentum 動量法傳播

指數加權平均(exponentially weighted averages)

可以看到指數加權平均展開之后就是每老一點的數據就多乘以一次一個接近一的系數,使得老的數據影響越來越小,近似的計算近一段時間的平均值,這樣相對直接取n填計算均值需要的內存更小。

如果單純以上面的公式進行計算,會發現由于?v_0=0?導致在初始化的幾天預測不準,大部分情況下只需要等待預熱期過去就好,但是如果你關注預熱期的準確度,可以每輪迭代增加一步v_t=\frac{v_t}{1-\beta ^t}進行計算,當t比較小時可以放大結果,當t比較大時則分母接近于0影響漸小

梯度下降結合指數加權平均

即針對偏導數結果進行指數加權平均,這樣在偏導數震蕩時可以減小震蕩幅度,而連續同朝向時則可以加速收斂

RMSprop 均方根傳播

區別于指數加權平均,這里使用梯度的平方進行指數加權,加速收斂

Adam 亞當優化算法

Adam算法結合了Momentum和RMSprop,增加了\varepsilon參數防止分母為0,并且對結果進行了誤差校正

超參的選擇

\varepsilon的對最終效果的影響很小,\beta _1\beta _2一般也使用固定值,分別為0.9和0.999,一般只需要對學習率\alpha進行調參

學習率衰減

可以減小在接近收斂時的震蕩,加快收斂速度

局部最優問題

因為深度學習中都是高維空間,在高維空間中幾乎不會出現真正的局部最優點(需要所有維度上都是局部最小值或局部最大值),因此這個不是問題。

實際經常會出現的是鞍點,鞍點是指部分維度為局部最大值而部分維度是局部最小值,還有更多的維度并不是局部最值(所有維度梯度均為0的概率也是極低的)。這種情況下Adam等算法都可以幫助加速逃離鞍點。

超參調參

隨機取點,從粗到細

正態隨機

指數隨機

有時候不能直接正態分布的隨機取點,比如對于學習率和指數加權平均系數等,可以結合指數隨機增加特定區域隨機出的概率

batch normalization 批歸一化

前面講過訓練集歸一化,還可以進一步對中間輸出進行歸一化,同時為了避免值只能在(0,1)之間,增加了\gamma\beta兩個可學習參數用于調整平均值

神經網絡訓練中應用歸一化

在計算z之后對z進行歸一化處理即可,β和γ均作為學習參數。通過歸一化可以減少網絡不同層的耦合,前一層網絡的變化始終將輸出保持一定范圍內,減少了對后面網絡層的影響。

由于歸一化過程中輸入會減掉平均值,所以在下面使用方式中z = wa+bb并沒有用

作用

推理時處理歸一化

由于實際推理時可能只有一個輸入,沒有平均值、方差等統計值,此時需要使用訓練時得到的統計值,比如使用每個batch計算得到的μ和\sigma的指數加權平均。

Softmax regression 多類分類問題

輸出層神經元個數與分類數量一致,各神經元輸出之和為1。softmax的命名是跟hardmax相對的,hardmax是指輸出中只有一個1,其他均為0。

損失函數

后向傳播

訓練框架TensorFlow

兩種實現方式

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

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

相關文章

【玩轉 Postman 接口測試與開發2_018】第14章:利用 Postman 初探 API 安全測試

《API Testing and Development with Postman》最新第二版封面 文章目錄 第十四章 API 安全測試1 OWASP API 安全清單1.1 相關背景1.2 OWASP API 安全清單1.3 認證與授權1.4 破防的對象級授權(Broken object-level authorization)1.5 破防的屬性級授權&a…

Spring @PropertySource:讓你的應用配置更加模塊化和可維護

PropertySource注解在Spring中的作用,就像是給Spring應用配了一個“外部配置箱”。 想象一下,你在開發一個Spring應用時,有很多配置信息需要設置,比如數據庫的連接信息、應用的某些功能開關等。如果這些信息都硬編碼在代碼中&…

RK3576——USB3.2 OTG無法識別到USB設備

問題:使用硬盤接入到OTG接口無熱插拔信息,接入DP顯示屏無法正常識別到顯示設備,但是能通過RKDdevTool工具燒錄系統。 問題分析:由于熱插拔功能實現是靠HUSB311芯片完成的,因此需要先確保HUSB311芯片驅動正常工作。 1. …

docker-compose 配置nginx

前言 前端打包的dist文件在宿主機,nginx運行在docker-compose 問題 nginx.conf 在本地配置可以生效,但是鏈接到容器就報錯 基于本地的nginx運行,本地nginx.conf 如下 server {listen 8081;location / {root /usr/local/software/testweb/…

基于SpringBoot+ Vue的家教管理系統

隨著互聯網技術的發展,信息化管理已經深入到各個行業中。在教育領域,家教管理系統的需求日益增長。傳統的手工管理方式在面對大量信息時,容易出現管理效率低下、數據錯誤率高、修改困難等問題。本文將介紹基于Spring Boot框架、MySQL數據庫開…

【數據結構】樹哈希

目錄 一、樹的同構1. 定義2. 具體理解(1) 結點對應(2) 孩子相同(3) 遞歸性質 3. 示例 二、樹哈希1.定義2.哈希過程(1)葉節點哈希(2)非葉節點哈希(3)組合哈希值 3.性質(1) 唯一性 \re…

使用DeepSeek的技巧筆記

來源:新年逼自己一把,學會使用DeepSeek R1_嗶哩嗶哩_bilibili 前言 對于DeepSeek而言,我們不再需要那么多的提示詞技巧,但還是要有兩個注意點:你需要理解大語言模型的工作原理與局限,這能幫助你更好的知道AI可完成任務…

【工具篇】ChatGPT:開啟人工智能新紀元

一、ChatGPT 是什么 最近,ChatGPT 可是火得一塌糊涂,不管是在科技圈、媒體界,還是咱們普通人的日常聊天里,都能聽到它的大名。好多人都在討論,這 ChatGPT 到底是個啥 “神器”,能讓大家這么著迷?今天咱就好好嘮嘮。 ChatGPT,全稱是 Chat Generative Pre-trained Trans…

【centOS】搭建公司內網git環境-GitLab 社區版(GitLab CE)

1. 安裝必要的依賴 以 CentOS 7 系統為例,安裝必要的依賴包: sudo yum install -y curl policycoreutils openssh-server openssh-clients postfix sudo systemctl start postfix sudo systemctl enable postfix2. 添加 GitLab 倉庫 curl -sS https:/…

$route 和 $router 的區別是什么?

在 Vue Router 中,$route 和 $router 是兩個不同的對象,它們各自承擔著不同的角色。下面是它們的主要區別: 一、$route 定義$route 是當前路由的信息對象,包含了與當前路由相關的狀態和參數。它是一個只讀對象。 2. 主要屬性 params:動態路由參數,例如 /user/:id 中的 …

node.js 08 express的使用和熱重載nodemon的安裝

一.express的安裝和使用 安裝 npm i express 使用 //引入express const express require(express)//啟動服務器 const app express()//設置get請求地址,獲取請求地址信息,和發送返回的數據 app.get(/bailan,(req, res) > {//req.query可以獲取到客…

Python因為網絡原因安裝依賴庫報錯

現象 在終端運行以下指令 pip install pyautogui pillow keyboard 出現報錯,終端信息如下: PS D:\code\Python> pip install pyautogui pillow keyboard Collecting pyautoguiUsing cached PyAutoGUI-0.9.54.tar.gz (61 kB)Installing build depe…

面試問題記錄1

問題一:性能測試步驟 性能測試步驟主要包括以下幾個階段: ?1. 需求分析階段? 明確測試目標,了解性能測試需求,包括業務列表、性能指標、測試環境、數據量等詳細需求?12。熟悉項目相關的資源,如架構設計、軟硬件環…

開源 GPU 集群管理器 GPUStack 輕松拉起deepseek各版本模型

GPUStack 是一個用于運行 AI 模型的開源 GPU 集群管理器。 項目地址:gpustack/gpustack: Manage GPU clusters for running AI modelshttps://github.com/gpustack/gpustackhttps://github.com/gpustack/gpustackhttps://github.com/gpustack/gpustackhttps://githu…

ESP32開發學習記錄---》GPIO

she 2025年2月5日,新年后決定開始充電提升自己,故作此記,以前沒有使用過IDF開發ESP32因此新年學習一下ESP32。 ESPIDF開發環境配置網上已經有很多的資料了,我就不再贅述,我這里只是對我的學習經歷的一些記錄。 首先學習一個…

3-kafka服務端之控制器

文章目錄 概述控制器的選舉與故障恢復控制器的選舉故障恢復 優雅關閉分區leader的選舉 概述 在Kafka集群中會有一個或多個broker,其中有一個broker會被選舉為控制器(Kafka Controler),它負責管理整個集群中所有分區和副本的狀態。…

物聯網的三層架構:感知層、網絡層與應用層

物聯網(Internet of Things, IoT)作為現代科技的重要組成部分,正在深刻改變我們的生活和工作方式。它將物理世界與數字世界無縫連接,通過智能設備、傳感器和網絡技術,實現數據的采集、傳輸和應用。物聯網的架構通常分為…

react的antd表單校驗,禁止輸入空格并觸發校驗提示

首先需要用到form組件&#xff0c;在form.item內添加rules屬性&#xff0c;寫正則表達式 <Form.Itemlabel"員工姓名"name"name"rules{[{ required: true, message: 員工姓名 },{ pattern: /^(?!\s*$).$/, message: 不能全是空格 },]}> <Input p…

JavaScript addEventListener事件列表

addEventListener 方法用于向指定元素添加事件監聽器&#xff0c;當該對象觸發指定的事件時&#xff0c;指定的回調函數就會被執行。以下是一些常見的事件類型 鼠標事件 click: 當用戶點擊某個對象時觸發。 dblclick: 當用戶雙擊某個對象時觸發。 contextmenu&#xff1a;當…

IDEA 中集成 Maven,配置環境、創建以及導入項目

目錄 在 IntelliJ IDEA 中集成 Maven 并配置環境 1. 打開 IDEA 設置 2. 定位 Maven 配置選項 3. 配置 Maven 路徑 4. 應用配置 創建 Maven 項目 1. 新建項目 2. 選擇項目類型 3. 配置項目信息 4. 確認 Maven 設置 5. 完成項目創建 導入 Maven 項目 1. 打開導入窗口…