最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

拓端tecdat|R語(yǔ)言中的BP神經(jīng)網(wǎng)絡(luò)模型分析學(xué)生成績(jī)

2021-07-10 22:02 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=19936?

原文出處:拓端數(shù)據(jù)部落公眾號(hào)

在本教程中,您將學(xué)習(xí)如何在R中創(chuàng)建神經(jīng)網(wǎng)絡(luò)模型。

神經(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)題。它遵循非線(xià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)。

該神經(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ò)具有非線(xiàn)性和可表達(dá)性。有許多激活函數(shù):

  • 識(shí)別函數(shù)?通過(guò)激活函數(shù) Identity,節(jié)點(diǎn)的輸入等于輸出。它完美擬合于潛在行為是線(xiàn)性(與線(xiàn)性回歸相似)的任務(wù)。當(dāng)存在非線(xiàn)性,單獨(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)為修正線(xiàn)性單元(Rectified Linear Unit),是一種分段線(xiàn)性函數(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)簽。

  1. #創(chuàng)建訓(xùn)練數(shù)據(jù)集

  2. # 在這里,把多個(gè)列或特征組合成一組數(shù)據(jù)

  3. 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)器模型。

  1. # 擬合神經(jīng)網(wǎng)絡(luò)

  2. nn(成績(jī)~專(zhuān)業(yè)知識(shí)+溝通技能得分, hidden=3,act.fct = "logistic",

  3. linear.output = FALSE)

這里得到模型的因變量、自變量、損失函數(shù)、激活函數(shù)、權(quán)重、結(jié)果矩陣(包含達(dá)到的閾值,誤差,AIC和BIC以及每次重復(fù)的權(quán)重的矩陣)等信息:

  1. $model.list

  2. $model.list$response

  3. [1] "成績(jī)"


  4. $model.list$variables

  5. [1] "專(zhuān)業(yè)知識(shí)" ? ? "溝通技能得分"



  6. $err.fct

  7. function (x, y)

  8. {

  9. 1/2 * (y - x)^2

  10. }

  11. $act.fct

  12. function (x)

  13. {

  14. 1/(1 + exp(-x))

  15. }

  16. $net.result

  17. $net.result[[1]]

  18. [,1]

  19. [1,] 0.980052980

  20. [2,] 0.001292503

  21. [3,] 0.032268860

  22. [4,] 0.032437961

  23. [5,] 0.963346989

  24. [6,] 0.977629865



  25. $weights

  26. $weights[[1]]

  27. $weights[[1]][[1]]

  28. [,1] ? ? ? ?[,2] ? ? ? [,3]

  29. [1,] ?3.0583343 ?3.80801996 -0.9962571

  30. [2,] ?1.2436662 -0.05886708 ?1.7870905

  31. [3,] -0.5240347 -0.03676600 ?1.8098647


  32. $weights[[1]][[2]]

  33. [,1]

  34. [1,] ? 4.084756

  35. [2,] ?-3.807969

  36. [3,] -11.531322

  37. [4,] ? 3.691784




  38. $generalized.weights

  39. $generalized.weights[[1]]

  40. [,1] ? ? ? [,2]

  41. [1,] ?0.15159066 0.09467744

  42. [2,] ?0.01719274 0.04320642

  43. [3,] ?0.15657354 0.09778953

  44. [4,] -0.46017408 0.34621212

  45. [5,] ?0.03868753 0.02416267

  46. [6,] -0.54248384 0.37453006



  47. $startweights

  48. $startweights[[1]]

  49. $startweights[[1]][[1]]

  50. [,1] ? ? ? ?[,2] ? ? ? [,3]

  51. [1,] ?0.1013318 -1.11757311 -0.9962571

  52. [2,] ?0.8583704 -0.15529112 ?1.7870905

  53. [3,] -0.8789741 ?0.05536849 ?1.8098647


  54. $startweights[[1]][[2]]

  55. [,1]

  56. [1,] -0.1283200

  57. [2,] -1.0932526

  58. [3,] -1.0077311

  59. [4,] -0.5212917




  60. $result.matrix

  61. [,1]

  62. error ? ? ? ? ? ? ? ? ? ? ?0.002168460

  63. reached.threshold ? ? ? ? ?0.007872764

  64. steps ? ? ? ? ? ? ? ? ? ?145.000000000

  65. Intercept.to.1layhid1 ? ? ?3.058334288

  66. 專(zhuān)業(yè)知識(shí).to.1layhid1 ? ? ? 1.243666180

  67. 溝通技能得分.to.1layhid1 ?-0.524034687

  68. Intercept.to.1layhid2 ? ? ?3.808019964

  69. 專(zhuān)業(yè)知識(shí).to.1layhid2 ? ? ?-0.058867076

  70. 溝通技能得分.to.1layhid2 ?-0.036766001

  71. Intercept.to.1layhid3 ? ? -0.996257068

  72. 專(zhuān)業(yè)知識(shí).to.1layhid3 ? ? ? 1.787090472

  73. 溝通技能得分.to.1layhid3 ? 1.809864672

  74. Intercept.to.成績(jī) ? ? ? ? ?4.084755522

  75. 1layhid1.to.成績(jī) ? ? ? ? ?-3.807969087

  76. 1layhid2.to.成績(jī) ? ? ? ? -11.531321534

  77. 1layhid3.to.成績(jī) ? ? ? ? ? 3.691783805

