深度學習基礎(二)激活函數

? ? ? ? 激活函數(也被稱為激勵函數)的意義就是加入非線性因素,使得神經網絡具有非線性表達的能力。其必要條件是激活函數的輸入和輸出都是可微的,因為神經網絡要求處處可微。(可微是指函數的各個方向可導,可微大于等于可導)

一、激活函數的定義與作用

1.定義。如下圖所示,激活函數一般是在神經元的輸入(inputs)經過加權求和之后,還繼續被一個函數作用。該函數就是激活函數。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

2.作用。激活函數的意義也就是加入非線性因素,讓神經網絡具備非線性的表達能力(當然不是真正意義上的非線性,不過可以逼近任意的非線性函數罷了)。這也是個很了不得的進步了。

二、激活函數的類型

函數類型主要有Sigmoid、Tanh、Relu及其變種等函數。

1.Sigmoid

公式:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?f(x) = \frac{1}{1 + e^{-1}}

函數曲線:

將輸入x映射到(0,1)之間,對二分類比較有效。其缺點比較明顯,

1)激活函數計算量大,收斂緩慢

2)反向傳播時,容易出現梯度消失

2.Tanh

Tanh可以說是Sigmoid函數的升級版(但是并不能完全代替Sigmoid,因為有時要求輸出大于等于0時,Sigmoid還是具有不可替代性),Tanh的值域為(-1,1)。

公式:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?f(x) = 2*Sigmoid(2x)-1 = \frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}

函數曲線:

與Sigmoid相比,Tanh具有zero-centered的特性,并且具有放大特征的能力,但依然具有梯度消失和冪運算的計算復雜等問題。

3.Relu

Relu函數更為常用,因為其重視正向信號忽視負向信號和人類神經元細胞的特性特別相似,所以具有非常好的擬合效果。

公式:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?f(x) = max (0,x)

曲線:

雖然Relu是一個取最大值函數,并且局部可導,但是它是近幾年來激活函數比較突出的進展,主要表現以下幾點:

1)解決了梯度消失的問題(僅僅是在正區間);

2)計算速度和收斂速度快;

缺點也比較明顯:

1)不具備zero-centered的特性;

2)Dead ReLU Problem。由于參數初始化的不幸或者learning rate的設置不正確(設置過大)導致的神經元可能永遠不會被激活,即相應的參數永遠不能被更新問題。其解決辦法是采用Xavier初始化方法,以及避免將learning rate設置太大或使用adagrad等自動調節learning rate的算法。

Relu和后面優化函數中的Adam算法一樣,請優先使用(特別是對我這樣的新手而言)。

4.Relu的變種PReLU

PReLU

公式:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??f(x) = max(\alpha x,x)

曲線:

主要是為了避免Relu的Dead ReLU Problem問題,令Relu的負半段為設為αx 而非0。
但是無法通過測試說明PReLU完全比Relu具有更好的表達性。

Relu6(tensorflow的函數)

公式:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?f(x) = min((max(0,x)),6)

Relu6可有效防止梯度爆炸,由于節點和層數過多且輸出為正時,經加權計算時輸出與目標相差過大導致參數調整修正值過大引發的網絡抖動,無法收斂的情況。

5.softmax

softmax函數是一個多分類函數,主要用于多分類任務。

公式:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?f(x) = \frac{e^{x_{j}}}{\sum_{i=1}^{sum}e^{x_{i}}}

其輸出是分類的n個標簽,每個標簽的概率,其概率的和為1,其中選取概率最大的分類作為預測的目標。

總結:

1.深度學習必要的條件是大量的數據,針對數據最好采用zero-centered數據 和zero-centered輸出,所以盡量選擇具有zero-centered特點的激活函數以加快模型的收斂速度;

2.使用Relu時,要對learning rate比較熟悉,避免出現大量的“dead”神經元;

3.激活函數的使用,一般來說多分類的最后一層使用Softmax函數。而其余函數的使用優先順序分別是Relu > Tanh >Sigmoid,一般來說Sigmoid最好不要使用,當然具體情況還是需要具體分析的。

參考文獻:

1.《深度學習之tensorflow》;

2.https://blog.csdn.net/sinat_29957455/article/details/81841278

如有錯誤,請聯系博主改正,謝謝指正!

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

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

相關文章

ANSYS——固定斜度的變截面變截面的定義、自由耦合和變截面的定義

目錄 1.變截面梁 2.自由度耦合 3.變截面的ANSYS GUI操作 4.疑問 以下兩個定義轉自:http://wenku.baidu.com/view/04e43ebbfd0a79563c1e722d.html 上述文章中還包含了一個實例,可以參考

Please ensure that adb is correctly located at……問題解決方案

啟動android模擬器時.有時會報The connection to adb is down, and a severe error has occured.的錯誤.在網友說在任務管理器上把所有adb.exe關閉掉.重啟eclipse.但試過不管用.所以在外國網站上找到一種可行的方法:1.先把eclipse關閉.2.在管理器轉到你的android SDK 的platfor…

2016.8.23

1 貼吧里看到一個關于因為游戲鬧翻的故事,大致情況是這樣的:某女初中的時候有個閨蜜。后來此人因為抑郁之類的精神問題被送到醫院,這讓女主很苦悶且脆弱又孤單,這時候她的閨蜜去醫院看望她,然后女主就喜歡上了這位閨蜜…

[Spring]01_環境配置

