最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

5.1 多層感知機

2023-02-06 11:29 作者:梗直哥丶  | 我要投稿

上一章咱們學(xué)習(xí)了淺層線性神經(jīng)網(wǎng)絡(luò),用它解決了簡單的線性回歸和多分類任務(wù),想必同學(xué)們對神經(jīng)網(wǎng)絡(luò)的妙用已經(jīng)開始有了一些體會,對pytorch的上手使用也有了初步的感性認(rèn)識。本章我們將開始學(xué)習(xí)更加復(fù)雜的深層神經(jīng)網(wǎng)絡(luò)。首先,就是最簡單的多層感知機(Multilayer Perceptron,MLP)了。它是一種非常流行的神經(jīng)網(wǎng)絡(luò)模型,包含至少一個隱藏層和輸出層。先來看看和淺層神經(jīng)網(wǎng)絡(luò)相比,它的好處,或者說為什么要用它?

一般來說,使用多層感知機的原因包括:

  1. 更好地解決非線性問題。多層感知機可以通過訓(xùn)練權(quán)值參數(shù)來學(xué)習(xí)非線性函數(shù),這對于解決很多實際問題是很有用的。咱們前面學(xué)習(xí)的淺層神經(jīng)網(wǎng)絡(luò)只能解決線性問題或者簡單的非線性問題,遇到稍微復(fù)雜點的數(shù)據(jù)就束手無策了。

  2. 它有較高的準(zhǔn)確率。多層感知機可以通過訓(xùn)練來獲得較高的準(zhǔn)確率,尤其是當(dāng)數(shù)據(jù)集較大時。雖然和后面學(xué)的動輒幾十、上百,乃至上千層的神經(jīng)網(wǎng)絡(luò)沒法比,但是MLP是它們的基礎(chǔ)。先學(xué)好它,后面的學(xué)習(xí)會更容易。

  3. 它具有較好的泛化能力。多層感知機可以很好地適應(yīng)新的數(shù)據(jù),這使得它對于未來的數(shù)據(jù)具有較好的泛化能力。

  4. 它的訓(xùn)練方式靈活。多層感知機可以使用不同的優(yōu)化算法和損失函數(shù)來訓(xùn)練,這使得它可以應(yīng)用于各種不同的場景。

知道了MLP的這么多好處,先來看看它的構(gòu)成。

5.1.1 隱藏層

多層感知機(Multilayer Perceptron, MLP)是一種前饋神經(jīng)網(wǎng)絡(luò),它由輸入層、隱藏層和輸出層組成。輸入層接收輸入數(shù)據(jù),隱藏層負(fù)責(zé)處理數(shù)據(jù),輸出層輸出處理后的結(jié)果。


隱藏層是多層感知機中最重要的一層。它位于輸入層和輸出層之間,不能直接與輸入和輸出打交道。隱藏層的作用是學(xué)習(xí)數(shù)據(jù)的高級表示,從而提高模型的準(zhǔn)確度。

隱藏層中的神經(jīng)元接收輸入層的輸入數(shù)據(jù),并使用權(quán)值和閾值進行線性組合,然后通過激活函數(shù)進行非線性轉(zhuǎn)換。激活函數(shù)的作用是使得模型能夠擬合非線性數(shù)據(jù)。常用的激活函數(shù)包括 sigmoid 函數(shù)、tanh 函數(shù)和 ReLU 函數(shù)。

隱藏層的數(shù)量和大小對模型的性能有很大影響。如果隱藏層數(shù)量和大小均較小,則模型的表示能力較弱,可能無法準(zhǔn)確地擬合訓(xùn)練數(shù)據(jù)。如果隱藏層數(shù)量和大小均較大,則模型的表示能力較強,但容易過擬合,即模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)良好,但在測試數(shù)據(jù)上表現(xiàn)不佳。因此,在設(shè)計多層感知機時,需要考慮隱藏層的數(shù)量和大小,以達到較好的模型性能。

此外,隱藏層中的神經(jīng)元也可以使用不同的激活函數(shù),這樣可以讓模型具有更強的表示能力。在實際應(yīng)用中,我們可以使用超參數(shù)搜索來找到最優(yōu)的隱藏層結(jié)構(gòu)。

