1. 程式人生 > >深度學習Deep Learning(04):權重初始化問題2_ReLu激勵函式

深度學習Deep Learning(04):權重初始化問題2_ReLu激勵函式

三、權重初始化問題2_ReLu激勵函式

1、說明

2、ReLu/PReLu激勵函式

  • 目前ReLu啟用函式使用比較多,而上面一篇論文沒有討論,如果還是使用同樣初始化權重的方法(Xavier初始化)會有問題
  • PReLu函式定義如下:
    • 這裡寫圖片描述
    • 等價於:$$f({y_i}) = \max (0,{y_i}) + {a_i}\min (0,{y_i})$$
  • ReLu(左)和PReLu(右)啟用函式影象
    ![enter description here][23]

3、前向傳播推導

  • 符號說明
    • ε……………………………………目標函式
    • μ……………………………………動量
    • α……………………………………學習率
    • f()………………………………激勵函式
    • l……………………………………當前層
    • L……………………………………神經網路總層數
    • k……………………………………過濾器filter
      的大小
    • c……………………………………輸入通道個數
    • x……………………………………k^2c*1的向量
    • d……………………………………過濾器filter的個數
    • b……………………………………偏置向量
  • $${y_l} = {W_l}{{\rm{x}}_l} + {b_l}$$……………………………………………………..(1)
    • $${{\rm{x}}_l} = f({y_{l - 1}})$$
    • $${{\rm{c}}_l} = {d_{l - 1}}$$
  • 根據式(1)得:
    $$Var[{y_l}] = {n_l}Var[{w_l}{x_l}]$$…………………………………………..(2)
  • 因為初始化權重w均值為0,所以期望$$E({w_l}) = 0$$方差$$Var[{w_l}] = E(w_l^2) - {E^2}({w_l}) = E(w_l^2)$$
  • 根據式(2)繼續推導:
    這裡寫圖片描述……………………………………..(3)
    • 對於x來說:$$Var[{x_l}] \ne E[x_l^2]$$,除非x的均值也是0,
    • 對於ReLu函式來說:$${x_l} = \max (0,{y_{l - 1}})$$,所以不可能均值為0
  • w滿足對稱區間的分佈,並且偏置$${b_{l - 1}} = 0$$,所以$${y_{l - 1}}$$也滿足對稱區間的分佈,所以:
    這裡寫圖片描述……………………………………(4)
  • 將上式(4)代入(3)中得:
    $$Var[{y_l}] = {1 \over 2}{n_l}Var[{w_l}]Var[{y_{l - 1}}]$$……………………………………………….(5)
  • 所以對於L層:
    $$Var[{y_L}] = Var[{y_1}]\prod\limits_{l = 2}^L {{1 \over 2}{n_l}Var[{w_l}]} $$……………………………………………………………(6)
    • 從上式可以看出,因為累乘的存在,若是$${1 \over 2}{n_l}Var[{w_l}] < 1$$,每次累乘都會使方差縮小,若是大於1,每次會使方差當大。
    • 所以我們希望:
      $${1 \over 2}{n_l}Var[{w_l}] = 1$$
  • 所以初始化方法為:是w滿足均值為0標準差$$\sqrt {{2 \over {{n_l}}}} $$高斯分佈,同時偏置初始化為0

