自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何配置神經(jīng)網(wǎng)絡(luò)中層和節(jié)點(diǎn)的數(shù)量

譯文
人工智能 深度學(xué)習(xí)
對于剛接觸機(jī)器學(xué)習(xí)領(lǐng)域的初學(xué)者來說,這可能并非易事,關(guān)鍵是尋找一種分析方法來計算最佳的層數(shù)和節(jié)點(diǎn)數(shù),或者遵循簡單的經(jīng)驗法則。在這篇文章中,你將了解層和節(jié)點(diǎn)的作用,以及如何著手為你的預(yù)測建模問題配置多層感知器神經(jīng)網(wǎng)絡(luò)。

【51CTO.com快譯】人工神經(jīng)網(wǎng)絡(luò)有兩個重要的超參數(shù)控制著網(wǎng)絡(luò)的架構(gòu)或拓?fù)浣Y(jié)構(gòu):層數(shù)和每個隱藏層中的節(jié)點(diǎn)數(shù)。

你在配置網(wǎng)絡(luò)時,必須指定這些參數(shù)的值。想為你特定的預(yù)測建模問題配置這些超參數(shù),最可靠的方法就是用強(qiáng)大的測試工具進(jìn)行系統(tǒng)試驗。

對于剛接觸機(jī)器學(xué)習(xí)領(lǐng)域的初學(xué)者來說,這可能并非易事,關(guān)鍵是尋找一種分析方法來計算最佳的層數(shù)和節(jié)點(diǎn)數(shù),或者遵循簡單的經(jīng)驗法則。

在這篇文章中,你將了解層和節(jié)點(diǎn)的作用,以及如何著手為你的預(yù)測建模問題配置多層感知器神經(jīng)網(wǎng)絡(luò)。

閱讀本文后,你會知道:

  • 單層感知器網(wǎng)絡(luò)與多層感知器網(wǎng)絡(luò)的區(qū)別。
  • 網(wǎng)絡(luò)中有一個和多個隱藏層的價值。
  • 配置網(wǎng)絡(luò)中的層數(shù)和節(jié)點(diǎn)數(shù)的五種方法。

讓我們開始吧!

[[239712]] 

圖1:如何配置神經(jīng)網(wǎng)絡(luò)中的層數(shù)和節(jié)點(diǎn)數(shù)

概述

本文分為四個部分,它們是:

  1. 多層感知器
  2. 如何計數(shù)層?
  3. 為什么有多層?
  4. 使用多少層和節(jié)點(diǎn)?

多層感知器

節(jié)點(diǎn)又叫神經(jīng)元或感知器,它是一個計算單元,擁有一個或多個權(quán)重輸入連接、以某種方式結(jié)合輸入的傳遞函數(shù)(transfer function)以及連接輸出。

然后將節(jié)點(diǎn)組織成層以構(gòu)成網(wǎng)絡(luò)。

單層人工神經(jīng)網(wǎng)絡(luò)又叫單層,顧名思義,它只有單層節(jié)點(diǎn)。單層中的每個節(jié)點(diǎn)直接連接到輸入變量,用于得到輸出變量。

單層網(wǎng)絡(luò)只有一層活動單元。輸入通過單層權(quán)重直接連接到輸出。輸出不相互影響,因此擁有N個輸出的網(wǎng)絡(luò)可被視為N個獨(dú)立的單輸出網(wǎng)絡(luò)。

--1999年的《神經(jīng)鍛造:前饋人工神經(jīng)網(wǎng)絡(luò)中的監(jiān)督學(xué)習(xí)》,第15頁

單層網(wǎng)絡(luò)可以擴(kuò)展成多層網(wǎng)絡(luò)(又叫多層感知器)。多層感知器(MLP)是有不止一層的人工神經(jīng)網(wǎng)絡(luò)。

它有一個連接到輸入變量的輸入層、一個或多個隱藏層以及生成輸出變量的輸出層。

