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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

探討神經(jīng)網(wǎng)絡基本架構:單元/神經(jīng)元、連接/權重/參數(shù)、偏置項

454398 ? 來源:機器之心 ? 作者:機器之心 ? 2020-10-08 00:12 ? 次閱讀

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

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

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

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

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

之后,由于機器學習模型具有很強可行性,神經(jīng)網(wǎng)絡的研究停滯不前。很多人認為這是因為 Marvin Minsky 和 Seymour Papert 在 1969 年完成的書《感知機》(Perceptrons)導致的。

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

1992 年,最大池化(max-pooling)被提出,這有助于 3D 目標識別,因為它具備平移不變性,對變形具備一定魯棒性。

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

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

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

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

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

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

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

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

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

單元/神經(jīng)元

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

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

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

權重/參數(shù)/連接

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

偏置項

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

超參數(shù)

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

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

激活函數(shù)

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

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

  • Sigmoid


Sigmoid 函數(shù)
  • Tanh


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


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


Leaky ReLU 函數(shù)

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

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

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

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

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

神經(jīng)網(wǎng)絡學習時發(fā)生了什么?

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

除梯度下降外,另一種常見的訓練神經(jīng)網(wǎng)絡方法是使用反向傳播。使用這種方法,神經(jīng)網(wǎng)絡輸出層的誤差會通過微積分中的鏈式規(guī)則向后傳播。這對于沒有微積分知識的初學者來說可能會難以理解,但也不要被嚇倒,反向傳播相關內(nèi)容,推薦閱讀:http://neuralnetworksanddeeplearning.com/chap2.html

訓練神經(jīng)網(wǎng)絡有許多注意事項。但對于初學者來說,沒有必要在一篇文章中了解全部。

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

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

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

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

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

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

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

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)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經(jīng)網(wǎng)絡

    關注

    42

    文章

    4726

    瀏覽量

    100333
  • 卷積
    +關注

    關注

    0

    文章

    95

    瀏覽量

    18481
  • 神經(jīng)元

    關注

    1

    文章

    363

    瀏覽量

    18423
  • 深度學習
    +關注

    關注

    73

    文章

    5442

    瀏覽量

    120800
收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    BP神經(jīng)網(wǎng)絡的原理、結構及 訓練方法

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

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

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

    bp神經(jīng)網(wǎng)絡模型怎么算預測值

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

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

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

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

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