4、反向傳播推導

  • $$\Delta {{\rm{x}}_l} = \widehat {{W_l}}\Delta {y_l}$$…………………………………………….(7)
    • 假設$$\widehat {{W_l}}$$$$\Delta {y_l}$$相互獨立的
    • $$\widehat {{W_l}}$$初始化Wie對稱區間的分佈時,可以得到:$$\Delta {{\rm{x}}_l}$$均值為0
    • △x,△y都表示梯度,即:
      $$\Delta {\rm{x}} = {{\partial \varepsilon } \over {\partial {\rm{x}}}}$$$$\Delta y = {{\partial \varepsilon } \over {\partial y}}$$
  • 根據反向傳播
    $$\Delta {y_l} = {f^'}({y_l})\Delta {x_{l + 1}}$$
    • 對於ReLu函式,f的導數01,且概率是相等的,假設$${f^'}({y_l})$$$$\Delta {x_{l + 1}}$$是相互獨立的,
    • 所以:$$E[\Delta {y_l}] = E[\Delta {x_{l + 1}}]/2 = 0$$
  • 所以:$$E[{(\Delta {y_l})^2}] = Var[\Delta {y_l}] = {1 \over 2}Var[\Delta {x_{l + 1}}]$$……………………………………………(8)
  • 根據(7)可以得到:
    這裡寫圖片描述
  • L層展開得:
    $$Var[\Delta {x_2}] = Var[\Delta {x_{L + 1}}]\prod\limits_{l = 2}^L {{1 \over 2}\widehat {{n_l}}Var[{w_l}]} $$…………………………………………………..(9)
  • 同樣令:$${1 \over 2}\widehat {{n_l}}Var[{w_l}] = 1$$

    • 注意這裡:$$\widehat {{n_l}} = k_l^2{d_l}$$,而$${n_l} = k_l^2{c_l} = k_l^2{d_{l - 1}}$$
  • 所以$${{\rm{w}}_l}$$應滿足均值為0標準差為:$$\sqrt {{2 \over {\widehat {{n_l}}}}} $$的分佈

5、正向和反向傳播討論、實驗和PReLu函式

  • 對於正向和反向兩種初始化權重的方式都是可以的,論文中的模型都能夠收斂
  • 比如利用反向傳播得到的初始化得到:$$\prod\limits_{l = 2}^L {{1 \over 2}\widehat {{n_l}}Var[{w_l}]}  = 1$$
  • 對應到正向傳播中得到:
    這裡寫圖片描述

  • 所以也不是逐漸縮小的

  • 實驗給出了與第一篇論文的比較,如下圖所示,當神經網路有30層時,Xavier初始化權重的方法(第一篇論文中的方法)已經不能收斂。
    這裡寫圖片描述
  • 對於PReLu激勵函式可以得到:$${1 \over 2}(1 + {a^2}){n_l}Var[{w_l}] = 1$$
    • a=0時就是對應的ReLu激勵函式
    • a=1是就是對應線性函式

相關推薦

深度學習Deep Learning04權重初始問題2_ReLu激勵函式

三、權重初始化問題2_ReLu激勵函式 1、說明 2、ReLu/PReLu激勵函式 目前ReLu啟用函式使用比較多,而上面一篇論文沒有討論,如果還是使用同樣初始化權重的方法(

深度學習之 TensorFlow卷積神經網絡

padding valid 叠代 val 分析 此外 nbsp drop BE 基礎概念:   卷積神經網絡(CNN):屬於人工神經網絡的一種,它的權值共享的網絡結構顯著降低了模型的復雜度,減少了權值的數量。卷積神經網絡不像傳統的識別算法一樣,需要對數據進行特征提取和數據重

Win10深度學習環境配置下篇TensorFlow + Keras + Matplotlib + OpenCV

好記性不如爛筆頭,純粹為自己的學習生活記錄點什麼! 本次接上篇文章Win10深度學習環境配置(上篇),繼續記錄win10下深度學習環境配置過程,下篇記錄安裝TensorFlow+Keras TensorFlow 由於上篇介紹了pip安裝方法,所以win10系

深度學習入門實戰用TensorFlow訓練線性迴歸

0x00 概要 TensorFlow是谷歌爸爸出的一個開源機器學習框架,目前已被廣泛應用,谷歌爸爸出品即使效能不是最強的(其實效能也不錯),但絕對是用起來最方便的,畢竟谷歌有Jeff Dean坐鎮,這波穩。 0x01 TensorFlow安裝 官方有一個Mac上Te

tensorflow深度學習實戰筆記使用tensorflow lite把訓練好的模型移植到手機端,編譯成apk檔案

目錄 tensorflow深度學習實戰筆記(二):把訓練好的模型進行固化,講解了如何固化模型以及把pb模型轉換為tflite模型,現在講解如何用官方的demo把生成的ttlite模型移植到手機端。 一、準備工作 1.1模型訓練 1.

【面向程式碼】學習 Deep LearningDeep Belief Nets(DBNs)

========================================================================================== 最近一直在看Deep Learning,各類部落格、論文看得不少 但是說實話,這樣做有

自然語言處理中傳統詞向量表示VS深度學習語言模型word2vec詞向量

        在前面的部落格中,我們已經梳理過語言表示和語言模型,之所以將這兩部分內容進行梳理,主要是因為分散式的詞向量語言表示方式和使用神經網路語言模型來得到詞向量這兩部分,構成了後來的word2vec的發展,可以說是word2vec的基礎。1.什麼是詞向量       

機器學習練習記錄1偽逆法、勢函式、基於二次準則的H-K函式、感知器法

勢函式的構造是人工勢場方法中的關鍵問題,典型的勢函式構造方法:P(θ)=f{d(θ,θ0),[dR(θ),O],dT}(1),式中 θ,θ0——機器人當前位姿與目標位姿向量;d(θ,θ0)——θ與θ0間的某種廣義距離函式;dR(θ),O——當前位姿下機器人與障礙物間的最小距離;dT——給定的門限值;P(θ)

Wine中PE格式檔案的載入Wineserver初始過程

Wineserver的初始化過程就在thread_init函式中進行的。具體分析thread_init函式(在ntdll/thread.c中)1.     建立了TEB,PEB等資料結構。2.     通過server_init_process()與服務程序建立socket連

Wine中PE格式檔案的載入Wine初始過程

首先了解下Wine初始化過程。我們執行”wine WeChat.exe”命令,發生的過程是怎麼樣的?接下來從wine原始碼一步步分析函式呼叫過程。在loader/目錄下的原始碼編譯,由main.c生成了“wine”Linux可執行檔案;preloader.c生成了“pre-l

Note——Neural Network and Deep Learning 1[神經網路與深度學習學習筆記1]

一、初學神經網路的體會 正如書中作者說的神經網路可以被稱作最美的程式設計正規化之一,神經網路將我們需要解決的複雜問題,比如手寫字型分類,簡化成一個個簡單的步驟,而本人無需瞭解內部的具體結構引數變化等。關於神經網路已經有很多實用的庫,使用這些庫可以很快的解決問題。但是不滿

深度學習 Deep Learning UFLDL 最新Tutorial 學習筆記 4Debugging: Gradient Checking

style inline add tom radi posit math size tutorial 1 Gradient Checking 說明前面我們已經實現了Linear Regression和Logistic Regression。關鍵在於代價函數Cost Fun

讀書筆記252D/3D Pose Estimation and Action Recognition using Multitask Deep LearningCVPR2018

摘要:首先指出背景,即action recognition和human pose estimation是兩個緊密相連的領域,但是總是被分開處理。然後自然地引出本文的模型,本文的模型就針對這個現狀,提出了一個multitask framework,既能從靜態image中進行

C#程式設計學習04基本操作學習總結

一、對話方塊窗體的設計 (1)修改exe圖示:專案-->右鍵-->屬性-->應用程式-->圖示和清單-->圖示,選擇要新增的圖示 (2)修改對話方塊圖示: 點選對話方塊 --> 屬性 --> ICON (3)固定對話方塊大小:點選對話方塊

Linux系統程式設計學習常見問題VMware虛擬機器下Ubuntu18.04突然上不了網的問題解決方案

問題描述:VMware虛擬機器下Ubuntu18.04突然上不了網的問題:如下圖所示:   更改這裡的三種連線方式都是這樣  2.  分析:IP衝突或者配置出了問題,需重新更新設定。 3.  解決: (1)將模式調整為

OpenCV學習筆記04Mat類詳解

1. 前言:Mat類簡介 OpenCV 作為強大的計算機視覺開源庫,很大程度上參考了MatLab的實現細節和語法風格,比如說,在OpenCV2.x版本以後,越來越多的函式實現了MatLab所具有的功能,甚至乾脆連函式名都一模一樣(如 imre

機器學習前沿熱點–Deep Learning

         一、Deep Learning的前世今生         圖靈在 1950 年的論文裡,提出圖靈試驗的設想,即隔牆對話,你將不知道與你談話的,是人還是電腦[1]。這無疑給計算機,尤其是人工智慧,預設了一個很高的期望值。但是半個世紀過去了,人工智慧的進展,遠遠沒有達到圖靈試驗的標準。這不僅讓多

【SSH之旅】一步步學習Hibernate框架關於持久化

stc localhost 對象 schema hbm.xml java let pass [] 在不引用不論什麽框架下,我們會通過平庸的代碼不停的對數據庫進行操作,產生了非常多冗余的可是又有規律的底層代碼,這樣頻繁的操作數據庫和大量的底層代碼的反復

Python學習手冊筆記1Python對象類型

python 在Python中一切皆對象,Python程序可以分解為模塊、語句、表達式及對象。如下所示:1 程序由模塊組成2 模塊包含語句3 語句包含表達式4 表達式建立並處理對象 內置對象(核心類型):1)數字:>>> 2+2 #整數加法4>>&g

Pro Android學習筆記 ActionBar1Home圖標區

ces tom 新的 方便 find rac vertica lba manifest ?? Pro Android學習筆記(四八):ActionBar(1):Home圖標區 2013年03月10日 ? 綜合 ? 共 3256字 ? 字號 小 中 大 ? 評論關閉