在多層感知機中,隱藏層的數(shù)學(xué)表示為:


5.1.2 激活函數(shù)

激活函數(shù)是神經(jīng)網(wǎng)絡(luò)中非常重要的組成部分,它起到了非線性轉(zhuǎn)換的作用。常見的激活函數(shù)有 sigmoid 函數(shù)、tanh 函數(shù)、ReLU 函數(shù)和 softmax 函數(shù)。

1. Sigmoid 函數(shù)

Sigmoid 函數(shù)是一種 S 形曲線,其表達式為:


在 PyTorch 中,可以使用 torch.nn 模塊中的函數(shù)來實現(xiàn)上述激活函數(shù)并可視化它的圖像。

import?torch?import?matplotlib.pyplot?as?plt x = torch.linspace(-5, 5, 200) y = torch.sigmoid(x) plt.plot(x.numpy(), y.numpy()) plt.title("Sigmoid Function") plt.show()


Sigmoid 函數(shù)的優(yōu)點是輸出值域范圍為 (0,1),適合二分類問題。缺點是當(dāng)輸入較大時,梯度較小,容易導(dǎo)致梯度消失問題。

2. Tanh 函數(shù)

Tanh 函數(shù)是一種雙曲正切函數(shù),其表達式為:


下面是它的pytorch實現(xiàn)和可視化。

import?torch?import?matplotlib.pyplot?as?plt x = torch.linspace(-5, 5, 200) y = torch.tanh(x) plt.plot(x.numpy(), y.numpy()) plt.title("Tanh Function") plt.show()

Tanh 函數(shù)的優(yōu)點是輸出值域范圍為 (-1,1),適合二分類問題。缺點是當(dāng)輸入較大時,梯度較小,容易導(dǎo)致梯度消失問題。

3. ReLU 函數(shù)

ReLU 函數(shù)(Rectified Linear Unit)是一種線性函數(shù),其表達式為:

運行下面的代碼能夠看到它的圖像。

import?torch?import?matplotlib.pyplot?as?plt x = torch.linspace(-5, 5, 200) y = torch.relu(x) plt.plot(x.numpy(), y.numpy()) plt.title("ReLU Function") plt.show()

ReLU 函數(shù)的優(yōu)點是計算簡單,速度快。缺點是當(dāng)輸入小于0時,輸出為0,容易導(dǎo)致梯度消失問題。

4. Softmax 函數(shù)

Softmax 函數(shù)是一種常用的多分類激活函數(shù),其表達式為:

Softmax 函數(shù)的作用是將輸入數(shù)據(jù)轉(zhuǎn)化為概率分布,使得每一類的概率和為1。它的優(yōu)點是適合多分類問題,缺點是計算量較大。

import?torch?import?matplotlib.pyplot?as?plt x = torch.linspace(-5, 5, 200) y = torch.softmax(x, dim=0) plt.plot(x.numpy(), y.numpy()) plt.title("Softmax Function") plt.show()



梗直哥提示:其實介紹了這么多激活函數(shù),你只要記著Sigmoid和Tanh 函數(shù)適用于二分類問題,ReLU 函數(shù)適用于大多數(shù)任務(wù),Softmax函數(shù)適用于多分類問題就行了。當(dāng)然實戰(zhàn)中,還有很多各種各樣的變體。如果你對這方面的進階內(nèi)容和實戰(zhàn)內(nèi)容感興趣,歡迎入群學(xué)習(xí)(加V: gengzhige99)


同步更新:

Github/公眾號:梗直哥

查看視頻講解


5.1 多層感知機的評論 (共 條)

分享到微博請遵守國家法律
巴彦淖尔市| 平阴县| 普定县| 新乐市| 扶沟县| 瑞昌市| 文山县| 华蓥市| 丹巴县| 荣昌县| 济南市| 固原市| 永和县| 常熟市| 五莲县| 大庆市| 望奎县| 莱西市| 项城市| 鄂托克前旗| 运城市| 土默特右旗| 大港区| 高清| 湘西| 阿拉尔市| 霍州市| 昌江| 噶尔县| 泰宁县| 磐安县| 柳林县| 高清| 长子县| 佛学| 乌拉特前旗| 九寨沟县| 吉林省| 宕昌县| 郁南县| 牙克石市|