標(biāo)準(zhǔn)多層感知器(MLP)由單層感知器相互連接在一起。有一層輸入節(jié)點(diǎn)、一層輸出節(jié)點(diǎn)和一個或多個中間層。內(nèi)部層有時叫作“隱藏層”,因為它們無法從系統(tǒng)輸入和輸出直接觀察到。

--1999年的《神經(jīng)鍛造:前饋人工神經(jīng)網(wǎng)絡(luò)中的監(jiān)督學(xué)習(xí)》,第31頁

我們可以將MLP中各層的類型總結(jié)如下:

  • 輸入層:輸入變量,有時叫作可見層。
  • 隱藏層:輸入層和輸出層之間的節(jié)點(diǎn)層??赡苡幸粋€或多個隱藏層。
  • 輸出層:生成輸出變量的節(jié)點(diǎn)層。

最后,有幾個用來描述神經(jīng)網(wǎng)絡(luò)形狀和能力的術(shù)語:

  • 大小:模型中的節(jié)點(diǎn)數(shù)。
  • 寬度:特定層中的節(jié)點(diǎn)數(shù)。
  • 深度:神經(jīng)網(wǎng)絡(luò)中的層數(shù)。
  • 能力:可通過網(wǎng)絡(luò)配置學(xué)習(xí)的函數(shù)的類型或結(jié)構(gòu)。有時叫作“表示能力”。
  • 架構(gòu):網(wǎng)絡(luò)中層和節(jié)點(diǎn)的具體排列。

如何計數(shù)層?

過去關(guān)于如何計數(shù)層數(shù)存在一些分歧。

分歧的焦點(diǎn)在于輸入層要不要計數(shù)在內(nèi)。一種觀點(diǎn)認(rèn)為輸入層不該計數(shù)在內(nèi),因為輸入不是活動輸入,它們只是輸入變量。我們將使用這個慣例,這也是《神經(jīng)鍛造》一書中推薦的慣例。

因此,擁有輸入層、一個隱藏層和一個輸出層的MLP是2層MLP,可以使用簡單的標(biāo)記來概括MLP的結(jié)構(gòu)。

這種方便的標(biāo)記概括了層數(shù)和每層的節(jié)點(diǎn)數(shù)。每層中的節(jié)點(diǎn)數(shù)被指定為一個整數(shù),按照從輸入層到輸出層的順序,每個層的大小由正斜線字符(“/”)分隔。

比如說,如果某個網(wǎng)絡(luò)有輸入層中的兩個變量、有8個節(jié)點(diǎn)的一個隱藏層和有1個節(jié)點(diǎn)的輸出層,可以使用標(biāo)記:2/8/1來描述。

我建議在描述多層感知器神經(jīng)網(wǎng)絡(luò)的層及大小時使用此標(biāo)記。

為什么有多層?

在我們探討指定多少層之前,思考為什么我們想要有多層很重要。

單層神經(jīng)網(wǎng)絡(luò)只能用于表示線性可分的函數(shù)。這意味著很簡單的問題,比如說分類問題中的兩個類可以用一條線整齊地分開。如果你的問題比較簡單,單層網(wǎng)絡(luò)可能足夠了。

我們想要解決的大多數(shù)問題都不是線性可分的。

多層感知器可用于表示凸區(qū)域(convex region)。這意味著,實際上,它們可以學(xué)習(xí)針對一些高維度空間中的實例繪制形狀,以便可以將它們進(jìn)行分隔和分類,從而克服線性可分的局限性。

實際上,Lippmann在1987年的論文《神經(jīng)網(wǎng)絡(luò)計算入門》中有一個理論發(fā)現(xiàn)表明,有兩個隱藏層的MLP足以創(chuàng)建任何所需形狀的分類區(qū)域。這頗有啟發(fā)性,不過值得一提的是,論文根本沒有表明每層中使用多少節(jié)點(diǎn)或如何學(xué)習(xí)權(quán)重。

