溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringBoot整合MybatisPlus中激活函數(shù)的示例分析

發(fā)布時(shí)間:2022-01-19 10:24:39 來(lái)源:億速云 閱讀:225 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要為大家展示了“SpringBoot整合MybatisPlus中激活函數(shù)的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“SpringBoot整合MybatisPlus中激活函數(shù)的示例分析”這篇文章吧。

一、激活函數(shù)的前世今生

早在1958 年,美國(guó)心理學(xué)家 Frank Rosenblatt 就提出了第一個(gè)可以自動(dòng)學(xué)習(xí)權(quán)重的神經(jīng)元模型,稱為感知機(jī)。它的模型如下:
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
從圖中可以看出,他使用的是一個(gè)簡(jiǎn)單的一層網(wǎng)絡(luò),其中激活函數(shù)是階躍函數(shù)(這也是最早使用的激活函數(shù))。
于是這個(gè)感知機(jī)模型的公式可表示為:
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
其中的激活函數(shù)可表示為:
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
也就是說(shuō),當(dāng)wx+b<0時(shí),令輸出為0,代表類別0;當(dāng)wx+b>=0時(shí),令輸出為1,代表類別1。然后通過(guò)感知機(jī)收斂算法一步步迭代,優(yōu)化參數(shù)w和b,最終實(shí)現(xiàn)了最原始的二分類模型。
于是有些同學(xué)會(huì)問(wèn),為什么不是用梯度下降算法呢??
對(duì),熟悉人工智能歷史的同學(xué)肯定知道,那時(shí)候反向傳播算法都還沒(méi)有提出,肯定不會(huì)有梯度下降的說(shuō)法。那為什么聰明的 Frank沒(méi)有想到梯度下降呢?其實(shí)這里有一個(gè)不可抗力的原因。而這個(gè)原因和激活函數(shù)密切相關(guān)!
在當(dāng)時(shí),最常用的激活函數(shù)不外乎:階躍函數(shù)符號(hào)函數(shù),我們來(lái)直觀地看一下它們的函數(shù)圖:
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
左邊是階躍函數(shù),右邊是符號(hào)函數(shù)。這兩個(gè)函數(shù)有一個(gè)共通的特點(diǎn):在 z=0處是不連續(xù)的,其他位置導(dǎo)數(shù)為 0,這就使得無(wú)法利用梯度下降算法進(jìn)行參數(shù)優(yōu)化。
注:梯度都為0了,梯度下降自然就無(wú)效了,這也是后面要說(shuō)到的梯度彌散現(xiàn)象
感知機(jī)模型的不可導(dǎo)特性嚴(yán)重約束了它的潛力,使得它只能解決極其簡(jiǎn)單的任務(wù)。所以現(xiàn)代深度學(xué)習(xí),在感知機(jī)的基礎(chǔ)上,將不連續(xù)的階躍激活函數(shù)換成了其它平滑連續(xù)激活函數(shù),使得模型具有可導(dǎo)性。
實(shí)際上,現(xiàn)代大規(guī)模深度學(xué)習(xí)的核心結(jié)構(gòu)與感知機(jī)并沒(méi)有多大差別,只是通過(guò)堆疊多層網(wǎng)絡(luò)層來(lái)增強(qiáng)網(wǎng)絡(luò)的表達(dá)能力。
那么,下面將主要介紹現(xiàn)在最常用的一些平滑連續(xù)激活函數(shù)

二、不得不知的激活函數(shù)

1. Sigmoid

Sigmoid 函數(shù)也叫 Logistic 函數(shù),定義為:
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
Sigmoid 函數(shù)連續(xù)可導(dǎo),如下圖所示,相對(duì)于階躍函數(shù),可以直接利用梯度下降算法優(yōu)
化網(wǎng)絡(luò)參數(shù),應(yīng)用的非常廣泛。
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
作為激活函數(shù),將輸入映射到0~1,因此可以通過(guò) Sigmoid 函數(shù)將輸出轉(zhuǎn)譯為概率輸出,常用于表示分類問(wèn)題的事件概率。
對(duì)S(x)求導(dǎo):
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
導(dǎo)數(shù)性質(zhì):在輸入x=0時(shí),導(dǎo)數(shù)最大為0.25;當(dāng)輸入為正負(fù)無(wú)窮時(shí),梯度趨于0,會(huì)發(fā)生梯度彌散。
優(yōu)點(diǎn):平滑、易于求導(dǎo)
缺點(diǎn):指數(shù)級(jí)計(jì)算,計(jì)算量大;容易出現(xiàn)梯度彌散的情況。

