Py深度學習基礎|關于Batch Normalization

1. 為什么需要Batch Normalization

通常我們會在輸入層進行數據的標準化處理,這是為了讓模型學習到更好的特征。同樣,在模型的中間層我們也可以進行normalize。在神經網絡中, 數據分布對訓練會產生影響。?比如我們使用tanh作為激活函數,當輸入激活函數的值很大時,tanh輸出值接近飽和如下所示,這樣我們再增大x,輸出幾乎沒任何變化,可以理解為模型對數據不再敏感了。這種情況在隱藏層時有發生,因此需要Batch Normalization解決。

?2.?Batch Normalization層位置

?Batch Normalization (BN) 層被添加在每一個全連接和激活函數之間,如下:

3.?Batch Normalization作用的形象理解

計算結果值的分布對于激活函數很重要。比如還是tanh函數,對于數據值大多分布在中間這個區間的數據, 才能進行更有效的傳遞。?對比下圖這兩個在激活之前的值的分布。上者沒有進行 normalization, 下者進行了 normalization, 我們通過normalization將數據分布在tanh效果最好的區間內,這樣能夠更有效地利用 tanh 進行非線性化的過程

?接著,將這兩個分布的數據分別通過激活函數,觀察輸出分布如下圖所示。沒有 normalize 的數據使用 tanh 激活以后, 激活值大部分都分布到了飽和階段, 也就是大部分的激活值不是-1, 就是1, 而 normalize 以后, 大部分的激活值在每個分布區間都還有存在。再將這個激活后的分布傳遞到下一層神經網絡進行后續計算, 每個區間都有分布的這一種對于神經網絡就會更加有價值:

4. BN算法

我們引入batch normalization的公式。標準化工序就是我們在剛剛一直說的normalization, 但是公式的后面還有一個反向操作, 將 normalize 后的數據再擴展和平移。原來這是為了讓神經網絡自己去學著使用和修改這個擴展參數 gamma, 和 平移參數 β, 這樣神經網絡就能自己慢慢琢磨出前面的 normalization 操作到底有沒有起到優化的作用, 如果沒有起到作用, 我就使用 gamma 和 belt 來抵消一些 normalization 的操作。

?注:參考https://zhuanlan.zhihu.com/p/24810318

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

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

相關文章

Baidu Comate智能編碼助手:AI編程時代提升效率的好幫手

目錄 寫在前面一、如何安裝二、如何使用場景需求體驗步驟 三、AI 編程實戰指令功能插件功能知識庫功能 四、問題建議五、體驗總結🚀寫在最后 寫在前面 Baidu Comate 是基于文心大模型的 AI編程工具,它結合百度積累多年的編程現場大數據和外部優秀開源數據…

MySQL中的多表查詢

數據庫設計范式(范例) 好的數據庫設計,事倍功半,不會有歧義 第一范式:列保證原子性(列不可再分解) 聯系方式:電話,微信,QQ,郵箱 這些都不可分解 第二范式:要…

annaconda詳細解讀換源文件

annaconda換源詳細解讀文件 annaconda換源詳細解讀文件 annaconda換源詳細解讀文件 #踩坑/annaconda換源詳細解讀通道問題 如何準確使用國內源高效安裝GPU版本的Pytorch - 知乎 文件中的custom通道,需要自己手動添加到默認通道里面,記得后面更上/包名…

在xAnyLabeling中加載自己訓練的yolov8s-obb模型進行半自動化標注

任務思路: 先使用xAnyLabeling標注一部分樣本,訓練出v1版本的yolov8-obb模型,然后加載yolov8-obb模型到xAnyLabeling中對其余樣本進行半自動化標注。節省工作量。 任務流程: 1.準備xAnyLabeling標注工具 下載代碼,…

Redis系列-3 Redis緩存問題

1.緩存的作用 數據庫(如Mysql)的持久化特點帶來了較低的性能,高并發的場景下,連接池很快被耗盡而出現宕機或DOS,無法繼續對外提供服務。相對于數據庫的硬盤IO,緩存中間件基于內存進行讀寫,從而具備較大的吞吐量和高并…

SpringBoot:注解詳解

RequestMapping 注解在類上:表示該類中所有響應請求的方法都以此地址為父路徑 value(path) 指定請求的實際訪問地址,默認RequestMapping(“url”)的值url即為value的值。指定的地址可以是 URI Template 模式。 method 指定請求的method類型…

數據結構(四)——二叉樹和堆(下)

制作不易,三連支持一下唄!!! 文章目錄 前言一、二叉樹鏈式結構的實現總結 前言 這篇博客我們將來了解普通二叉樹的實現和應用,對大家之前分治和遞歸的理解有所挑戰。 一、二叉樹鏈式結構的實現 1.前置說明 在學習二叉…

Java入門——繼承和多態(上)

包 包是組織類的一種方式. 使用包的主要目的是保證類的唯一性. 例如, 你在代碼中寫了一個 Test 類. 然后你的舍友也可能寫一個 Test 類. 如果出現兩個同名的類, 就會沖突, 導致 代碼不能編譯通過. 導入包中的類 Java 中已經提供了很多現成的類供我們使用. 例如 public cla…

服裝店會員管理系統結合小程序商城幫你挖掘出潛在客戶

在現代社會,隨著科技的不斷進步和人們消費習慣的變化,傳統的服裝店已經不再能夠滿足消費者的需求。為了更好地服務客戶,提升銷售業績,許多服裝店開始引入會員管理系統,并結合小程序商城,實現線上線下的無縫…

LeetCode-2079. 給植物澆水【數組 模擬】

LeetCode-2079. 給植物澆水【數組 模擬】 題目描述:解題思路一:簡單的模擬題,初始化為0,考慮先不澆灌每一個植物解題思路二:初始化為n,考慮每一個植物需要澆灌解題思路三:0 題目描述&#xff1a…

在ubuntu安裝Docker容器

1、進入root用戶模式 sudo -i 回車后,輸入root的密碼即可進入root模式2、在ubuntu上安裝docker (1)直接使用 apt 安裝,一般這樣也自動啟動好了 apt install docker.io3、驗證安裝成功,以及啟動與校驗 (…

C++11:常用語法匯總

目錄 🍁統一的列表初始化 { }initializer_list 🍁decltype 推導表達式類型🍁可變參數模板解析可變參數包方法一方法二 🍁lambda 表達式捕捉列表的使用運用場景舉例lambda表達式 與 函數對象 🍁統一的列表初始化 { } 在…

STM32F407-驅動SHT41采集溫濕度

STM32F407-驅動SHT41采集溫濕度 SHT41 SHT41通過I2C方式進行驅動 從機地址: 0x44 獲取數據方式 1)先發送I2C寫,寫入特定指令 2)延時一段時間,等待SHT41處理 3)再進行I2C讀,讀數據即可 一些…

Ansible(二)

一、Playbook基礎 1.1 Playbook定義 Playbook其實是Ansible服務的一個配置文件,Ansible使用Playbook的YAML語言配置編寫成操作需求,實現對遠端主機或策略部署,實現對遠端主機的控制與管理。 1.2 Playbook組成 Tasks:任務&…

【Qt 學習筆記】Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout

博客主頁:Duck Bro 博客主頁系列專欄:Qt 專欄關注博主,后期持續更新系列文章如果有錯誤感謝請大家批評指出,及時修改感謝大家點贊👍收藏?評論? Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout 文章編號&#x…

skynet - spinlock 簡單的自旋鎖

spinlock.h 代碼位于: https://github.com/cloudwu/skynet/blob/master/skynet-src/spinlock.h 該文件內,根據不同環境提供了 3 種 api 實現: pthread_mutex_t 系列函數gcc 內置原子操作函數std atomic 系列函數 看了下,效率最…

滲透測試-信息收集

網絡安全信息收集是網絡安全領域中至關重要的一環,它涉及到對目標系統、網絡或應用進行全面而細致的信息搜集和分析。這一過程不僅有助于理解目標網絡的結構、配置和潛在的安全風險,還能為后續的滲透測試、風險評估和安全加固提供有力的支持。 在網絡安…

安卓開發--新建工程,新建虛擬手機,按鍵事件響應(含:Android中使用switch-case遇到case R.id.xxx報錯)

安卓開發--新建工程,新建虛擬手機,按鍵事件響應 1.前言2.運行一個工程2.1布局一個Button2.2 button一般點擊事件2.2 button屬性點擊事件2.2 button推薦點擊事件(含:Android中使用switch-case遇到case R.id.xxx報錯) 本…

MATLAB 多項式

MATLAB 多項式 MATLAB將多項式表示為行向量,其中包含按冪次降序排列的系數。例如,方程P(x) X 4 7 3 - 5 9可以表示為 p [1 7 0 -5 9]; 求值多項式 polyval函數用于求一個特定值的多項式。例如,在 x 4 時,計算我們之前的多項式…

HTTP URL 詳解

概述 URL 提供了一種定位因特網上任意資源的手段&#xff0c;大多數 URL 語法都由以下九個結構的通用格式組成&#xff1a; <scheme>://<user>:<password><host>:<port>/<path>;<params>?<query>#<frag> 方案&#…