進(jìn)一步的理論發(fā)現(xiàn)和證據(jù)已表明,MLP是通用逼近器(universal approximator,https://en.wikipedia.org/wiki/Universal_approximation_theorem)。有一個隱藏層,MLP就可以逼近我們需要的任何函數(shù)。

具體而言,通用逼近定理表示,前饋網(wǎng)絡(luò)若有線性輸出層和至少一個隱藏層,而且有任何“壓縮”激活函數(shù)(比如邏輯sigmoid激活函數(shù)),可以逼近任何波萊爾可測函數(shù),前提是給網(wǎng)絡(luò)足夠的隱藏單元。

-2016年的《深度學(xué)習(xí)》,第198頁。

這是一個經(jīng)常被引用的理論發(fā)現(xiàn),關(guān)于它的文獻(xiàn)有好多。實際上,我們同樣不知道針對某個特定的問題該在單個隱藏層中使用多少節(jié)點(diǎn),也不知道如何有效地學(xué)習(xí)或設(shè)置權(quán)重。此外,已針對無法通過單個隱藏層的MLP直接學(xué)習(xí)或者需要無限數(shù)量節(jié)點(diǎn)的函數(shù)提出了許多反例。

即使對于可以通過足夠大的單一隱藏層MLP來學(xué)習(xí)的那些函數(shù),用兩個(或更多)隱藏層來學(xué)習(xí)可能更有效。

既然一個足夠大的隱藏層足以逼近大多數(shù)函數(shù),為什么還有人使用更多層呢?一個原因在于“足夠大”這個詞。雖然單個隱藏層對于某些函數(shù)來說最佳,但也有這樣的其他函數(shù):與有更多層的解決方案相比,單隱藏層解決方案的效率非常低。

--1999年的《神經(jīng)鍛造:前饋人工神經(jīng)網(wǎng)絡(luò)中的監(jiān)督學(xué)習(xí)》,第38頁

使用多少層和節(jié)點(diǎn)?

前面已介紹了MLP,現(xiàn)在不妨處理你的實際問題:應(yīng)該在多層感知器中使用多少層,每層多少節(jié)點(diǎn)?

我們在本節(jié)中將列舉解決這個問題的五種方法。

1)試驗

一般來說,我被問及MLP使用多少層和節(jié)點(diǎn)時,我常?;卮穑?/p>

我不知道,使用系統(tǒng)試驗來發(fā)現(xiàn)什么是最適合你的特定數(shù)據(jù)集。

我仍堅持這么回答。

通常,你無法分析計算人工神經(jīng)網(wǎng)絡(luò)中的層數(shù)或每層使用的節(jié)點(diǎn)數(shù)以解決特定的實際預(yù)測建模問題。

層數(shù)和每層中的節(jié)點(diǎn)數(shù)是你必須指定的模型超參數(shù)。

你可能是第一個嘗試使用神經(jīng)網(wǎng)絡(luò)解決你那特定問題的人。在你之前沒人解決該問題。因此,沒人能告訴你到底如何配置網(wǎng)絡(luò)。

你得使用強(qiáng)大的測試工具和對照試驗來找到答案。比如,不妨看看這篇文章:《如何評估深度學(xué)習(xí)模型的技能?》(https://machinelearningmastery.com/evaluate-skill-deep-learning-models/)

無論你遇到什么樣的啟發(fā)方法,所有答案都?xì)w結(jié)為需要認(rèn)真的試驗,看看哪種方法最適合你的特定數(shù)據(jù)集。

2)直覺

網(wǎng)絡(luò)可以通過直覺來進(jìn)行配置。比如說,你可能擁有深度網(wǎng)絡(luò)解決特定的預(yù)測建模問題所需要的直覺。

深度模型提供了層次結(jié)構(gòu),這種層次從輸入變量空間到輸出變量空間逐漸提高了抽象級別。