2. Tanh

Tanh函數(shù)定義為:
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
可以看到 tanh 激活函數(shù)可通過(guò) Sigmoid 函數(shù)縮放平移后實(shí)現(xiàn),函數(shù)曲線如下圖::
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
Tanh 函數(shù)能夠?qū)⑤斎離映射到[?1,1]區(qū)間。是Sigmoid函數(shù)的改進(jìn)版,輸出有正有負(fù),是以0為中心的對(duì)稱函數(shù),收斂速度快,不容易出現(xiàn)loss值震蕩。但是無(wú)法解決梯度彌散問(wèn)題,同時(shí)計(jì)算量也大。

3. ReLU

在 ReLU(REctified Linear Unit,修正線性單元)激活函數(shù)提出之前,Sigmoid 函數(shù)通常是神經(jīng)網(wǎng)絡(luò)的激活函數(shù)首選。但是 Sigmoid 函數(shù)在輸入值較大或較小時(shí)容易出現(xiàn)梯度值接近于 0 的現(xiàn)象,稱為梯度彌散現(xiàn)象,網(wǎng)絡(luò)參數(shù)長(zhǎng)時(shí)間得不到更新,很難訓(xùn)練較深層次的網(wǎng)絡(luò)模型。2012 年提出的 8 層 AlexNet 采用了一種名叫 ReLU 的激活函數(shù),使得網(wǎng)絡(luò)層數(shù)達(dá)
到了 8 層。ReLU 函數(shù)定義為:
ReLU(x) = max(0, x)
ReLU 對(duì)小于 0 的值全部抑制為 0;對(duì)于正數(shù)則直接輸出,這種單邊抑制特性來(lái)源于生物學(xué)。其函數(shù)曲線如下:
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
優(yōu)點(diǎn):(1)使訓(xùn)練快速收斂,解決了梯度彌散。在信息傳遞的過(guò)程中,大于0的部分梯度總是為1。(2)稀疏性:模擬神經(jīng)元的激活率是很低的這一特性;ReLU的輸入在大于0時(shí)才能傳播信息,正是這樣的稀疏性提高了網(wǎng)絡(luò)的性能。
缺點(diǎn):在輸入小于0的時(shí)候i,即使有很大的梯度傳播過(guò)來(lái)也會(huì)戛然而止。
ReLU 函數(shù)的設(shè)計(jì)源自神經(jīng)科學(xué),計(jì)算十分簡(jiǎn)單,同時(shí)有著優(yōu)良的梯度特性,在大量的深度學(xué)習(xí)應(yīng)用中被驗(yàn)證非常有效,是應(yīng)用最廣泛的激活函數(shù)之一。

4. Leaky ReLU

ReLU 函數(shù)在輸入x < 0時(shí)梯度值恒為 0,也可能會(huì)造成梯度彌散現(xiàn)象,為了克服這個(gè)問(wèn)題,提出了Leaky ReLU,定義如下:
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
其中p為用戶自行設(shè)置的某較小數(shù)值的超參數(shù),如 0.02 等。當(dāng)p = 0時(shí),LeayReLU 函數(shù)退
化為 ReLU 函數(shù)。當(dāng)p ≠ 0時(shí),x < 0能夠獲得較小的梯度值,從而避免了梯度彌散。
函數(shù)曲線如下:
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析

5. Softmax

Softmax 函數(shù)定義:
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
Softmax 函數(shù)不僅可以將輸出值映射到[0,1]區(qū)間,還滿足所有的輸出值之和為 1 的特性。
如下圖的例子,輸出層的輸出為[2.,1.,0.1],經(jīng)過(guò) Softmax 函數(shù)計(jì)算后,得到輸出為[0.7,0.2,0.1],可以看到每個(gè)值代表了當(dāng)前樣本屬于每個(gè)類別的概率,概率值之和為 1。通
過(guò) Softmax 函數(shù)可以將輸出層的輸出轉(zhuǎn)譯為類別概率,在多分類問(wèn)題中使用的非常頻繁。
SpringBoot整合MybatisPlus中激活函數(shù)的示例分析
另外,在softmax函數(shù)多分類問(wèn)題中,若損失函數(shù)選用交叉熵,則下降梯度計(jì)算起來(lái)將會(huì)非常方便,使得網(wǎng)絡(luò)訓(xùn)練過(guò)程中的迭代計(jì)算復(fù)雜度大大降低。

以上是“SpringBoot整合MybatisPlus中激活函數(shù)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI