0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探討神經(jīng)網(wǎng)絡(luò)基本架構(gòu):?jiǎn)卧?神經(jīng)元、連接/權(quán)重/參數(shù)、偏置項(xiàng)

454398 ? 來(lái)源:機(jī)器之心 ? 作者:機(jī)器之心 ? 2020-10-08 00:12 ? 次閱讀

神經(jīng)網(wǎng)絡(luò)(NN)幾乎可以在每個(gè)領(lǐng)域幫助我們用創(chuàng)造性的方式解決問(wèn)題。本文將介紹神經(jīng)網(wǎng)絡(luò)的相關(guān)知識(shí)。讀后你將對(duì)神經(jīng)網(wǎng)絡(luò)有個(gè)大概了解,它是如何工作的?如何創(chuàng)建神經(jīng)網(wǎng)絡(luò)?

神經(jīng)網(wǎng)絡(luò)的發(fā)展歷史

神經(jīng)網(wǎng)絡(luò)起源于 WarrenMcCulloch 和 Walter Pitts 于 1943 年首次建立的神經(jīng)網(wǎng)絡(luò)模型。他們的模型完全基于數(shù)學(xué)和算法,由于缺乏計(jì)算資源,模型無(wú)法測(cè)試。

后來(lái),在 1958 年,F(xiàn)rank Rosenblatt 創(chuàng)建了第一個(gè)可以進(jìn)行模式識(shí)別的模型,改變了現(xiàn)狀。即感知器。但是他只提出了 notation 和模型。實(shí)際的神經(jīng)網(wǎng)絡(luò)模型仍然無(wú)法測(cè)試,此前的相關(guān)研究也較少。

第一批可以測(cè)試并具有多個(gè)層的神經(jīng)網(wǎng)絡(luò)于 1965 年由 Alexey Ivakhnenko 和 Lapa 創(chuàng)建。

之后,由于機(jī)器學(xué)習(xí)模型具有很強(qiáng)可行性,神經(jīng)網(wǎng)絡(luò)的研究停滯不前。很多人認(rèn)為這是因?yàn)?Marvin Minsky 和 Seymour Papert 在 1969 年完成的書(shū)《感知機(jī)》(Perceptrons)導(dǎo)致的。

然而,這個(gè)停滯期相對(duì)較短。6 年后,即 1975 年,Paul Werbos 提出反向傳播,解決了 XOR 問(wèn)題,并且使神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)效率更高。

1992 年,最大池化(max-pooling)被提出,這有助于 3D 目標(biāo)識(shí)別,因?yàn)樗邆淦揭撇蛔冃裕瑢?duì)變形具備一定魯棒性。

2009 年至 2012 年間,JürgenSchmidhuber 研究小組創(chuàng)建的循環(huán)神經(jīng)網(wǎng)絡(luò)和深度前饋神經(jīng)網(wǎng)絡(luò)獲得了模式識(shí)別和機(jī)器學(xué)習(xí)領(lǐng)域 8 項(xiàng)國(guó)際競(jìng)賽的冠軍。

2011 年,深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)開(kāi)始將卷積層與最大池化層合并,然后將其輸出傳遞給幾個(gè)全連接層,再傳遞給輸出層。這些被稱為卷積神經(jīng)網(wǎng)絡(luò)。

在這之后還有更多的研究。

什么是神經(jīng)網(wǎng)絡(luò)?

了解神經(jīng)網(wǎng)絡(luò)的一個(gè)好方法是將它看作復(fù)合函數(shù)。你輸入一些數(shù)據(jù),它會(huì)輸出一些數(shù)據(jù)。

3 個(gè)部分組成了神經(jīng)網(wǎng)絡(luò)的的基本架構(gòu):

  • 單元/神經(jīng)元
  • 連接/權(quán)重/參數(shù)
  • 偏置項(xiàng)

你可以把它們看作建筑物的「磚塊」。根據(jù)你希望建筑物擁有的功能來(lái)安排磚塊的位置。水泥是權(quán)重。無(wú)論權(quán)重多大,如果沒(méi)有足夠的磚塊,建筑物還是會(huì)倒塌。然而,你可以讓建筑以最小的精度運(yùn)行(使用最少的磚塊),然后逐步構(gòu)建架構(gòu)來(lái)解決問(wèn)題。