如果對問題領(lǐng)域(problem domain)有一定的了解,我們可能需要深度層次模型來充分解決預(yù)測問題。在這種情況下,我們可以選擇有多層深度的網(wǎng)絡(luò)配置。

選擇一個深度模型意味著我們相信,我們想要學(xué)習(xí)的函數(shù)應(yīng)包含幾個更簡單的函數(shù)。這可以從表示學(xué)習(xí)的角度來加以解釋,我們認(rèn)為學(xué)習(xí)問題包括發(fā)現(xiàn)一組變化的影響因素,而這些因素又可以從其他更簡單的變化影響因素方面加以描述。

――2016年的《深度學(xué)習(xí)》,第201頁。

這種直覺可能來自領(lǐng)域方面的經(jīng)驗、神經(jīng)網(wǎng)絡(luò)建模問題方面的經(jīng)驗或者兩者兼之。

根據(jù)我的經(jīng)驗,直覺常常通過試驗被證明是無效的。

3)深度化

Goodfellow、Bengio和Courville在重要的深度學(xué)習(xí)教科書中強(qiáng)調(diào),單憑經(jīng)驗,針對感興趣的問題,深度神經(jīng)網(wǎng)絡(luò)似乎表現(xiàn)更好。

具體而言,他們表示在深度可能明顯有利的情況下,應(yīng)該選擇使用深度神經(jīng)網(wǎng)絡(luò)作為統(tǒng)計論點(diǎn)。

從經(jīng)驗上看,深度越大對眾多任務(wù)的歸納就越好。[…]這表明使用深度架構(gòu)確實在模型學(xué)習(xí)的函數(shù)空間上表達(dá)了一個有用的先驗。

――2016年出版的《深度學(xué)習(xí)》,第201頁。

我們可以使用這個論點(diǎn)來表明:使用深度網(wǎng)絡(luò)(多層網(wǎng)絡(luò))可能是一種配置網(wǎng)絡(luò)的啟發(fā)式方法,以應(yīng)對有挑戰(zhàn)性的預(yù)測建模問題。

4)借鑒想法

一種簡單但可能很耗時的方法是利用文獻(xiàn)中報道的研究結(jié)果。

查找這類研究論文:描述使用MLP處理多少類似你問題的預(yù)測問題。注意那些論文中使用的網(wǎng)絡(luò)配置,將它們用作測試你問題的配置的一個起點(diǎn)。

模型超參數(shù)的可傳遞性導(dǎo)致模型可以從一個問題適用于另一個問題,這是頗具挑戰(zhàn)性的開放性問題,也是模型超參數(shù)配置與其說是科學(xué)不如說是藝術(shù)的原因。

然而,針對相關(guān)問題所使用的網(wǎng)絡(luò)層和節(jié)點(diǎn)數(shù)是測試想法的好起點(diǎn)。

5)搜索

設(shè)計自動搜索以測試不同的網(wǎng)絡(luò)配置。

你在搜索時可以結(jié)合來自文獻(xiàn)和直覺的想法。

一些流行的搜索策略包括:

  • 隨機(jī):嘗試層和每層節(jié)點(diǎn)的隨機(jī)配置。
  • 網(wǎng)格:嘗試對層數(shù)和每層節(jié)點(diǎn)數(shù)執(zhí)行系統(tǒng)搜索。
  • 啟發(fā)式方法:嘗試對配置進(jìn)行定向搜索,比如遺傳算法或貝葉斯優(yōu)化。
  • 窮盡法:試遍層和節(jié)點(diǎn)數(shù)的所有組合;這個策略對小型網(wǎng)絡(luò)和數(shù)據(jù)集來說可能行得通。

對于龐大模型、龐大數(shù)據(jù)集以及兩者的結(jié)合體,這可能具有挑戰(zhàn)性。減輕或管理計算負(fù)擔(dān)的一些想法包括如下:

  • 讓模型擬合訓(xùn)練數(shù)據(jù)集的較小子集,以加快搜索。
  • 嚴(yán)格限制搜索空間的大小。
  • 跨多個服務(wù)器實例并行化搜索(比如使用亞馬遜EC2服務(wù))。

