人工神經(jīng)網(wǎng)絡(luò)ANN中的前向傳播和R語(yǔ)言分析學(xué)生成績(jī)數(shù)據(jù)案例
全文鏈接:http://tecdat.cn/?p=19936
在本教程中,您將學(xué)習(xí)如何在R中創(chuàng)建神經(jīng)網(wǎng)絡(luò)模型(點(diǎn)擊文末“閱讀原文”獲取完整代碼數(shù)據(jù))。
視頻
拓端
,贊3
這里考慮人工神經(jīng)網(wǎng)絡(luò)具有一個(gè)隱藏層,兩個(gè)輸入和輸出。
?
?
輸入為 x1 和 x2。
?
兩個(gè)權(quán)重乘以各自的權(quán)重 w1 和 w2。
然后將偏差添加到總和中,并將其稱(chēng)為 z1。
z1 = x1 * w1 + x2 * w2 +b1
?
?
然后應(yīng)用sigmoid的公式。
隱藏層的輸出將成為其右側(cè)下一層的輸入。這等于
sigmoid激活函數(shù)的公式和圖形
隱藏層的第二個(gè)節(jié)點(diǎn)也以這種方式運(yùn)行。
?
x1 和 x2 輸入對(duì)于 H1 和 H2 將具有相同的值。但是,H1和H2的權(quán)重可能不同,也可能相同。而且,偏差也可以不同,即b1和b2可以不同。
乘以各自的權(quán)重w3 和w4。然后將偏差添加到總和中,并將其稱(chēng)為z2。
然后應(yīng)用sigmoid的公式。此層的輸出將是
?
然后,我們轉(zhuǎn)到下一層。
(輸出來(lái)自 H1。我們稱(chēng)之為 z1。輸出來(lái)自 H2,我們稱(chēng)之為 z2。它們進(jìn)入O1。權(quán)重像以前一樣乘以相應(yīng)的輸入。
?
?
并且,我們選擇sigmoid激活函數(shù)。因此,O1 的輸出為
?
?
?
這里,y1 = z1 * W5?+ z2 * W6?+ B1
同樣,對(duì)于O2 的輸出,我們?cè)俅慰紤]sigmoid激活函數(shù)。
我們將此過(guò)程稱(chēng)為前向傳播,因?yàn)槲覀兛偸菑淖蟮接?。我們從不倒退?/p>
R語(yǔ)言分析學(xué)生成績(jī)數(shù)據(jù)案例
神經(jīng)網(wǎng)絡(luò)(或人工神經(jīng)網(wǎng)絡(luò))具有通過(guò)樣本進(jìn)行學(xué)習(xí)的能力。人工神經(jīng)網(wǎng)絡(luò)是一種受生物神經(jīng)元系統(tǒng)啟發(fā)的信息處理模型。它由大量高度互連的處理元件(稱(chēng)為神經(jīng)元)組成,以解決問(wèn)題。它遵循非線性路徑,并在整個(gè)節(jié)點(diǎn)中并行處理信息。神經(jīng)網(wǎng)絡(luò)是一個(gè)復(fù)雜的自適應(yīng)系統(tǒng)。自適應(yīng)意味著它可以通過(guò)調(diào)整輸入權(quán)重來(lái)更改其內(nèi)部結(jié)構(gòu)。
相關(guān)視頻
拓端
,贊11
拓端
,贊4
拓端
,贊16
拓端
,贊27
該神經(jīng)網(wǎng)絡(luò)旨在解決人類(lèi)容易遇到的問(wèn)題和機(jī)器難以解決的問(wèn)題,例如識(shí)別貓和狗的圖片,識(shí)別編號(hào)的圖片。這些問(wèn)題通常稱(chēng)為模式識(shí)別。它的應(yīng)用范圍從光學(xué)字符識(shí)別到目標(biāo)檢測(cè)。
本教程將涵蓋以下主題:
神經(jīng)網(wǎng)絡(luò)概論
正向傳播和反向傳播
激活函數(shù)
R中神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)
案例
利弊
結(jié)論
神經(jīng)網(wǎng)絡(luò)概論
神經(jīng)網(wǎng)絡(luò)是受人腦啟發(fā)執(zhí)行特定任務(wù)的算法。它是一組連接的輸入/輸出單元,其中每個(gè)連接都具有與之關(guān)聯(lián)的權(quán)重。在學(xué)習(xí)階段,網(wǎng)絡(luò)通過(guò)調(diào)整權(quán)重進(jìn)行學(xué)習(xí),來(lái)預(yù)測(cè)給定輸入的正確類(lèi)別標(biāo)簽。
人腦由數(shù)十億個(gè)處理信息的神經(jīng)細(xì)胞組成。每個(gè)神經(jīng)細(xì)胞都認(rèn)為是一個(gè)簡(jiǎn)單的處理系統(tǒng)。被稱(chēng)為生物神經(jīng)網(wǎng)絡(luò)的神經(jīng)元通過(guò)電信號(hào)傳輸信息。這種并行的交互系統(tǒng)使大腦能夠思考和處理信息。一個(gè)神經(jīng)元的樹(shù)突接收來(lái)自另一個(gè)神經(jīng)元的輸入信號(hào),并根據(jù)這些輸入將輸出響應(yīng)到某個(gè)其他神經(jīng)元的軸突。
樹(shù)突接收來(lái)自其他神經(jīng)元的信號(hào)。單元體將所有輸入信號(hào)求和以生成輸出。當(dāng)總和達(dá)到閾值時(shí)通過(guò)軸突輸出。突觸是神經(jīng)元相互作用的一個(gè)點(diǎn)。它將電化學(xué)信號(hào)傳輸?shù)搅硪粋€(gè)神經(jīng)元。
x1,x2 .... xn是輸入變量。w1,w2 .... wn是各個(gè)輸入的權(quán)重。b是偏差,將其與加權(quán)輸入相加即可形成輸入。偏差和權(quán)重都是神經(jīng)元的可調(diào)整參數(shù)。使用一些學(xué)習(xí)規(guī)則來(lái)調(diào)整參數(shù)。神經(jīng)元的輸出范圍可以從-inf到+ inf。神經(jīng)元不知道邊界。因此,我們需要神經(jīng)元的輸入和輸出之間的映射機(jī)制。將輸入映射到輸出的這種機(jī)制稱(chēng)為激活函數(shù)。
前饋和反饋人工神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)主要有兩種類(lèi)型:前饋和反饋人工神經(jīng)網(wǎng)絡(luò)。前饋神經(jīng)網(wǎng)絡(luò)是非遞歸網(wǎng)絡(luò)。該層中的神經(jīng)元僅與下一層中的神經(jīng)元相連,并且它們不形成循環(huán)。在前饋中,信號(hào)僅在一個(gè)方向上流向輸出層。
反饋神經(jīng)網(wǎng)絡(luò)包含循環(huán)。通過(guò)在網(wǎng)絡(luò)中引入環(huán)路,信號(hào)可以雙向傳播。反饋周期會(huì)導(dǎo)致網(wǎng)絡(luò)行為根據(jù)其輸入隨時(shí)間變化。反饋神經(jīng)網(wǎng)絡(luò)也稱(chēng)為遞歸神經(jīng)網(wǎng)絡(luò)。
激活函數(shù)
激活函數(shù)定義神經(jīng)元的輸出。激活函數(shù)使神經(jīng)網(wǎng)絡(luò)具有非線性和可表達(dá)性。有許多激活函數(shù):
識(shí)別函數(shù)?通過(guò)激活函數(shù) Identity,節(jié)點(diǎn)的輸入等于輸出。它完美擬合于潛在行為是線性(與線性回歸相似)的任務(wù)。當(dāng)存在非線性,單獨(dú)使用該激活函數(shù)是不夠的,但它依然可以在最終輸出節(jié)點(diǎn)上作為激活函數(shù)用于回歸任務(wù)。。
在?二元階梯函數(shù)(Binary Step Function)中,如果Y的值高于某個(gè)特定值(稱(chēng)為閾值),則輸出為T(mén)rue(或已激活),如果小于閾值,則輸出為false(或未激活)。這在分類(lèi)器中非常有用。
S形函數(shù)?稱(chēng)為S形函數(shù)。邏輯和雙曲正切函數(shù)是常用的S型函數(shù)。有兩種:
Sigmoid函數(shù)?是一種邏輯函數(shù),其中輸出值為二進(jìn)制或從0到1變化。
tanh函數(shù)?是一種邏輯函數(shù),其輸出值在-1到1之間變化。也稱(chēng)為雙曲正切函數(shù)或tanh。
ReLU函數(shù)又稱(chēng)為修正線性單元(Rectified Linear Unit),是一種分段線性函數(shù),其彌補(bǔ)了sigmoid函數(shù)以及tanh函數(shù)的梯度消失問(wèn)題。它是最常用的激活函數(shù)。對(duì)于x的負(fù)值,它輸出0。
在R中實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)
創(chuàng)建訓(xùn)練數(shù)據(jù)集
我們創(chuàng)建數(shù)據(jù)集。在這里,您需要數(shù)據(jù)中的兩種屬性或列:特征和標(biāo)簽。在上面顯示的表格中,您可以查看學(xué)生的專(zhuān)業(yè)知識(shí),溝通技能得分和學(xué)生成績(jī)。因此,前兩列(專(zhuān)業(yè)知識(shí)得分和溝通技能得分)是特征,第三列(學(xué)生成績(jī))是二進(jìn)制標(biāo)簽。
#創(chuàng)建訓(xùn)練數(shù)據(jù)集
#?在這里,把多個(gè)列或特征組合成一組數(shù)據(jù)
test=data.frame(專(zhuān)業(yè)知識(shí),溝通技能得分)讓我們構(gòu)建神經(jīng)網(wǎng)絡(luò)分類(lèi)器模型。
首先,導(dǎo)入神經(jīng)網(wǎng)絡(luò)庫(kù),并通過(guò)傳遞標(biāo)簽和特征的參數(shù)集,數(shù)據(jù)集,隱藏層中神經(jīng)元的數(shù)量以及誤差計(jì)算來(lái)創(chuàng)建神經(jīng)網(wǎng)絡(luò)分類(lèi)器模型。
``````
#?擬合神經(jīng)網(wǎng)絡(luò)
nn(成績(jī)~專(zhuān)業(yè)知識(shí)+溝通技能得分,?hidden=3,act.fct?=?"logistic",
????????????????linear.output?=?FALSE)
這里得到模型的因變量、自變量、損失_函數(shù)、_激活函數(shù)、權(quán)重、結(jié)果矩陣(包含達(dá)到的閾值,誤差,AIC和BIC以及每次重復(fù)的權(quán)重的矩陣)等信息:
$model.list
$model.list$response
\[1\]?"成績(jī)"
$model.list$variables
\[1\]?"專(zhuān)業(yè)知識(shí)"?????"溝通技能得分"
$err.fct
function?(x,?y)?
{
????1/2?*?(y?-?x)^2
}
$act.fct
function?(x)?
{
????1/(1?+?exp(-x))
}
$net.result
$net.result\[\[1\]\]
????????????\[,1\]
\[1,\]?0.980052980
\[2,\]?0.001292503
\[3,\]?0.032268860
\[4,\]?0.032437961
\[5,\]?0.963346989
\[6,\]?0.977629865
$weights
$weights\[\[1\]\]
$weights\[\[1\]\]\[\[1\]\]
???????????\[,1\]????????\[,2\]???????\[,3\]
\[1,\]??3.0583343??3.80801996?-0.9962571
\[2,\]??1.2436662?-0.05886708??1.7870905
\[3,\]?-0.5240347?-0.03676600??1.8098647
$weights\[\[1\]\]\[\[2\]\]
???????????\[,1\]
\[1,\]???4.084756
\[2,\]??-3.807969
\[3,\]?-11.531322
\[4,\]???3.691784
$generalized.weights
$generalized.weights\[\[1\]\]
????????????\[,1\]???????\[,2\]
\[1,\]??0.15159066?0.09467744
\[2,\]??0.01719274?0.04320642
\[3,\]??0.15657354?0.09778953
\[4,\]?-0.46017408?0.34621212
\[5,\]??0.03868753?0.02416267
\[6,\]?-0.54248384?0.37453006
$startweights
$startweights\[\[1\]\]
$startweights\[\[1\]\]\[\[1\]\]
???????????\[,1\]????????\[,2\]???????\[,3\]
\[1,\]??0.1013318?-1.11757311?-0.9962571
\[2,\]??0.8583704?-0.15529112??1.7870905
\[3,\]?-0.8789741??0.05536849??1.8098647
$startweights\[\[1\]\]\[\[2\]\]
???????????\[,1\]
\[1,\]?-0.1283200
\[2,\]?-1.0932526
\[3,\]?-1.0077311
\[4,\]?-0.5212917
$result.matrix
??????????????????????????????????\[,1\]
error??????????????????????0.002168460
reached.threshold??????????0.007872764
steps????????????????????145.000000000
Intercept.to.1layhid1??????3.058334288
專(zhuān)業(yè)知識(shí).to.1layhid1???????1.243666180
溝通技能得分.to.1layhid1??-0.524034687
Intercept.to.1layhid2??????3.808019964
專(zhuān)業(yè)知識(shí).to.1layhid2??????-0.058867076
溝通技能得分.to.1layhid2??-0.036766001
Intercept.to.1layhid3?????-0.996257068
專(zhuān)業(yè)知識(shí).to.1layhid3???????1.787090472
溝通技能得分.to.1layhid3???1.809864672
Intercept.to.成績(jī)??????????4.084755522
1layhid1.to.成績(jī)??????????-3.807969087
1layhid2.to.成績(jī)?????????-11.531321534
1layhid3.to.成績(jī)???????????3.691783805
繪制神經(jīng)網(wǎng)絡(luò)
讓我們繪制您的神經(jīng)網(wǎng)絡(luò)模型。
#?繪圖神經(jīng)網(wǎng)絡(luò)
plot(nn)
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語(yǔ)言實(shí)現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進(jìn)行回歸數(shù)據(jù)分析
左右滑動(dòng)查看更多
01
02
03
04
創(chuàng)建測(cè)試數(shù)據(jù)集
創(chuàng)建測(cè)試數(shù)據(jù)集:專(zhuān)業(yè)知識(shí)得分和溝通技能得分
#?創(chuàng)建測(cè)試集
test=data.frame(專(zhuān)業(yè)知識(shí),溝通技能得分)
預(yù)測(cè)測(cè)試集的結(jié)果
使用計(jì)算函數(shù)預(yù)測(cè)測(cè)試數(shù)據(jù)的概率得分。
##?使用神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)
Pred$result0.9928202080
0.3335543925
0.9775153014
現(xiàn)在,將概率轉(zhuǎn)換為二進(jìn)制類(lèi)。
#?將概率轉(zhuǎn)換為設(shè)置閾值0.5的二進(jìn)制類(lèi)別
pred?<-?ifelse(prob>0.5,?1,?0)
pred1
0
1
預(yù)測(cè)結(jié)果為1,0和1。
利弊
神經(jīng)網(wǎng)絡(luò)更靈活,可以用于回歸和分類(lèi)問(wèn)題。神經(jīng)網(wǎng)絡(luò)非常適合具有大量輸入(例如圖像)的非線性數(shù)據(jù)集,可以使用任意數(shù)量的輸入和層,可以并行執(zhí)行工作。
還有更多可供選擇的算法,例如SVM,決策樹(shù)和回歸算法,這些算法簡(jiǎn)單,快速,易于訓(xùn)練并提供更好的性能。神經(jīng)網(wǎng)絡(luò)更多的是黑盒子,需要更多的開(kāi)發(fā)時(shí)間和更多的計(jì)算能力。與其他機(jī)器學(xué)習(xí)算法相比,神經(jīng)網(wǎng)絡(luò)需要更多的數(shù)據(jù)。NN僅可用于數(shù)字輸入和非缺失值數(shù)據(jù)集。一位著名的神經(jīng)網(wǎng)絡(luò)研究人員說(shuō):??“神經(jīng)網(wǎng)絡(luò)是解決任何問(wèn)題的第二好的方法。最好的方法是真正理解問(wèn)題?!?/p>
神經(jīng)網(wǎng)絡(luò)的用途
神經(jīng)網(wǎng)絡(luò)的特性提供了許多應(yīng)用方面,例如:
模式識(shí)別:?神經(jīng)網(wǎng)絡(luò)非常適合模式識(shí)別問(wèn)題,例如面部識(shí)別,物體檢測(cè),指紋識(shí)別等。
異常檢測(cè):?神經(jīng)網(wǎng)絡(luò)擅長(zhǎng)異常檢測(cè),它們可以輕松檢測(cè)出不適合常規(guī)模式的異常模式。
時(shí)間序列預(yù)測(cè):?神經(jīng)網(wǎng)絡(luò)可用于預(yù)測(cè)時(shí)間序列問(wèn)題,例如股票價(jià)格,天氣預(yù)報(bào)。
自然語(yǔ)言處理:?神經(jīng)網(wǎng)絡(luò)在自然語(yǔ)言處理任務(wù)中提供了廣泛的應(yīng)用,例如文本分類(lèi),命名實(shí)體識(shí)別(NER),詞性標(biāo)記,語(yǔ)音識(shí)別和拼寫(xiě)檢查。
點(diǎn)擊文末“閱讀原文”
獲取全文完整代碼數(shù)據(jù)資料。
本文選自《人工神經(jīng)網(wǎng)絡(luò)ANN中的前向傳播和R語(yǔ)言分析學(xué)生成績(jī)數(shù)據(jù)案例》。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
matlab使用長(zhǎng)短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對(duì)序列數(shù)據(jù)進(jìn)行分類(lèi)
Python TensorFlow循環(huán)神經(jīng)網(wǎng)絡(luò)RNN-LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)股票市場(chǎng)價(jià)格時(shí)間序列和MSE評(píng)估準(zhǔn)確性
數(shù)據(jù)分享|PYTHON用KERAS的LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行時(shí)間序列預(yù)測(cè)天然氣價(jià)格例子
Python對(duì)商店數(shù)據(jù)進(jìn)行l(wèi)stm和xgboost銷(xiāo)售量時(shí)間序列建模預(yù)測(cè)分析
Matlab用深度學(xué)習(xí)長(zhǎng)短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對(duì)文本數(shù)據(jù)進(jìn)行分類(lèi)
RNN循環(huán)神經(jīng)網(wǎng)絡(luò) 、LSTM長(zhǎng)短期記憶網(wǎng)絡(luò)實(shí)現(xiàn)時(shí)間序列長(zhǎng)期利率預(yù)測(cè)
結(jié)合新冠疫情COVID-19股票價(jià)格預(yù)測(cè):ARIMA,KNN和神經(jīng)網(wǎng)絡(luò)時(shí)間序列分析
深度學(xué)習(xí):Keras使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類(lèi)分析新聞組數(shù)據(jù)
用PyTorch機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類(lèi)預(yù)測(cè)銀行客戶(hù)流失模型
PYTHON用LSTM長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的參數(shù)優(yōu)化方法預(yù)測(cè)時(shí)間序列洗發(fā)水銷(xiāo)售數(shù)據(jù)
Python用Keras神經(jīng)網(wǎng)絡(luò)序列模型回歸擬合預(yù)測(cè)、準(zhǔn)確度檢查和結(jié)果可視化
Python用LSTM長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)對(duì)不穩(wěn)定降雨量時(shí)間序列進(jìn)行預(yù)測(cè)分析
R語(yǔ)言中的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)時(shí)間序列:多層感知器(MLP)和極限學(xué)習(xí)機(jī)(ELM)數(shù)據(jù)分析報(bào)告
R語(yǔ)言深度學(xué)習(xí):用keras神經(jīng)網(wǎng)絡(luò)回歸模型預(yù)測(cè)時(shí)間序列數(shù)據(jù)
Matlab用深度學(xué)習(xí)長(zhǎng)短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對(duì)文本數(shù)據(jù)進(jìn)行分類(lèi)
R語(yǔ)言KERAS深度學(xué)習(xí)CNN卷積神經(jīng)網(wǎng)絡(luò)分類(lèi)識(shí)別手寫(xiě)數(shù)字圖像數(shù)據(jù)(MNIST)
MATLAB中用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)人體脂肪百分比數(shù)據(jù)
Python中用PyTorch機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類(lèi)預(yù)測(cè)銀行客戶(hù)流失模型
R語(yǔ)言實(shí)現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進(jìn)行回歸數(shù)據(jù)分析
SAS使用鳶尾花(iris)數(shù)據(jù)集訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)(ANN)模型
【視頻】R語(yǔ)言實(shí)現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進(jìn)行回歸數(shù)據(jù)分析
Python使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類(lèi)
R語(yǔ)言用神經(jīng)網(wǎng)絡(luò)改進(jìn)Nelson-Siegel模型擬合收益率曲線分析
R語(yǔ)言基于遞歸神經(jīng)網(wǎng)絡(luò)RNN的溫度時(shí)間序列預(yù)測(cè)
R語(yǔ)言神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)車(chē)輛數(shù)量時(shí)間序列
R語(yǔ)言中的BP神經(jīng)網(wǎng)絡(luò)模型分析學(xué)生成績(jī)
matlab使用長(zhǎng)短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對(duì)序列數(shù)據(jù)進(jìn)行分類(lèi)
R語(yǔ)言實(shí)現(xiàn)擬合神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)和結(jié)果可視化
用R語(yǔ)言實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)股票實(shí)例
使用PYTHON中KERAS的LSTM遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行時(shí)間序列預(yù)測(cè)
python用于NLP的seq2seq模型實(shí)例:用Keras實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯
用于NLP的Python:使用Keras的多標(biāo)簽文本LSTM神經(jīng)網(wǎng)絡(luò)分類(lèi)