1.1 Spring jar包下載 (1)進入官網http://repo.spring.io (2)在資源庫界面點擊Artifacts標簽,然后點擊libs-release-local,展開后依次點擊org -> springframework -> spring。 然后,就可…

ANSYS——常見梁的后處理方法(彎曲應力、彎矩、軸力等的顯示)

目錄 a. 顯示變形 b. 顯示當量應力 c. 顯示彎曲應力 d. 支反力顯示 e. 將圖形存入文件

深度學習基礎(三)loss函數

loss函數,即損失函數,是決定網絡學習質量的關鍵。若網絡結構不變的前提下,損失函數選擇不當會導致模型精度差等后果。若有錯誤,敬請指正,Thank you! 目錄 一、loss函數定義 二、常見的loss算法種類 1.M…

C#中DataTable中的Compute方法使用收集

Compute函數的參數就兩個:Expression,和Filter。 Expresstion是計算表達式,關于Expression的詳細內容請看這里“http://msdn2.microsoft.com/zh-cn/library/system.data.datacolumn.expression(VS.80).aspx”。而Filter則是條件過濾器&#x…

Lazy延遲實例對象

懶對象,實現延遲實例對象。 轉載于:https://www.cnblogs.com/yj2010/p/5798622.html

Shift鍵關閉大小寫

同事說他的大寫開了之后無法關閉,我檢查了下,的確是,非常奇怪,然后我不小心按了下下面的Shift鍵,大寫指示燈滅了,我立即明白是怎么回事,原來是文字和語言設置里的Key setting改了,如…

ANSYS——如何選擇合適的單元類型

目錄 1.該選桿單元(Link)還是梁單元(Beam)? 2.對于薄壁結構,是選實體單元還是殼單元?

深度學習之pytorch(一) 環境安裝

快2周沒更新博客了,別問為什么!我才不會告訴你忙的飛起!說心里話,個人更喜歡用tensorflow來做深度學習! 一、環境配置 1.win10 64位系統; 2.anaconda3; 3.不管是CPU還是GPU具有(…

hdu3068馬拉車

其實馬拉車還真是最好理解的算法(感覺初中的時候好像講過類似的,但是當時就沒有認真聽) 沒想到一個簡單的優化能變成O(n),感覺碉堡 不說了,馬拉車裸題,我在寫的時候只保留了id,沒保留mx&#xf…

CAD——將圖形移動到指定點的方法(此處以捕捉坐標系原點為例)

1、在CAD中畫一個正方形,沒有任何角點在坐標原點上 2、點擊修改工具欄的“移動命令”,選擇剛剛畫好的圖形,選擇一個點為第一個基點; 3、先輸入#號(shift3),再輸入0,0,用英文逗號隔開&#xff0c…

閱讀推薦——深入淺出Mesos

深入淺出Mesos(一):為軟件定義數據中心而生的操作系統http://www.infoq.com/cn/articles/analyse-mesos-part-01 深入淺出Mesos(二):Mesos的體系結構和工作流http://www.infoq.com/cn/articles/analyse-mes…

MySQL主從復制(二)

1<span style"font-family:sans-serif;">主從架構中&#xff1a;從node是不接受w操作的&#xff0c;否則可能會導致數據不一致。</span><br> 一、復制架構中應該注意的問題&#xff1a; 1.限制slave為只讀模式 可以設置在啟動參數中。 > show g…

深度學習之pytorch(二) 數據并行

又是好久沒更新博客&#xff0c;最近瑣事纏身&#xff0c;寫文檔寫到吐。沒時間學習新的知識&#xff0c;剛空閑下來立刻就學習之前忘得差不多得Pytorch。Pytorch和tensorflow差不多&#xff0c;具體得就不多啰嗦了&#xff0c;覺得還有疑問的童鞋可以自行去官網學習&#xff0…

JS 轉換數字為大寫

1 function toUpper(n) {2 n n;3 var unit 十百千萬;4 var num 一二三四五六七八九 ;5 var array new Array();6 for (var in.length; i > 0; i--){7 var numIndex parseInt(n.charAt(i-1))-1;8 if(n…

ANSYS——ANSYS后處理操作技巧與各類問題良心大總結

目錄 1.ANSYS后處理時如何按灰度輸出云圖&#xff1f; 2 將云圖輸出為JPG 3.怎么在計算結果實體云圖中切面? 4.非線性計算過程中收斂曲線實時顯示 5.運用命令流進行計算時,一個良好的習慣是: 6.應力圖中左側的文字中&#xff0c;SMX與SMN分別代表最大值和最小值 7.在非…

容器的綜合應用:文本查詢程序

需求 程序讀取用戶指定的任意文本文件&#xff0c;允許用戶從該文件中查找單詞。查詢結果是該單詞出現的次數&#xff0c;并列出每次出現所在行&#xff0c;如果某單詞在同一行中多次出現&#xff0c;程序將只顯示該行一次。行號按升序顯示&#xff0c;即第 7 行應該在第 9 行之…

Anaconda 安裝操作及遇到的坑

最近剛用Pytorch&#xff0c;編譯開源代碼的時候發現缺少n個package&#xff0c;原來是之前在Anaconda3 創建的虛擬環境各自是獨立的&#xff0c;tensorflow下安裝的不能在別的環境下使用&#xff0c;所以要重新安裝。然而關鍵是國內各種屏蔽資源&#xff0c;無法FQ去直接下載安…