如果時間和資源允許,我建議系統(tǒng)化搜索。

拓展閱讀

如果你希望深入了解,本節(jié)將提供有關(guān)該主題的更多資源。

論文

  • 1987年的《神經(jīng)網(wǎng)絡(luò)計算入門》:https://ieeexplore.ieee.org/abstract/document/1165576/
  • 2009年的《有多少隱藏層和節(jié)點(diǎn)?》:https://www.tandfonline.com/doi/abs/10.1080/01431160802549278

書籍

  • 1999年的《神經(jīng)鍛造:前饋人工神經(jīng)網(wǎng)絡(luò)中的監(jiān)督學(xué)習(xí)》:https://amzn.to/2vhyW8j
  • 2016年的《神經(jīng)網(wǎng)絡(luò)》:https://amzn.to/2IXzUIY

文章

  • 維基百科上的人工神經(jīng)網(wǎng)絡(luò)條目:

https://en.wikipedia.org/wiki/Artificial_neural_network

  • 維基百科上的通用逼近定理條目:

https://en.wikipedia.org/wiki/Universal_approximation_theorem

  • 我該使用多少隱藏層?comp.ai.neural-nets FAQ:

http://www.faqs.org/faqs/ai-faq/neural-nets/part3/section-9.html

結(jié)束語

你在本文中了解不同層和節(jié)點(diǎn)的作用,以及如何著手配置一個多層感知器神經(jīng)網(wǎng)絡(luò)。

具體來說,你知道了:

  • 單層感知器網(wǎng)絡(luò)與多層感知器網(wǎng)絡(luò)的區(qū)別。
  • 網(wǎng)絡(luò)中有一個和多個隱藏層的價值。
  • 配置網(wǎng)絡(luò)中的層數(shù)和節(jié)點(diǎn)數(shù)的五種方法。

有什么問題嗎?歡迎留言交流!

原文標(biāo)題:How to Configure the Number of Layers and Nodes in a Neural Network,作者:Jason Brownlee 

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2020-08-06 10:11:13

神經(jīng)網(wǎng)絡(luò)機(jī)器學(xué)習(xí)算法

2025-02-19 15:12:17

神經(jīng)網(wǎng)絡(luò)PyTorch大模型

2018-07-03 16:10:04

神經(jīng)網(wǎng)絡(luò)生物神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò)

2018-02-05 08:58:36

Python神經(jīng)網(wǎng)絡(luò)識別圖像

2025-02-25 14:13:31

2017-03-27 16:18:30

神經(jīng)網(wǎng)絡(luò)TensorFlow人工智能

2017-08-29 13:50:03

TensorFlow深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2017-04-26 08:31:10

神經(jīng)網(wǎng)絡(luò)自然語言PyTorch

2023-05-12 14:58:50

Java神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)

2017-09-10 07:07:32

神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)集可視化

2023-06-18 23:00:39

神經(jīng)網(wǎng)絡(luò)損失函數(shù)隨機(jī)變量

2018-08-30 09:15:42

人工智能神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)

2021-06-21 10:43:25

Python神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)

2019-06-06 09:00:02

卷積神經(jīng)網(wǎng)絡(luò)CNNAI

2022-07-28 09:00:00

深度學(xué)習(xí)網(wǎng)絡(luò)類型架構(gòu)

2017-03-21 08:52:20

神經(jīng)網(wǎng)絡(luò)聲譽(yù)

2023-11-14 16:29:14

深度學(xué)習(xí)

2017-11-30 18:05:18

2021-01-18 14:38:53

神經(jīng)網(wǎng)絡(luò)人工智能神經(jīng)元

2017-05-04 18:30:34

大數(shù)據(jù)卷積神經(jīng)網(wǎng)絡(luò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號