我將在后面的章節(jié)中更多地討論權(quán)重、偏置項(xiàng)和單元。

單元/神經(jīng)元

作為神經(jīng)網(wǎng)絡(luò)架構(gòu)三個(gè)部分中最不重要的部分,神經(jīng)元是包含權(quán)重和偏置項(xiàng)的函數(shù),等待數(shù)據(jù)傳遞給它們。接收數(shù)據(jù)后,它們執(zhí)行一些計(jì)算,然后使用激活函數(shù)將數(shù)據(jù)限制在一個(gè)范圍內(nèi)(多數(shù)情況下)。

我們將這些單元想象成一個(gè)包含權(quán)重和偏置項(xiàng)的盒子。盒子從兩端打開(kāi)。一端接收數(shù)據(jù),另一端輸出修改后的數(shù)據(jù)。數(shù)據(jù)首先進(jìn)入盒子中,將權(quán)重與數(shù)據(jù)相乘,再向相乘的數(shù)據(jù)添加偏置項(xiàng)。這是一個(gè)單元,也可以被認(rèn)為是一個(gè)函數(shù)。該函數(shù)與下面這個(gè)直線方程類似:

想象一下有多個(gè)直線方程,超過(guò) 2 個(gè)可以促進(jìn)神經(jīng)網(wǎng)絡(luò)中的非線性。從現(xiàn)在開(kāi)始,你將為同一個(gè)數(shù)據(jù)點(diǎn)(輸入)計(jì)算多個(gè)輸出值。這些輸出值將被發(fā)送到另一個(gè)單元,然后神經(jīng)網(wǎng)絡(luò)會(huì)計(jì)算出最終輸出值。

權(quán)重/參數(shù)/連接

作為神經(jīng)網(wǎng)絡(luò)最重要的部分,這些(和偏置項(xiàng))是用神經(jīng)網(wǎng)絡(luò)解決問(wèn)題時(shí)必須學(xué)習(xí)的數(shù)值。這就是你現(xiàn)在需要知道的。

偏置項(xiàng)

這些數(shù)字代表神經(jīng)網(wǎng)絡(luò)認(rèn)為其在將權(quán)重與數(shù)據(jù)相乘之后應(yīng)該添加的內(nèi)容。當(dāng)然,它們經(jīng)常出錯(cuò),但神經(jīng)網(wǎng)絡(luò)隨后也學(xué)習(xí)到最佳偏置項(xiàng)。

超參數(shù)

超參數(shù)必須手動(dòng)設(shè)置。如果將神經(jīng)網(wǎng)絡(luò)看作一臺(tái)機(jī)器,那么改變機(jī)器行為的 nob 就是神經(jīng)網(wǎng)絡(luò)的超參數(shù)。

你可以閱讀我的另一篇文章(https://towardsdatascience.com/gas-and-nns-6a41f1e8146d),了解如何優(yōu)化神經(jīng)網(wǎng)絡(luò)超參數(shù)。

激活函數(shù)

也稱為映射函數(shù)(mapping function)。它們?cè)?x 軸上輸入數(shù)據(jù),并在有限的范圍內(nèi)(大部分情況下)輸出一個(gè)值。大多數(shù)情況下,它們被用于將單元的較大輸出轉(zhuǎn)換成較小的值。你選擇的激活函數(shù)可以大幅提高或降低神經(jīng)網(wǎng)絡(luò)的性能。如果你喜歡,你可以為不同的單元選擇不同的激活函數(shù)。

以下是一些常見(jiàn)的激活函數(shù):

  • Sigmoid


Sigmoid 函數(shù)
  • Tanh


tanh 函數(shù)
  • ReLU:修正線性單元


修正線性單元函數(shù)
  • Leaky ReLU


Leaky ReLU 函數(shù)

這是神經(jīng)網(wǎng)絡(luò)在任何問(wèn)題中都可獲得復(fù)雜度的原因。增加層(具備單元)可增加神經(jīng)網(wǎng)絡(luò)輸出的非線性。

每個(gè)層都包含一定數(shù)量的單元。大多數(shù)情況下單元的數(shù)量完全取決于創(chuàng)建者。但是,對(duì)于一個(gè)簡(jiǎn)單的任務(wù)而言,層數(shù)過(guò)多會(huì)增加不必要的復(fù)雜性,且在大多數(shù)情況下會(huì)降低其準(zhǔn)確率。反之亦然。

