-
當前位置:首頁 > 創(chuàng)意學院 > 技術(shù) > 專題列表 > 正文
神經(jīng)網(wǎng)絡二分類(神經(jīng)網(wǎng)絡二分類代碼)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于神經(jīng)網(wǎng)絡二分類的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、神經(jīng)網(wǎng)絡:卷積神經(jīng)網(wǎng)絡(CNN)
神經(jīng)網(wǎng)絡 最早是由心理學家和神經(jīng)學家提出的,旨在尋求開發(fā)和測試神經(jīng)的計算模擬。
粗略地說, 神經(jīng)網(wǎng)絡 是一組連接的 輸入/輸出單元 ,其中每個連接都與一個 權(quán) 相關(guān)聯(lián)。在學習階段,通過調(diào)整權(quán)值,使得神經(jīng)網(wǎng)絡的預測準確性逐步提高。由于單元之間的連接,神經(jīng)網(wǎng)絡學習又稱 連接者學習。
神經(jīng)網(wǎng)絡是以模擬人腦神經(jīng)元的數(shù)學模型為基礎(chǔ)而建立的,它由一系列神經(jīng)元組成,單元之間彼此連接。從信息處理角度看,神經(jīng)元可以看作是一個多輸入單輸出的信息處理單元,根據(jù)神經(jīng)元的特性和功能,可以把神經(jīng)元抽象成一個簡單的數(shù)學模型。
神經(jīng)網(wǎng)絡有三個要素: 拓撲結(jié)構(gòu)、連接方式、學習規(guī)則
神經(jīng)網(wǎng)絡的拓撲結(jié)構(gòu) :神經(jīng)網(wǎng)絡的單元通常按照層次排列,根據(jù)網(wǎng)絡的層次數(shù),可以將神經(jīng)網(wǎng)絡分為單層神經(jīng)網(wǎng)絡、兩層神經(jīng)網(wǎng)絡、三層神經(jīng)網(wǎng)絡等。結(jié)構(gòu)簡單的神經(jīng)網(wǎng)絡,在學習時收斂的速度快,但準確度低。
神經(jīng)網(wǎng)絡的層數(shù)和每層的單元數(shù)由問題的復雜程度而定。問題越復雜,神經(jīng)網(wǎng)絡的層數(shù)就越多。例如,兩層神經(jīng)網(wǎng)絡常用來解決線性問題,而多層網(wǎng)絡就可以解決多元非線性問題
神經(jīng)網(wǎng)絡的連接 :包括層次之間的連接和每一層內(nèi)部的連接,連接的強度用權(quán)來表示。
根據(jù)層次之間的連接方式,分為:
1)前饋式網(wǎng)絡:連接是單向的,上層單元的輸出是下層單元的輸入,如反向傳播網(wǎng)絡,Kohonen網(wǎng)絡
2)反饋式網(wǎng)絡:除了單項的連接外,還把最后一層單元的輸出作為第一層單元的輸入,如Hopfield網(wǎng)絡
根據(jù)連接的范圍,分為:
1)全連接神經(jīng)網(wǎng)絡:每個單元和相鄰層上的所有單元相連
2)局部連接網(wǎng)絡:每個單元只和相鄰層上的部分單元相連
神經(jīng)網(wǎng)絡的學習
根據(jù)學習方法分:
感知器:有監(jiān)督的學習方法,訓練樣本的類別是已知的,并在學習的過程中指導模型的訓練
認知器:無監(jiān)督的學習方法,訓練樣本類別未知,各單元通過競爭學習。
根據(jù)學習時間分:
離線網(wǎng)絡:學習過程和使用過程是獨立的
在線網(wǎng)絡:學習過程和使用過程是同時進行的
根據(jù)學習規(guī)則分:
相關(guān)學習網(wǎng)絡:根據(jù)連接間的激活水平改變權(quán)系數(shù)
糾錯學習網(wǎng)絡:根據(jù)輸出單元的外部反饋改變權(quán)系數(shù)
自組織學習網(wǎng)絡:對輸入進行自適應地學習
摘自《數(shù)學之美》對人工神經(jīng)網(wǎng)絡的通俗理解:
神經(jīng)網(wǎng)絡種類很多,常用的有如下四種:
1)Hopfield網(wǎng)絡,典型的反饋網(wǎng)絡,結(jié)構(gòu)單層,有相同的單元組成
2)反向傳播網(wǎng)絡,前饋網(wǎng)絡,結(jié)構(gòu)多層,采用最小均方差的糾錯學習規(guī)則,常用于語言識別和分類等問題
3)Kohonen網(wǎng)絡:典型的自組織網(wǎng)絡,由輸入層和輸出層構(gòu)成,全連接
4)ART網(wǎng)絡:自組織網(wǎng)絡
深度神經(jīng)網(wǎng)絡:
Convolutional Neural Networks(CNN)卷積神經(jīng)網(wǎng)絡
Recurrent neural Network(RNN)循環(huán)神經(jīng)網(wǎng)絡
Deep Belief Networks(DBN)深度信念網(wǎng)絡
深度學習是指多層神經(jīng)網(wǎng)絡上運用各種機器學習算法解決圖像,文本等各種問題的算法集合。深度學習從大類上可以歸入神經(jīng)網(wǎng)絡,不過在具體實現(xiàn)上有許多變化。
深度學習的核心是特征學習,旨在通過分層網(wǎng)絡獲取分層次的特征信息,從而解決以往需要人工設(shè)計特征的重要難題。
Machine Learning vs. Deep Learning
神經(jīng)網(wǎng)絡(主要是感知器)經(jīng)常用于 分類
神經(jīng)網(wǎng)絡的分類知識體現(xiàn)在網(wǎng)絡連接上,被隱式地存儲在連接的權(quán)值中。
神經(jīng)網(wǎng)絡的學習就是通過迭代算法,對權(quán)值逐步修改的優(yōu)化過程,學習的目標就是通過改變權(quán)值使訓練集的樣本都能被正確分類。
神經(jīng)網(wǎng)絡特別適用于下列情況的分類問題:
1) 數(shù)據(jù)量比較小,缺少足夠的樣本建立模型
2) 數(shù)據(jù)的結(jié)構(gòu)難以用傳統(tǒng)的統(tǒng)計方法來描述
3) 分類模型難以表示為傳統(tǒng)的統(tǒng)計模型
缺點:
1) 需要很長的訓練時間,因而對于有足夠長訓練時間的應用更合適。
2) 需要大量的參數(shù),這些通常主要靠經(jīng)驗確定,如網(wǎng)絡拓撲或“結(jié)構(gòu)”。
3) 可解釋性差 。該特點使得神經(jīng)網(wǎng)絡在數(shù)據(jù)挖掘的初期并不看好。
優(yōu)點:
1) 分類的準確度高
2)并行分布處理能力強
3)分布存儲及學習能力高
4)對噪音數(shù)據(jù)有很強的魯棒性和容錯能力
最流行的基于神經(jīng)網(wǎng)絡的分類算法是80年代提出的 后向傳播算法 。后向傳播算法在多路前饋神經(jīng)網(wǎng)絡上學習。
定義網(wǎng)絡拓撲
在開始訓練之前,用戶必須說明輸入層的單元數(shù)、隱藏層數(shù)(如果多于一層)、每一隱藏層的單元數(shù)和輸出層的單元數(shù),以確定網(wǎng)絡拓撲。
對訓練樣本中每個屬性的值進行規(guī)格化將有助于加快學習過程。通常,對輸入值規(guī)格化,使得它們落入0.0和1.0之間。
離散值屬性可以重新編碼,使得每個域值一個輸入單元。例如,如果屬性A的定義域為(a0,a1,a2),則可以分配三個輸入單元表示A。即,我們可以用I0 ,I1 ,I2作為輸入單元。每個單元初始化為0。如果A = a0,則I0置為1;如果A = a1,I1置1;如此下去。
一個輸出單元可以用來表示兩個類(值1代表一個類,而值0代表另一個)。如果多于兩個類,則每個類使用一個輸出單元。
隱藏層單元數(shù)設(shè)多少個“最好” ,沒有明確的規(guī)則。
網(wǎng)絡設(shè)計是一個實驗過程,并可能影響準確性。權(quán)的初值也可能影響準確性。如果某個經(jīng)過訓練的網(wǎng)絡的準確率太低,則通常需要采用不同的網(wǎng)絡拓撲或使用不同的初始權(quán)值,重復進行訓練。
后向傳播算法學習過程:
迭代地處理一組訓練樣本,將每個樣本的網(wǎng)絡預測與實際的類標號比較。
每次迭代后,修改權(quán)值,使得網(wǎng)絡預測和實際類之間的均方差最小。
這種修改“后向”進行。即,由輸出層,經(jīng)由每個隱藏層,到第一個隱藏層(因此稱作后向傳播)。盡管不能保證,一般地,權(quán)將最終收斂,學習過程停止。
算法終止條件:訓練集中被正確分類的樣本達到一定的比例,或者權(quán)系數(shù)趨近穩(wěn)定。
后向傳播算法分為如下幾步:
1) 初始化權(quán)
網(wǎng)絡的權(quán)通常被初始化為很小的隨機數(shù)(例如,范圍從-1.0到1.0,或從-0.5到0.5)。
每個單元都設(shè)有一個偏置(bias),偏置也被初始化為小隨機數(shù)。
2) 向前傳播輸入
對于每一個樣本X,重復下面兩步:
向前傳播輸入,向后傳播誤差
計算各層每個單元的輸入和輸出。輸入層:輸出=輸入=樣本X的屬性;即,對于單元j,Oj = Ij = Xj。隱藏層和輸出層:輸入=前一層的輸出的線性組合,即,對于單元j, Ij =wij Oi + θj,輸出=
3) 向后傳播誤差
計算各層每個單元的誤差。
輸出層單元j,誤差:
Oj是單元j的實際輸出,而Tj是j的真正輸出。
隱藏層單元j,誤差:
wjk是由j到下一層中單元k的連接的權(quán),Errk是單元k的誤差
更新 權(quán) 和 偏差 ,以反映傳播的誤差。
權(quán)由下式更新:
其中,△wij是權(quán)wij的改變。l是學習率,通常取0和1之間的值。
偏置由下式更新:
其中,△θj是偏置θj的改變。
Example
人類視覺原理:
深度學習的許多研究成果,離不開對大腦認知原理的研究,尤其是視覺原理的研究。1981 年的諾貝爾醫(yī)學獎,頒發(fā)給了 David Hubel(出生于加拿大的美國神經(jīng)生物學家) 和Torsten Wiesel,以及Roger Sperry。前兩位的主要貢獻,是“發(fā)現(xiàn)了視覺系統(tǒng)的信息處理”, 可視皮層是分級的 。
人類的視覺原理如下:從原始信號攝入開始(瞳孔攝入像素Pixels),接著做初步處理(大腦皮層某些細胞發(fā)現(xiàn)邊緣和方向),然后抽象(大腦判定,眼前的物體的形狀,是圓形的),然后進一步抽象(大腦進一步判定該物體是只氣球)。
對于不同的物體,人類視覺也是通過這樣逐層分級,來進行認知的:
在最底層特征基本上是類似的,就是各種邊緣,越往上,越能提取出此類物體的一些特征(輪子、眼睛、軀干等),到最上層,不同的高級特征最終組合成相應的圖像,從而能夠讓人類準確的區(qū)分不同的物體。
可以很自然的想到:可以不可以模仿人類大腦的這個特點,構(gòu)造多層的神經(jīng)網(wǎng)絡,較低層的識別初級的圖像特征,若干底層特征組成更上一層特征,最終通過多個層級的組合,最終在頂層做出分類呢?答案是肯定的,這也是許多深度學習算法(包括CNN)的靈感來源。
卷積神經(jīng)網(wǎng)絡是一種多層神經(jīng)網(wǎng)絡,擅長處理圖像特別是大圖像的相關(guān)機器學習問題。卷積網(wǎng)絡通過一系列方法,成功將數(shù)據(jù)量龐大的圖像識別問題不斷降維,最終使其能夠被訓練。
CNN最早由Yann LeCun提出并應用在手寫字體識別上。LeCun提出的網(wǎng)絡稱為LeNet,其網(wǎng)絡結(jié)構(gòu)如下:
這是一個最典型的卷積網(wǎng)絡,由 卷積層、池化層、全連接層 組成。其中卷積層與池化層配合,組成多個卷積組,逐層提取特征,最終通過若干個全連接層完成分類。
CNN通過卷積來模擬特征區(qū)分,并且通過卷積的權(quán)值共享及池化,來降低網(wǎng)絡參數(shù)的數(shù)量級,最后通過傳統(tǒng)神經(jīng)網(wǎng)絡完成分類等任務。
降低參數(shù)量級:如果使用傳統(tǒng)神經(jīng)網(wǎng)絡方式,對一張圖片進行分類,那么,把圖片的每個像素都連接到隱藏層節(jié)點上,對于一張1000x1000像素的圖片,如果有1M隱藏層單元,一共有10^12個參數(shù),這顯然是不能接受的。
但是在CNN里,可以大大減少參數(shù)個數(shù),基于以下兩個假設(shè):
1)最底層特征都是局部性的,也就是說,用10x10這樣大小的過濾器就能表示邊緣等底層特征
2)圖像上不同小片段,以及不同圖像上的小片段的特征是類似的,也就是說,能用同樣的一組分類器來描述各種各樣不同的圖像
基于以上兩個假設(shè),就能把第一層網(wǎng)絡結(jié)構(gòu)簡化
用100個10x10的小過濾器,就能夠描述整幅圖片上的底層特征。
卷積運算的定義如下圖所示:
如上圖所示,一個5x5的圖像,用一個3x3的 卷積核 :
101
010
101
來對圖像進行卷積操作(可以理解為有一個滑動窗口,把卷積核與對應的圖像像素做乘積然后求和),得到了3x3的卷積結(jié)果。
這個過程可以理解為使用一個過濾器(卷積核)來過濾圖像的各個小區(qū)域,從而得到這些小區(qū)域的特征值。在實際訓練過程中, 卷積核的值是在學習過程中學到的。
在具體應用中,往往有多個卷積核,可以認為, 每個卷積核代表了一種圖像模式 ,如果某個圖像塊與此卷積核卷積出的值大,則認為此圖像塊十分接近于此卷積核。如果設(shè)計了6個卷積核,可以理解為這個圖像上有6種底層紋理模式,也就是用6種基礎(chǔ)模式就能描繪出一副圖像。以下就是24種不同的卷積核的示例:
池化 的過程如下圖所示:
可以看到,原始圖片是20x20的,對其進行采樣,采樣窗口為10x10,最終將其采樣成為一個2x2大小的特征圖。
之所以這么做,是因為即使做完了卷積,圖像仍然很大(因為卷積核比較小),所以為了降低數(shù)據(jù)維度,就進行采樣。
即使減少了許多數(shù)據(jù),特征的統(tǒng)計屬性仍能夠描述圖像,而且由于降低了數(shù)據(jù)維度,有效地避免了過擬合。
在實際應用中,分為最大值采樣(Max-Pooling)與平均值采樣(Mean-Pooling)。
LeNet網(wǎng)絡結(jié)構(gòu):
注意,上圖中S2與C3的連接方式并不是全連接,而是部分連接。最后,通過全連接層C5、F6得到10個輸出,對應10個數(shù)字的概率。
卷積神經(jīng)網(wǎng)絡的訓練過程與傳統(tǒng)神經(jīng)網(wǎng)絡類似,也是參照了反向傳播算法
第一階段,向前傳播階段:
a)從樣本集中取一個樣本(X,Yp),將X輸入網(wǎng)絡;
b)計算相應的實際輸出Op
第二階段,向后傳播階段
a)計算實際輸出Op與相應的理想輸出Yp的差;
b)按極小化誤差的方法反向傳播調(diào)整權(quán)矩陣。
二、神經(jīng)網(wǎng)絡(Neural Network)
(1)結(jié)構(gòu):許多樹突(dendrite)用于輸入,一個軸突 (axon)用于輸出。
(2)特性:興奮性和傳導性。興奮性是指當信號量超過某個閾值時,細胞體就會被激活,產(chǎn)生電脈沖。傳導性是指電脈沖沿著軸突并通過突觸傳遞到其它神經(jīng)元。
(3)有兩種狀態(tài)的機器:激活時為“是”,不激活時為“否”。神經(jīng)細胞的狀態(tài)取決于從其他神經(jīng)細胞接收到的信號量,以及突觸的性質(zhì)(抑制或加強)。
(1)神經(jīng)元——不重要
① 神經(jīng)元是包含權(quán)重和偏置項的 函數(shù) :接收數(shù)據(jù)后,執(zhí)行一些計算,然后使用激活函數(shù)將數(shù)據(jù)限制在一個范圍內(nèi)(多數(shù)情況下)。
② 單個神經(jīng)元:線性可分的情況下,本質(zhì)是一條直線, ,這條直線將數(shù)據(jù)劃分為兩類。而線性分類器本身就是一個單層神經(jīng)網(wǎng)絡。
③ 神經(jīng)網(wǎng)絡:非線性可分的情況下,神經(jīng)網(wǎng)絡通過多個隱層的方法來實現(xiàn)非線性的函數(shù)。
(2)權(quán)重/參數(shù)/連接(Weight)——最重要
每一個連接上都有一個權(quán)重。一個神經(jīng)網(wǎng)絡的訓練算法就是讓權(quán)重的值調(diào)整到最佳,以使得整個網(wǎng)絡的預測效果最好。
(3)偏置項(Bias Units)——必須
① 如果沒有偏置項,所有的函數(shù)都會經(jīng)過原點。
② 正則化偏置會導致欠擬合:若對偏置正則化,會導致激活變得更加簡單,偏差就會上升,學習的能力就會下降。
③ 偏置的大小度量了神經(jīng)元產(chǎn)生激勵(激活)的難易程度。
(1)定義:也稱為轉(zhuǎn)換函數(shù),是一種將輸入 (input) 轉(zhuǎn)成輸出 (output) 的函數(shù)。
(2)作用:一般直線擬合的精確度要比曲線差很多,引入激活函數(shù)能給神經(jīng)網(wǎng)絡 增加一些非線性 的特性。
(3)性質(zhì):
① 非線性:導數(shù)不是常數(shù),否則就退化成直線。對于一些畫一條直線仍然無法分開的問題,非線性可以把直線變彎,就能包羅萬象;
② 可微性:當優(yōu)化方法是基于梯度的時候,處處可導為后向傳播算法提供了核心條件;
③ 輸出范圍:一般限定在[0,1],使得神經(jīng)元對一些比較大的輸入會比較穩(wěn)定;
④ 非飽和性:飽和就是指,當輸入比較大的時候輸出幾乎沒變化,會導致梯度消失;
⑤ 單調(diào)性:導數(shù)符號不變,輸出不會上躥下跳,讓神經(jīng)網(wǎng)絡訓練容易收斂。
(1)線性函數(shù) (linear function)—— purelin()
(2)符號函數(shù) (sign function)—— hardlim()
① 如果z值高于閾值,則激活設(shè)置為1或yes,神經(jīng)元將被激活。
② 如果z值低于閾值,則激活設(shè)置為0或no,神經(jīng)元不會被激活。
(3)對率函數(shù) (sigmoid function)—— logsig()
① 優(yōu)點:光滑S型曲線連續(xù)可導,函數(shù)閾值有上限。
② 缺點:❶ 函數(shù)飽和使梯度消失,兩端梯度幾乎為0,更新困難,做不深;
❷ 輸出不是0中心,將影響梯度下降的運作,收斂異常慢;
❸ 冪運算相對來講比較耗時
(4)雙曲正切函數(shù)(hyperbolic tangent function)—— tansig()
① 優(yōu)點:取值范圍0中心化,防止了梯度偏差
② 缺點:梯度消失現(xiàn)象依然存在,但相對于sigmoid函數(shù)問題較輕
(5)整流線性單元 ReLU 函數(shù)(rectified linear unit)
① 優(yōu)點:❶ 分段線性函數(shù),它的非線性性很弱,因此網(wǎng)絡做得很深;
❷ 由于它的線性、非飽和性, 對于隨機梯度下降的收斂有巨大的加速作用;
② 缺點:❶ 當x<0,梯度都變成0,參數(shù)無法更新,也導致了數(shù)據(jù)多樣化的丟失;
❷ 輸出不是0中心
(6)滲漏型整流線性單元激活函數(shù) Leaky ReLU 函數(shù)
① 優(yōu)點:❶ 是為解決“ReLU死亡”問題的嘗試,在計算導數(shù)時允許較小的梯度;
❷ 非飽和的公式,不包含指數(shù)運算,計算速度快。
② 缺點:❶ 無法避免梯度爆炸問題; (沒有體現(xiàn)優(yōu)于ReLU)
❷ 神經(jīng)網(wǎng)絡不學習 α 值。
(7)指數(shù)線性單元 ELU (Exponential Linear Units)
① 優(yōu)點:❶ 能避免“死亡 ReLU” 問題;
❷ 能得到負值輸出,這能幫助網(wǎng)絡向正確的方向推動權(quán)重和偏置變化;
❸ 在計算梯度時能得到激活,而不是讓它們等于 0。
② 缺點:❶ 由于包含指數(shù)運算,所以計算時間更長;
❷ 無法避免梯度爆炸問題; (沒有體現(xiàn)優(yōu)于ReLU)
❸ 神經(jīng)網(wǎng)絡不學習 α 值。
(8)Maxout(對 ReLU 和 Leaky ReLU的一般化歸納)
① 優(yōu)點:❶ 擁有ReLU的所有優(yōu)點(線性和不飽和)
❷ 沒有ReLU的缺點(死亡的ReLU單元)
❸ 可以擬合任意凸函數(shù)
② 缺點 :參數(shù)數(shù)量增加了一倍。難訓練,容易過擬合
(9)Swish
① 優(yōu)點:❶ 在負半軸也有一定的不飽和區(qū),參數(shù)的利用率更大
❷ 無上界有下界、平滑、非單調(diào)
❸ 在深層模型上的效果優(yōu)于 ReLU
每個層都包含一定數(shù)量的單元(units)。增加層可增加神經(jīng)網(wǎng)絡輸出的非線性。
(1)輸入層:就是接收原始數(shù)據(jù),然后往隱層送
(2)輸出層:神經(jīng)網(wǎng)絡的決策輸出
(3)隱藏層:神經(jīng)網(wǎng)絡的關(guān)鍵。把前一層的向量變成新的向量,讓數(shù)據(jù)變得線性可分。
(1)結(jié)構(gòu):僅包含輸入層和輸出層,直接相連。
(2)作用:僅能表示 線性可分 函數(shù)或決策,且一定可以在有限的迭代次數(shù)中收斂。
(3)局限:可以建立與門、或門、非門等,但無法建立更為復雜的異或門(XOR),即兩個輸入相同時輸出1,否則輸出0。 (“AI winter”)
(1)目的:擬合某個函數(shù) (兩層神經(jīng)網(wǎng)絡可以逼近任意連續(xù)函數(shù))
(2)結(jié)構(gòu):包含輸入層、隱藏層和輸出層 ,由于從輸入到輸出的過程中不存在與模型自身的反饋連接,因此被稱為“前饋”。 (層與層之間全連接)
(3)作用: 非線性 分類、聚類、預測等,通過訓練,可以學習到數(shù)據(jù)中隱含的知識。
(4)局限:計算復雜、計算速度慢、容易陷入局部最優(yōu)解,通常要將它們與其他網(wǎng)絡結(jié)合形成新的網(wǎng)絡。
(5)前向傳播算法(Forward Propagation)
① 方法:從左至右逐級依賴的算法模型,即網(wǎng)絡如何根據(jù)輸入X得到輸出Y,最終的輸出值和樣本值作比較, 計算出誤差 。
② 目的:完成了一次正反向傳播,就完成了一次神經(jīng)網(wǎng)絡的訓練迭代。通過輸出層的誤差,快速求解對每個ω、b的偏導,利用梯度下降法,使Loss越來越小。
② 局限:為使最終的誤差達到最小,要不斷修改參數(shù)值,但神經(jīng)網(wǎng)絡的每條連接線上都有不同權(quán)重參數(shù),修改這些參數(shù)變得棘手。
(6)誤差反向傳播(Back Propagation)
① 原理:梯度下降法求局部極值
② 方法:從后往前,從輸出層開始計算 L 對當前層的微分,獲得各層的誤差信號,此誤差信號即作為修正單元權(quán)值的依據(jù)。計算結(jié)束以后,所要的兩個參數(shù)矩陣的 梯度 就都有了。
③ 局限:如果激活函數(shù)是飽和的,帶來的缺陷就是系統(tǒng)迭代更新變慢,系統(tǒng)收斂就慢,當然這是可以有辦法彌補的,一種方法是使用 交叉熵函數(shù) 作為損失函數(shù)。
(1)原理:隨著網(wǎng)絡的層數(shù)增加,每一層對于前一層次的抽象表示更深入。在神經(jīng)網(wǎng)絡中,每一層神經(jīng)元學習到的是前一層神經(jīng)元值的更抽象的表示。通過抽取更抽象的特征來對事物進行區(qū)分,從而獲得更好的區(qū)分與分類能力。
(2)方法:ReLU函數(shù)在訓練多層神經(jīng)網(wǎng)絡時,更容易收斂,并且預測性能更好。
(3)優(yōu)點:① 易于構(gòu)建,表達能力強,基本單元便可擴展為復雜的非線性函數(shù)
② 并行性號,有利于在分布是系統(tǒng)上應用
(4)局限:① 優(yōu)化算法只能獲得局部極值,性能與初始值相關(guān)
② 調(diào)參理論性缺乏
③ 不可解釋,與實際任務關(guān)聯(lián)性模糊
(1)原理:由手工設(shè)計卷積核變成自動學習卷積核
(2)卷積(Convolutional layer): 輸入與卷積核相乘再累加 (內(nèi)積、加權(quán)疊加)
① 公式:
② 目的:提取輸入的不同特征,得到維度很大的 特征圖(feature map)
③ 卷積核:需要訓練的參數(shù)。一般為奇數(shù)維,有中心像素點,便于定位卷積核
④ 特點:局部感知、參數(shù)變少、權(quán)重共享、分層提取
(3)池化(Pooling Layer):用更高層的抽象表達來表示主要特征,又稱“降采樣”
① 分類: 最大 (出現(xiàn)與否)、平均(保留整體)、隨機(避免過擬合)
② 目的:降維,不需要訓練參數(shù),得到新的、維度較小的特征
(4)步長(stride):若假設(shè)輸入大小是n∗n,卷積核的大小是f∗f,步長是s,則最后的feature map的大小為o∗o,其中
(5)填充(zero-padding)
① Full模式:即從卷積核(fileter)和輸入剛相交開始做卷積,沒有元素的部分做補0操作。
② Valid模式:卷積核和輸入完全相交開始做卷積,這種模式不需要補0。
③ Same模式:當卷積核的中心C和輸入開始相交時做卷積。沒有元素的部分做補0操作。
(7)激活函數(shù):加入非線性特征
(8)全連接層(Fully-connected layer)
如果說卷積層、池化層和激活函數(shù)層等是將原始數(shù)據(jù)映射到隱層特征空間(決定計算速度),全連接層則起到將學到的“分布式特征表示”映射到樣本標記空間的作用(決定參數(shù)個數(shù))。
參考:
[1] 神經(jīng)網(wǎng)絡(入門最詳細)_ruthy的博客-CSDN博客_神經(jīng)網(wǎng)絡算法入門
[2] 神經(jīng)網(wǎng)絡(容易被忽視的基礎(chǔ)知識) - Evan的文章 - 知乎
[3] 人工神經(jīng)網(wǎng)絡——王的機器
[4] 如何簡單形象又有趣地講解神經(jīng)網(wǎng)絡是什么? - 舒小曼的回答 - 知乎
[5] 神經(jīng)網(wǎng)絡15分鐘入門!足夠通俗易懂了吧 - Mr.括號的文章 - 知乎
[6] 神經(jīng)網(wǎng)絡——最易懂最清晰的一篇文章_illikang的博客-CSDN博客_神經(jīng)網(wǎng)絡
[7] 直覺化深度學習教程——什么是前向傳播——CSDN
[8] “反向傳播算法”過程及公式推導(超直觀好懂的Backpropagation)_aift的專欄-CSDN
[9] 卷積、反卷積、池化、反池化——CSDN
[10] 浙大機器學習課程- bilibili.com
三、神經(jīng)網(wǎng)絡分類問題
神經(jīng)網(wǎng)絡是新技術(shù)領(lǐng)域中的一個時尚詞匯。很多人聽過這個詞,但很少人真正明白它是什么。本文的目的是介紹所有關(guān)于神經(jīng)網(wǎng)絡的基本包括它的功能、一般結(jié)構(gòu)、相關(guān)術(shù)語、類型及其應用。
“神經(jīng)網(wǎng)絡”這個詞實際是來自于生物學,而我們所指的神經(jīng)網(wǎng)絡正確的名稱應該是“人工神經(jīng)網(wǎng)絡(ANNs)”。在本文,我會同時使用這兩個互換的術(shù)語。
一個真正的神經(jīng)網(wǎng)絡是由數(shù)個至數(shù)十億個被稱為神經(jīng)元的細胞(組成我們大腦的微小細胞)所組成,它們以不同方式連接而型成網(wǎng)絡。人工神經(jīng)網(wǎng)絡就是嘗試模擬這種生物學上的體系結(jié)構(gòu)及其操作。在這里有一個難題:我們對生物學上的神經(jīng)網(wǎng)絡知道的不多!因此,不同類型之間的神經(jīng)網(wǎng)絡體系結(jié)構(gòu)有很大的不同,我們所知道的只是神經(jīng)元基本的結(jié)構(gòu)。
The neuron
--------------------------------------------------------------------------------
雖然已經(jīng)確認在我們的大腦中有大約50至500種不同的神經(jīng)元,但它們大部份都是基于基本神經(jīng)元的特別細胞?;旧窠?jīng)元包含有synapses、soma、axon及dendrites。Synapses負責神經(jīng)元之間的連接,它們不是直接物理上連接的,而是它們之間有一個很小的空隙允許電子訊號從一個神經(jīng)元跳到另一個神經(jīng)元。然后這些電子訊號會交給soma處理及以其內(nèi)部電子訊號將處理結(jié)果傳遞給axon。而axon會將這些訊號分發(fā)給dendrites。最后,dendrites帶著這些訊號再交給其它的synapses,再繼續(xù)下一個循環(huán)。
如同生物學上的基本神經(jīng)元,人工的神經(jīng)網(wǎng)絡也有基本的神經(jīng)元。每個神經(jīng)元有特定數(shù)量的輸入,也會為每個神經(jīng)元設(shè)定權(quán)重(weight)。權(quán)重是對所輸入的資料的重要性的一個指標。然后,神經(jīng)元會計算出權(quán)重合計值(net value),而權(quán)重合計值就是將所有輸入乘以它們的權(quán)重的合計。每個神經(jīng)元都有它們各自的臨界值(threshold),而當權(quán)重合計值大于臨界值時,神經(jīng)元會輸出1。相反,則輸出0。最后,輸出會被傳送給與該神經(jīng)元連接的其它神經(jīng)元繼續(xù)剩余的計算。
Learning
--------------------------------------------------------------------------------
正如上述所寫,問題的核心是權(quán)重及臨界值是該如何設(shè)定的呢?世界上有很多不同的訓練方式,就如網(wǎng)絡類型一樣多。但有些比較出名的包括back-propagation, delta rule及Kohonen訓練模式。
由于結(jié)構(gòu)體系的不同,訓練的規(guī)則也不相同,但大部份的規(guī)則可以被分為二大類別 - 監(jiān)管的及非監(jiān)管的。監(jiān)管方式的訓練規(guī)則需要“教師”告訴他們特定的輸入應該作出怎樣的輸出。然后訓練規(guī)則會調(diào)整所有需要的權(quán)重值(這是網(wǎng)絡中是非常復雜的),而整個過程會重頭開始直至數(shù)據(jù)可以被網(wǎng)絡正確的分析出來。監(jiān)管方式的訓練模式包括有back-propagation及delta rule。非監(jiān)管方式的規(guī)則無需教師,因為他們所產(chǎn)生的輸出會被進一步評估。
Architecture
--------------------------------------------------------------------------------
在神經(jīng)網(wǎng)絡中,遵守明確的規(guī)則一詞是最“模糊不清”的。因為有太多不同種類的網(wǎng)絡,由簡單的布爾網(wǎng)絡(Perceptrons),至復雜的自我調(diào)整網(wǎng)絡(Kohonen),至熱動態(tài)性網(wǎng)絡模型(Boltzmann machines)!而這些,都遵守一個網(wǎng)絡體系結(jié)構(gòu)的標準。
一個網(wǎng)絡包括有多個神經(jīng)元“層”,輸入層、隱蔽層及輸出層。輸入層負責接收輸入及分發(fā)到隱蔽層(因為用戶看不見這些層,所以見做隱蔽層)。這些隱蔽層負責所需的計算及輸出結(jié)果給輸出層,而用戶則可以看到最終結(jié)果?,F(xiàn)在,為免混淆,不會在這里更深入的探討體系結(jié)構(gòu)這一話題。對于不同神經(jīng)網(wǎng)絡的更多詳細資料可以看Generation5 essays
盡管我們討論過神經(jīng)元、訓練及體系結(jié)構(gòu),但我們還不清楚神經(jīng)網(wǎng)絡實際做些什么。
The Function of ANNs
--------------------------------------------------------------------------------
神經(jīng)網(wǎng)絡被設(shè)計為與圖案一起工作 - 它們可以被分為分類式或聯(lián)想式。分類式網(wǎng)絡可以接受一組數(shù),然后將其分類。例如ONR程序接受一個數(shù)字的影象而輸出這個數(shù)字?;蛘逷PDA32程序接受一個坐標而將它分類成A類或B類(類別是由所提供的訓練決定的)。更多實際用途可以看Applications in the Military中的軍事雷達,該雷達可以分別出車輛或樹。
聯(lián)想模式接受一組數(shù)而輸出另一組。例如HIR程序接受一個‘臟’圖像而輸出一個它所學過而最接近的一個圖像。聯(lián)想模式更可應用于復雜的應用程序,如簽名、面部、指紋識別等。
The Ups and Downs of Neural Networks
--------------------------------------------------------------------------------
神經(jīng)網(wǎng)絡在這個領(lǐng)域中有很多優(yōu)點,使得它越來越流行。它在類型分類/識別方面非常出色。神經(jīng)網(wǎng)絡可以處理例外及不正常的輸入數(shù)據(jù),這對于很多系統(tǒng)都很重要(例如雷達及聲波定位系統(tǒng))。很多神經(jīng)網(wǎng)絡都是模仿生物神經(jīng)網(wǎng)絡的,即是他們仿照大腦的運作方式工作。神經(jīng)網(wǎng)絡也得助于神經(jīng)系統(tǒng)科學的發(fā)展,使它可以像人類一樣準確地辨別物件而有電腦的速度!前途是光明的,但現(xiàn)在...
是的,神經(jīng)網(wǎng)絡也有些不好的地方。這通常都是因為缺乏足夠強大的硬件。神經(jīng)網(wǎng)絡的力量源自于以并行方式處理資訊,即是同時處理多項數(shù)據(jù)。因此,要一個串行的機器模擬并行處理是非常耗時的。
神經(jīng)網(wǎng)絡的另一個問題是對某一個問題構(gòu)建網(wǎng)絡所定義的條件不足 - 有太多因素需要考慮:訓練的算法、體系結(jié)構(gòu)、每層的神經(jīng)元個數(shù)、有多少層、數(shù)據(jù)的表現(xiàn)等,還有其它更多因素。因此,隨著時間越來越重要,大部份公司不可能負擔重復的開發(fā)神經(jīng)網(wǎng)絡去有效地解決問題。
Conclusion
--------------------------------------------------------------------------------
希望您可以通過本文對神經(jīng)網(wǎng)絡有基本的認識。Generation5現(xiàn)在有很多關(guān)于神經(jīng)網(wǎng)絡的資料可以查閱,包括文章及程序。我們有Hopfield、perceptrons(2個)網(wǎng)絡的例子,及一些back-propagation個案研究。
Glossary
--------------------------------------------------------------------------------
NN 神經(jīng)網(wǎng)絡,Neural Network
ANNs 人工神經(jīng)網(wǎng)絡,Artificial Neural Networks
neurons 神經(jīng)元
synapses 神經(jīng)鍵
self-organizing networks 自我調(diào)整網(wǎng)絡
networks modelling thermodynamic properties 熱動態(tài)性網(wǎng)絡模型
四、一文詳解圖神經(jīng)網(wǎng)絡(二)
《The Graph Neural Network Model》
圖領(lǐng)域的應用主要可以分為兩種類型 :專注于 圖的應用(graph-focused) 和 專注于節(jié)點的應用(node-focused) 。對于graph-focused的應用,函數(shù) 和具體的節(jié)點無關(guān),(即 ),訓練時,在一個圖的數(shù)據(jù)集中進行分類或回歸。對于node-focused的應用, 函數(shù)依賴于具體的節(jié)點 ,即
在一個圖-節(jié)點對的集合 , 表示圖的集合, 表示節(jié)點集合,圖領(lǐng)域問題可以表示成一個有如下數(shù)據(jù)集的監(jiān)督學習框架:
其中, 表示集合 中的第 個節(jié)點, 表示節(jié)點 的期望目標(即標簽)。節(jié)點 的狀態(tài)用 表示,該節(jié)點的輸出用 表示, 為 local transition function , 為 local output function ,那么 和 的更新方式如下:
其中, 分別表示節(jié)點 的特征向量、與節(jié)點 相連的邊的特征向量、節(jié)點 鄰居節(jié)點的狀態(tài)向量、節(jié)點 鄰居節(jié)點的特征向量。 分別為所有的狀態(tài)、所有的輸出、所有的特征向量、所有節(jié)點的特征向量的疊加起來的向量,那么上面函數(shù)可以寫成如下形式:
其中, 為 global transition function , 為 global output function ,分別是 和 的疊加形式
根據(jù) Banach的不動點理論 ,假設(shè) 是一個壓縮映射函數(shù),那么式子有唯一不動點解,而且可以通過迭代方式逼近該不動點
其中, 表示 在第 個迭代時刻的值,對于任意初值,迭代的誤差是以指數(shù)速度減小的,使用迭代的形式寫出狀態(tài)和輸出的更新表達式為:
GNN的學習就是估計參數(shù) ,使得函數(shù) 能夠近似估計訓練集
其中, 表示在圖 中監(jiān)督學習的節(jié)點,對于graph-focused的任務,需要增加一個特殊的節(jié)點,該節(jié)點用來作為目標節(jié)點,這樣, graph-focused 任務和 node-focused 任務都能統(tǒng)一到節(jié)點預測任務上,學習目標可以是最小化如下二次損失函數(shù)
優(yōu)化算法基于隨機梯度下降的策略,優(yōu)化步驟按照如下幾步進行:
在GNN中,函數(shù) 不需要滿足特定的約束,直接使用多層前饋神經(jīng)網(wǎng)絡,對于函數(shù) ,則需要著重考慮,因為 需要滿足壓縮映射的條件,而且與不動點計算相關(guān)。下面提出兩種神經(jīng)網(wǎng)絡和不同的策略來滿足這些需求
對于節(jié)點n nn狀態(tài)的計算,將 改成如下形式
相當于是對節(jié)點 的每一個鄰居節(jié)點使用 ,并將得到的值求和來作為節(jié)點 的狀態(tài),由此,對上式中的函數(shù) 按照如下方式實現(xiàn):
其中,向量 ,矩陣 定義為兩個前向神經(jīng)網(wǎng)絡的輸出。更確切地說,令產(chǎn)生矩陣 的網(wǎng)絡為transition network,產(chǎn)生向量 的網(wǎng)絡為forcing network
其中, , , 表示將 維的向量整理(reshape)成 的矩陣,也就是說,將transition network的輸出整理成方形矩陣,然后乘以一個系數(shù)就得到 , 就是forcing network的輸出
在這里,假定 ,這個可以通過設(shè)定transition function的激活函數(shù)來滿足,比如設(shè)定激活函數(shù)為 tanh() 。在這種情況下, , 和 分別是 的塊矩陣形式和 的堆疊形式,可得:
該式表示 對于任意的參數(shù) 是一個壓縮映射,矩陣 的 1-norm 定義為:
在這個結(jié)構(gòu)中, 通過多層前饋網(wǎng)絡實現(xiàn),但是,并不是所有的參數(shù) 都會被使用,因為同樣需要保證 是一個壓縮映射函數(shù),這個可以通過懲罰項來實現(xiàn)
其中,懲罰項 在 時為 ,在 時為0,參數(shù) 定義為希望的 的壓縮系數(shù)
NLP新人,歡迎大家一起交流,互相學習,共同成長~~
以上就是關(guān)于神經(jīng)網(wǎng)絡二分類相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
神經(jīng)網(wǎng)絡控制的缺點(神經(jīng)網(wǎng)絡控制的缺點有哪些)
神經(jīng)網(wǎng)絡和深度神經(jīng)網(wǎng)絡的區(qū)別(卷積神經(jīng)網(wǎng)絡和深度神經(jīng)網(wǎng)絡的區(qū)別)