丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能 正文
發(fā)私信給AI研習(xí)社
發(fā)送

0

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

本文作者: AI研習(xí)社 2017-02-13 14:55
導(dǎo)語(yǔ):盡管存在這兩個(gè)問(wèn)題,ReLU目前仍是最常用的activation function,在搭建人工神經(jīng)網(wǎng)絡(luò)的時(shí)候推薦優(yōu)先嘗試!

雷鋒網(wǎng)按:本文作者夏飛,清華大學(xué)計(jì)算機(jī)軟件學(xué)士,卡內(nèi)基梅隆大學(xué)人工智能碩士。現(xiàn)為谷歌軟件工程師。本文首發(fā)于知乎,雷鋒網(wǎng)獲授權(quán)轉(zhuǎn)載。

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

TLDR (or the take-away)

優(yōu)先使用ReLU (Rectified Linear Unit) 函數(shù)作為神經(jīng)元的activation function:

背景

深度學(xué)習(xí)的基本原理是基于人工神經(jīng)網(wǎng)絡(luò),信號(hào)從一個(gè)神經(jīng)元進(jìn)入,經(jīng)過(guò)非線性的activation function,傳入到下一層神經(jīng)元;再經(jīng)過(guò)該層神經(jīng)元的activate,繼續(xù)往下傳遞,如此循環(huán)往復(fù),直到輸出層。正是由于這些非線性函數(shù)的反復(fù)疊加,才使得神經(jīng)網(wǎng)絡(luò)有足夠的capacity來(lái)抓取復(fù)雜的pattern,在各個(gè)領(lǐng)域取得state-of-the-art的結(jié)果。顯而易見,activation function在深度學(xué)習(xí)中舉足輕重,也是很活躍的研究領(lǐng)域之一。目前來(lái)講,選擇怎樣的activation function不在于它能否模擬真正的神經(jīng)元,而在于能否便于優(yōu)化整個(gè)深度神經(jīng)網(wǎng)絡(luò)。

下面我們簡(jiǎn)單聊一下各類函數(shù)的特點(diǎn)以及為什么現(xiàn)在優(yōu)先推薦ReLU函數(shù)。

Sigmoid函數(shù)

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

Sigmoid函數(shù)是深度學(xué)習(xí)領(lǐng)域開始時(shí)使用頻率最高的activation function。它是便于求導(dǎo)的平滑函數(shù),其導(dǎo)數(shù)為,這是優(yōu)點(diǎn)。然而,Sigmoid有三大缺點(diǎn):

  • 容易出現(xiàn)gradient vanishing

  • 函數(shù)輸出并不是zero-centered

  • 冪運(yùn)算相對(duì)來(lái)講比較耗時(shí)

Gradient Vanishing

優(yōu)化神經(jīng)網(wǎng)絡(luò)的方法是Back Propagation,即導(dǎo)數(shù)的后向傳遞:先計(jì)算輸出層對(duì)應(yīng)的loss,然后將loss以導(dǎo)數(shù)的形式不斷向上一層網(wǎng)絡(luò)傳遞,修正相應(yīng)的參數(shù),達(dá)到降低loss的目的。 Sigmoid函數(shù)在深度網(wǎng)絡(luò)中常常會(huì)導(dǎo)致導(dǎo)數(shù)逐漸變?yōu)?,使得參數(shù)無(wú)法被更新,神經(jīng)網(wǎng)絡(luò)無(wú)法被優(yōu)化。

原因在于兩點(diǎn):

  • 在上圖中容易看出,當(dāng)中較大或較小時(shí),導(dǎo)數(shù)接近0,而后向傳遞的數(shù)學(xué)依據(jù)是微積分求導(dǎo)的鏈?zhǔn)椒▌t,當(dāng)前層的導(dǎo)數(shù)需要之前各層導(dǎo)數(shù)的乘積,幾個(gè)小數(shù)的相乘,結(jié)果會(huì)很接近0

  • Sigmoid導(dǎo)數(shù)的最大值是0.25,這意味著導(dǎo)數(shù)在每一層至少會(huì)被壓縮為原來(lái)的1/4,通過(guò)兩層后被變?yōu)?/16,…,通過(guò)10層后為1/1048576。請(qǐng)注意這里是“至少”,導(dǎo)數(shù)達(dá)到最大值這種情況還是很少見的。

輸出不是zero-centered

Sigmoid函數(shù)的輸出值恒大于0,這會(huì)導(dǎo)致模型訓(xùn)練的收斂速度變慢。

