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