繪制神經(jīng)網(wǎng)絡(luò)

讓我們繪制您的神經(jīng)網(wǎng)絡(luò)模型。

  1. # 繪圖神經(jīng)網(wǎng)絡(luò)

  2. plot(nn)

創(chuàng)建測(cè)試數(shù)據(jù)集

創(chuàng)建測(cè)試數(shù)據(jù)集:專(zhuān)業(yè)知識(shí)得分和溝通技能得分

  1. # 創(chuàng)建測(cè)試集

  2. test=data.frame(專(zhuān)業(yè)知識(shí),溝通技能得分)

預(yù)測(cè)測(cè)試集的結(jié)果

使用計(jì)算函數(shù)預(yù)測(cè)測(cè)試數(shù)據(jù)的概率得分。

  1. ## 使用神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)

  2. Pred$result

  1. 0.9928202080

  2. 0.3335543925

  3. 0.9775153014

現(xiàn)在,將概率轉(zhuǎn)換為二進(jìn)制類(lèi)。

  1. # 將概率轉(zhuǎn)換為設(shè)置閾值0.5的二進(jìn)制類(lèi)別

  2. pred <- ifelse(prob>0.5, 1, 0)

  3. pred

  1. 1

  2. 0

  3. 1

預(yù)測(cè)結(jié)果為1,0和1。

利弊

神經(jīng)網(wǎng)絡(luò)更靈活,可以用于回歸和分類(lèi)問(wèn)題。神經(jīng)網(wǎng)絡(luò)非常適合具有大量輸入(例如圖像)的非線(xiàn)性數(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ě)檢查。

最受歡迎的見(jiàn)解

1.r語(yǔ)言用神經(jīng)網(wǎng)絡(luò)改進(jìn)nelson-siegel模型擬合收益率曲線(xiàn)分析

2.r語(yǔ)言實(shí)現(xiàn)擬合神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)和結(jié)果可視化

3.python用遺傳算法-神經(jīng)網(wǎng)絡(luò)-模糊邏輯控制算法對(duì)樂(lè)透分析

4.用于nlp的python:使用keras的多標(biāo)簽文本lstm神經(jīng)網(wǎng)絡(luò)分類(lèi)

5.用r語(yǔ)言實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)股票實(shí)例

6.R語(yǔ)言基于Keras的小數(shù)據(jù)集深度學(xué)習(xí)圖像分類(lèi)

7.用于NLP的seq2seq模型實(shí)例用Keras實(shí)現(xiàn)神經(jīng)機(jī)器翻譯

8.python中基于網(wǎng)格搜索算法優(yōu)化的深度學(xué)習(xí)模型分析糖

9.matlab使用貝葉斯優(yōu)化的深度學(xué)習(xí)


拓端tecdat|R語(yǔ)言中的BP神經(jīng)網(wǎng)絡(luò)模型分析學(xué)生成績(jī)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
专栏| 吉林省| 龙口市| 汕头市| 保山市| 朔州市| 木兰县| 灵山县| 郓城县| 河东区| 清涧县| 吴川市| 余姚市| 荣成市| 锡林郭勒盟| 大田县| 乳山市| 安化县| 专栏| 克东县| 肃北| 漳平市| 新兴县| 葵青区| 花莲市| 吉安市| 柳林县| 东乡族自治县| 天门市| 区。| 明星| 永登县| 阿城市| 德格县| 社会| 拉萨市| 吴堡县| 昭觉县| 安陆市| 松江区| 平顶山市|