舉例來(lái)講,對(duì),如果所有均為正數(shù)或負(fù)數(shù),那么其對(duì)的導(dǎo)數(shù)總是正數(shù)或負(fù)數(shù),這會(huì)導(dǎo)致如下圖紅色箭頭所示的階梯式更新,這顯然并非一個(gè)好的優(yōu)化路徑。深度學(xué)習(xí)往往需要大量時(shí)間來(lái)處理大量數(shù)據(jù),模型的收斂速度是尤為重要的。所以,總體上來(lái)講,訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)盡量使用zero-centered數(shù)據(jù) (可以經(jīng)過(guò)數(shù)據(jù)預(yù)處理實(shí)現(xiàn)) 和zero-centered輸出。

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

冪運(yùn)算相對(duì)耗時(shí)

相對(duì)于前兩項(xiàng),這其實(shí)并不是一個(gè)大問(wèn)題,我們目前是具備相應(yīng)計(jì)算能力的,但面對(duì)深度學(xué)習(xí)中龐大的計(jì)算量,最好是能省則省 :-)。之后我們會(huì)看到,在ReLU函數(shù)中,需要做的僅僅是一個(gè)thresholding,相對(duì)于冪運(yùn)算來(lái)講會(huì)快很多。

tanh函數(shù)

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

tanh讀作Hyperbolic Tangent,如上圖所示,它解決了zero-centered的輸出問(wèn)題,然而,gradient vanishing的問(wèn)題和冪運(yùn)算的問(wèn)題仍然存在。

ReLU函數(shù)

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

ReLU函數(shù)其實(shí)就是一個(gè)取最大值函數(shù),注意這并不是全區(qū)間可導(dǎo)的,但是我們可以取sub-gradient,如上圖所示。ReLU雖然簡(jiǎn)單,但卻是近幾年的重要成果,有以下幾大優(yōu)點(diǎn):

  • 解決了gradient vanishing問(wèn)題 (在正區(qū)間)

  • 計(jì)算速度非???,只需要判斷輸入是否大于0

  • 收斂速度遠(yuǎn)快于sigmoid和tanh

ReLU也有幾個(gè)需要特別注意的問(wèn)題:

  • ReLU的輸出不是zero-centered

  • Dead ReLU Problem,指的是某些神經(jīng)元可能永遠(yuǎn)不會(huì)被激活,導(dǎo)致相應(yīng)的參數(shù)永遠(yuǎn)不能被更新。有兩個(gè)主要原因可能導(dǎo)致這種情況產(chǎn)生: (1) 非常不幸的參數(shù)初始化,這種情況比較少見 (2) learning rate太高導(dǎo)致在訓(xùn)練過(guò)程中參數(shù)更新太大,不幸使網(wǎng)絡(luò)進(jìn)入這種狀態(tài)。解決方法是可以采用Xavier初始化方法,以及避免將learning rate設(shè)置太大或使用adagrad等自動(dòng)調(diào)節(jié)learning rate的算法。

盡管存在這兩個(gè)問(wèn)題,ReLU目前仍是最常用的activation function,在搭建人工神經(jīng)網(wǎng)絡(luò)的時(shí)候推薦優(yōu)先嘗試!

Leaky ReLU函數(shù)

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

人們?yōu)榱私鉀QDead ReLU Problem,提出了將ReLU的前半段設(shè)為而非0。另外一種直觀的想法是基于參數(shù)的方法,即Parametric ReLU:,其中可由back propagation學(xué)出來(lái)。理論上來(lái)講,Leaky ReLU有ReLU的所有優(yōu)點(diǎn),外加不會(huì)有Dead ReLU問(wèn)題,但是在實(shí)際操作當(dāng)中,并沒(méi)有完全證明Leaky ReLU總是好于ReLU。

ELU (Exponential Linear Units) 函數(shù)

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

ELU也是為解決ReLU存在的問(wèn)題而提出,顯然,ELU有ReLU的基本所有優(yōu)點(diǎn),以及:

  • 不會(huì)有Dead ReLU問(wèn)題

  • 輸出的均值接近0,zero-centered

它的一個(gè)小問(wèn)題在于計(jì)算量稍大。類似于Leaky ReLU,理論上雖然好于ReLU,但在實(shí)際使用中目前并沒(méi)有好的證據(jù)ELU總是優(yōu)于ReLU。

小結(jié)

建議使用ReLU函數(shù),但是要注意初始化和learning rate的設(shè)置;可以嘗試使用Leaky ReLU或ELU函數(shù);不建議使用tanh,尤其是sigmoid函數(shù)。

參考資料

Udacity Deep Learning Courses

Stanford CS231n Course

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

Google軟件工程師解讀:深度學(xué)習(xí)的activation function哪家強(qiáng)?

分享:
相關(guān)文章

編輯

聚焦數(shù)據(jù)科學(xué),連接 AI 開發(fā)者。更多精彩內(nèi)容,請(qǐng)?jiān)L問(wèn):yanxishe.com
當(dāng)月熱門文章
最新文章
請(qǐng)?zhí)顚懮暾?qǐng)人資料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)