每個(gè)神經(jīng)網(wǎng)絡(luò)有兩層:輸入層和輸出層。二者之間的層稱為隱藏層。下圖所示的神經(jīng)網(wǎng)絡(luò)包含一個(gè)輸入層(8 個(gè)單元)、一個(gè)輸出層(4 個(gè)單元)和 3 個(gè)隱藏層(每層包含 9 個(gè)單元)。

深度神經(jīng)網(wǎng)絡(luò)

具有兩個(gè)或更多隱藏層且每層包含大量單元的神經(jīng)網(wǎng)絡(luò)稱為深度神經(jīng)網(wǎng)絡(luò),它催生了深度學(xué)習(xí)這一新的學(xué)習(xí)領(lǐng)域。上圖所示神經(jīng)網(wǎng)絡(luò)就是這樣一個(gè)例子。

神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)時(shí)發(fā)生了什么?

教神經(jīng)網(wǎng)絡(luò)解決問(wèn)題的最常見(jiàn)方式是使用梯度下降。梯度下降相關(guān)內(nèi)容,參見(jiàn):https://hackernoon.com/gradient-descent-aynk-7cbe95a778da。

除梯度下降外,另一種常見(jiàn)的訓(xùn)練神經(jīng)網(wǎng)絡(luò)方法是使用反向傳播。使用這種方法,神經(jīng)網(wǎng)絡(luò)輸出層的誤差會(huì)通過(guò)微積分中的鏈?zhǔn)揭?guī)則向后傳播。這對(duì)于沒(méi)有微積分知識(shí)的初學(xué)者來(lái)說(shuō)可能會(huì)難以理解,但也不要被嚇倒,反向傳播相關(guān)內(nèi)容,推薦閱讀:http://neuralnetworksanddeeplearning.com/chap2.html。

訓(xùn)練神經(jīng)網(wǎng)絡(luò)有許多注意事項(xiàng)。但對(duì)于初學(xué)者來(lái)說(shuō),沒(méi)有必要在一篇文章中了解全部。

實(shí)現(xiàn)細(xì)節(jié)(如何管理項(xiàng)目中的所有因素)

為了解釋如何管理項(xiàng)目中的所有因素,我創(chuàng)建了一個(gè) Jupyter Notebook,包含一個(gè)學(xué)習(xí) XOR 邏輯門(mén)的小型神經(jīng)網(wǎng)絡(luò)。Jupyter Notebook 地址:https://github.com/Frixoe/xor-neural-network/blob/master/XOR-Net-Noteboo...。

在查看并理解 Notebook 內(nèi)容后,你應(yīng)該對(duì)如何構(gòu)建基礎(chǔ)神經(jīng)網(wǎng)絡(luò)有一個(gè)大致的了解。

Notebook 創(chuàng)建的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)以矩陣排列,這是常見(jiàn)的數(shù)據(jù)排列方式。不同項(xiàng)目中的矩陣維度可能會(huì)有所不同。

大量數(shù)據(jù)通常分為兩類:訓(xùn)練數(shù)據(jù)(60%)和測(cè)試數(shù)據(jù)(40%)。神經(jīng)網(wǎng)絡(luò)先使用訓(xùn)練數(shù)據(jù),然后在測(cè)試數(shù)據(jù)上測(cè)試網(wǎng)絡(luò)的準(zhǔn)確率。

關(guān)于神經(jīng)網(wǎng)絡(luò)的更多信息(更多資源鏈接)

如果你仍然無(wú)法理解神經(jīng)網(wǎng)絡(luò),那么推薦以下資源:

YouTube:

Siraj Raval (https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A)

3Blue1Brown (https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw)

The Coding Train (https://www.youtube.com/playlist?list=PLRqwX-V7Uu6aCibgK1PTWWu9by6XFdCfh)

Brandon Rohrer (https://www.youtube.com/channel/UCsBKTrp45lTfHa_p49I2AEQ)

giant_neural_network (https://www.youtube.com/channel/UCrBzGHKmGDcwLFnQGHJ3XYg)

Hugo Larochelle (https://www.youtube.com/channel/UCiDouKcxRmAdc5OeZdiRwAg)

Jabrils (https://www.youtube.com/channel/UCQALLeQPoZdZC4JNUboVEUg)

Luis Serrano (https://www.youtube.com/channel/UCgBncpylJ1kiVaPyP-PZauQ)

Coursera:

Neural Networks for Machine Learning (https://www.coursera.org/learn/neural-networks) by University of Toronto

Deep Learning Specialization (https://www.coursera.org/specializations/deep-learning) by Andrew Ng

Introduction to Deep Learning (https://www.coursera.org/learn/intro-to-deep-learning) by National Research University Higher School of Economics

編輯:hfy


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4773

    瀏覽量

    100880
  • 卷積
    +關(guān)注

    關(guān)注

    0

    文章

    95

    瀏覽量

    18527
  • 神經(jīng)元
    +關(guān)注

    關(guān)注

    1

    文章

    363

    瀏覽量

    18468
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5506

    瀏覽量

    121265
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    神經(jīng)網(wǎng)絡(luò)三要素包括什么

    神經(jīng)元神經(jīng)網(wǎng)絡(luò)的基本單元,它負(fù)責(zé)接收輸入信號(hào),進(jìn)行加權(quán)求和,并通過(guò)激活函數(shù)生成輸出信號(hào)。神經(jīng)元的結(jié)構(gòu)和功能是神經(jīng)網(wǎng)絡(luò)的核心。 1.1 生
    的頭像 發(fā)表于 07-11 11:05 ?1260次閱讀

    matlab的神經(jīng)網(wǎng)絡(luò)app怎么用

    Matlab的神經(jīng)網(wǎng)絡(luò)App是一個(gè)強(qiáng)大的工具,可以幫助用戶快速構(gòu)建、訓(xùn)練和測(cè)試神經(jīng)網(wǎng)絡(luò)模型。 神經(jīng)網(wǎng)絡(luò)基本概念 神經(jīng)網(wǎng)絡(luò)是一種模擬人腦神經(jīng)元網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-09 09:49 ?429次閱讀

    人工神經(jīng)網(wǎng)絡(luò)模型是一種什么模型

    ,具有強(qiáng)大的非線性映射能力,可以用于解決各種復(fù)雜的模式識(shí)別、分類、預(yù)測(cè)等問(wèn)題。 一、基本概念 神經(jīng)元:人工神經(jīng)網(wǎng)絡(luò)的基本單元,類似于生物神經(jīng)網(wǎng)絡(luò)中的
    的頭像 發(fā)表于 07-04 16:57 ?977次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)和bp神經(jīng)網(wǎng)絡(luò)的區(qū)別在哪

    結(jié)構(gòu)、原理、應(yīng)用場(chǎng)景等方面都存在一定的差異。以下是對(duì)這兩種神經(jīng)網(wǎng)絡(luò)的詳細(xì)比較: 基本結(jié)構(gòu) BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),由輸入層、隱藏層和輸出層組成。每個(gè)神經(jīng)元之間通過(guò)
    的頭像 發(fā)表于 07-04 09:49 ?9375次閱讀

    bp神經(jīng)網(wǎng)絡(luò)算法的基本流程包括哪些

    。 初始化網(wǎng)絡(luò)參數(shù) 在BP神經(jīng)網(wǎng)絡(luò)算法中,首先需要初始化網(wǎng)絡(luò)參數(shù),包括權(quán)重
    的頭像 發(fā)表于 07-04 09:47 ?676次閱讀

    bp神經(jīng)網(wǎng)絡(luò)的工作原理及應(yīng)用

    。 BP神經(jīng)網(wǎng)絡(luò)的工作原理 1.1 神經(jīng)網(wǎng)絡(luò)的基本概念 神經(jīng)網(wǎng)絡(luò)是一種模擬人腦神經(jīng)元連接的計(jì)算模型,由大量的
    的頭像 發(fā)表于 07-04 09:44 ?1112次閱讀

    神經(jīng)網(wǎng)絡(luò)反向傳播算法的作用是什么

    ,廣泛應(yīng)用于各種神經(jīng)網(wǎng)絡(luò)模型中,如卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)等。 神經(jīng)網(wǎng)絡(luò)概述
    的頭像 發(fā)表于 07-03 11:17 ?1470次閱讀

    神經(jīng)網(wǎng)絡(luò)反向傳播算法的原理、數(shù)學(xué)推導(dǎo)及實(shí)現(xiàn)步驟

    傳播算法的原理、數(shù)學(xué)推導(dǎo)、實(shí)現(xiàn)步驟以及在深度學(xué)習(xí)中的應(yīng)用。 神經(jīng)網(wǎng)絡(luò)概述 神經(jīng)網(wǎng)絡(luò)是一種受人腦啟發(fā)的計(jì)算模型,由大量的神經(jīng)元(或稱為節(jié)點(diǎn))組成,每個(gè)神經(jīng)元與其他
    的頭像 發(fā)表于 07-03 11:16 ?817次閱讀

    BP神經(jīng)網(wǎng)絡(luò)屬于DNN嗎

    模型,由大量的神經(jīng)元(或稱為節(jié)點(diǎn)、單元)通過(guò)權(quán)重連接而成。每個(gè)神經(jīng)元接收輸入信號(hào),通過(guò)激活函數(shù)處理后輸出
    的頭像 發(fā)表于 07-03 10:18 ?805次閱讀

    bp神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)區(qū)別是什么

    結(jié)構(gòu)、原理、應(yīng)用場(chǎng)景等方面都存在一定的差異。以下是對(duì)這兩種神經(jīng)網(wǎng)絡(luò)的比較: 基本結(jié)構(gòu) BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),由輸入層、隱藏層和輸出層組成。每個(gè)神經(jīng)元之間通過(guò)
    的頭像 發(fā)表于 07-03 10:12 ?1240次閱讀

    BP神經(jīng)網(wǎng)絡(luò)的原理、結(jié)構(gòu)及 訓(xùn)練方法

    神經(jīng)網(wǎng)絡(luò)是一種受人類大腦神經(jīng)元結(jié)構(gòu)啟發(fā)的計(jì)算模型,由大量的神經(jīng)元(或稱為節(jié)點(diǎn)、單元)通過(guò)權(quán)重連接
    的頭像 發(fā)表于 07-03 10:08 ?655次閱讀

    BP神經(jīng)網(wǎng)絡(luò)激活函數(shù)怎么選擇

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)是一種多層前饋神經(jīng)網(wǎng)絡(luò),其核心思想是通過(guò)反向傳播算法來(lái)調(diào)整網(wǎng)絡(luò)中的權(quán)重
    的頭像 發(fā)表于 07-03 10:02 ?727次閱讀

    bp神經(jīng)網(wǎng)絡(luò)模型怎么算預(yù)測(cè)值

    BP神經(jīng)網(wǎng)絡(luò)的基本原理、結(jié)構(gòu)、學(xué)習(xí)算法以及預(yù)測(cè)值的計(jì)算方法。 BP神經(jīng)網(wǎng)絡(luò)的基本原理 BP神經(jīng)網(wǎng)絡(luò)是一種基于誤差反向傳播的多層前饋神經(jīng)網(wǎng)絡(luò)。它由輸入層、隱藏層和輸出層組成,每層包含若干
    的頭像 發(fā)表于 07-03 09:59 ?802次閱讀

    神經(jīng)網(wǎng)絡(luò)反向傳播算法原理是什么

    神經(jīng)網(wǎng)絡(luò)反向傳播算法(Backpropagation Algorithm)是一種用于訓(xùn)練多層前饋神經(jīng)網(wǎng)絡(luò)的監(jiān)督學(xué)習(xí)算法。它通過(guò)最小化損失函數(shù)來(lái)調(diào)整網(wǎng)絡(luò)權(quán)重
    的頭像 發(fā)表于 07-02 14:16 ?675次閱讀

    神經(jīng)元神經(jīng)網(wǎng)絡(luò)的區(qū)別與聯(lián)系

    在人工智能和機(jī)器學(xué)習(xí)的領(lǐng)域中,神經(jīng)元神經(jīng)網(wǎng)絡(luò)是兩個(gè)至關(guān)重要的概念。雖然它們都與人腦中的神經(jīng)系統(tǒng)有著密切的聯(lián)系,但在實(shí)際應(yīng)用和理論研究中,它們各自扮演著不同的角色。本文旨在深入探討
    的頭像 發(fā)表于 07-01 11:50 ?1014次閱讀