-
當前位置:首頁 > 創(chuàng)意學院 > 技術(shù) > 專題列表 > 正文
如何設計一個神經(jīng)網(wǎng)絡(如何設計一個神經(jīng)網(wǎng)絡系統(tǒ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)絡識別 matlab源程序
神經(jīng)網(wǎng)絡的是我的畢業(yè)論文的一部分
4.人工神經(jīng)網(wǎng)絡
人的思維有邏輯性和直觀性兩種不同的基本方式。邏輯性的思維是指根據(jù)邏輯規(guī)則進行推理的過程;它先將信息化成概念,并用符號表示,然后,根據(jù)符號運算按串行模式進行邏輯推理。這一過程可以寫成串行的指令,讓計算機執(zhí)行。然而,直觀性的思維是將分布式存儲的信息綜合起來,結(jié)果是忽然間產(chǎn)生想法或解決問題的辦法。這種思維方式的根本之點在于以下兩點:1.信息是通過神經(jīng)元上的興奮模式分布在網(wǎng)絡上;2.信息處理是通過神經(jīng)元之間同時相互作用的動態(tài)過程來完成的。
人工神經(jīng)網(wǎng)絡就是模擬人思維的第二種方式。這是一個非線性動力學系統(tǒng),其特色在于信息的分布式存儲和并行協(xié)同處理。雖然單個神經(jīng)元的結(jié)構(gòu)極其簡單,功能有限,但大量神經(jīng)元構(gòu)成的網(wǎng)絡系統(tǒng)所能實現(xiàn)的行為卻是極其豐富多彩的。
4.1人工神經(jīng)網(wǎng)絡學習的原理
人工神經(jīng)網(wǎng)絡首先要以一定的學習準則進行學習,然后才能工作?,F(xiàn)以人工神經(jīng)網(wǎng)絡對手寫“A”、“B”兩個字母的識別為例進行說明,規(guī)定當“A”輸入網(wǎng)絡時,應該輸出“1”,而當輸入為“B”時,輸出為“0”。
所以網(wǎng)絡學習的準則應該是:如果網(wǎng)絡做出錯誤的判決,則通過網(wǎng)絡的學習,應使得網(wǎng)絡減少下次犯同樣錯誤的可能性。首先,給網(wǎng)絡的各連接權(quán)值賦予(0,1)區(qū)間內(nèi)的隨機值,將“A”所對應的圖像模式輸入給網(wǎng)絡,網(wǎng)絡將輸入模式加權(quán)求和、與門限比較、再進行非線性運算,得到網(wǎng)絡的輸出。在此情況下,網(wǎng)絡輸出為“1”和“0”的概率各為50%,也就是說是完全隨機的。這時如果輸出為“1”(結(jié)果正確),則使連接權(quán)值增大,以便使網(wǎng)絡再次遇到“A”模式輸入時,仍然能做出正確的判斷。
如果輸出為“0”(即結(jié)果錯誤),則把網(wǎng)絡連接權(quán)值朝著減小綜合輸入加權(quán)值的方向調(diào)整,其目的在于使網(wǎng)絡下次再遇到“A”模式輸入時,減小犯同樣錯誤的可能性。如此操作調(diào)整,當給網(wǎng)絡輪番輸入若干個手寫字母“A”、“B”后,經(jīng)過網(wǎng)絡按以上學習方法進行若干次學習后,網(wǎng)絡判斷的正確率將大大提高。這說明網(wǎng)絡對這兩個模式的學習已經(jīng)獲得了成功,它已將這兩個模式分布地記憶在網(wǎng)絡的各個連接權(quán)值上。當網(wǎng)絡再次遇到其中任何一個模式時,能夠做出迅速、準確的判斷和識別。一般說來,網(wǎng)絡中所含的神經(jīng)元個數(shù)越多,則它能記憶、識別的模式也就越多。
4.2人工神經(jīng)網(wǎng)絡的優(yōu)缺點
人工神經(jīng)網(wǎng)絡由于模擬了大腦神經(jīng)元的組織方式而具有了人腦功能的一些基本特征,為人工智能的研究開辟了新的途徑,神經(jīng)網(wǎng)絡具有的優(yōu)點在于:
(1)并行分布性處理
因為人工神經(jīng)網(wǎng)絡中的神經(jīng)元排列并不是雜亂無章的,往往是分層或以一種有規(guī)律的序列排列,信號可以同時到達一批神經(jīng)元的輸入端,這種結(jié)構(gòu)非常適合并行計算。同時如果將每一個神經(jīng)元看作是一個小的處理單元,則整個系統(tǒng)可以是一個分布式計算系統(tǒng),這樣就避免了以往的“匹配沖突”,“組合爆炸”和“無窮遞歸”等題,推理速度快。
(2)可學習性
一個相對很小的人工神經(jīng)網(wǎng)絡可存儲大量的專家知識,并且能根據(jù)學習算法,或者利用樣本指導系統(tǒng)來模擬現(xiàn)實環(huán)境(稱為有教師學習),或者對輸入進行自適應學習(稱為無教師學習),不斷地自動學習,完善知識的存儲。
(3)魯棒性和容錯性
由于采用大量的神經(jīng)元及其相互連接,具有聯(lián)想記憶與聯(lián)想映射能力,可以增強專家系統(tǒng)的容錯能力,人工神經(jīng)網(wǎng)絡中少量的神經(jīng)元發(fā)生失效或錯誤,不會對系統(tǒng)整體功能帶來嚴重的影響。而且克服了傳統(tǒng)專家系統(tǒng)中存在的“知識窄臺階”問題。
(4)泛化能力
人工神經(jīng)網(wǎng)絡是一類大規(guī)模的非線形系統(tǒng),這就提供了系統(tǒng)自組織和協(xié)同的潛力。它能充分逼近復雜的非線形關(guān)系。當輸入發(fā)生較小變化,其輸出能夠與原輸入產(chǎn)生的輸出保持相當小的差距。
(5)具有統(tǒng)一的內(nèi)部知識表示形式,任何知識規(guī)則都可以通過對范例的學習存儲于同一個神經(jīng)網(wǎng)絡的各連接權(quán)值中,便于知識庫的組織管理,通用性強。
雖然人工神經(jīng)網(wǎng)絡有很多優(yōu)點,但基于其固有的內(nèi)在機理,人工神經(jīng)網(wǎng)絡也不可避免的存在自己的弱點:
(1)最嚴重的問題是沒能力來解釋自己的推理過程和推理依據(jù)。
(2)神經(jīng)網(wǎng)絡不能向用戶提出必要的詢問,而且當數(shù)據(jù)不充分的時候,神經(jīng)網(wǎng)絡就無法進行工作。
(3)神經(jīng)網(wǎng)絡把一切問題的特征都變?yōu)閿?shù)字,把一切推理都變?yōu)閿?shù)值計算,其結(jié)果勢必是丟失信息。
(4)神經(jīng)網(wǎng)絡的理論和學習算法還有待于進一步完善和提高。
4.3神經(jīng)網(wǎng)絡的發(fā)展趨勢及在柴油機故障診斷中的可行性
神經(jīng)網(wǎng)絡為現(xiàn)代復雜大系統(tǒng)的狀態(tài)監(jiān)測和故障診斷提供了全新的理論方法和技術(shù)實現(xiàn)手段。神經(jīng)網(wǎng)絡專家系統(tǒng)是一類新的知識表達體系,與傳統(tǒng)專家系統(tǒng)的高層邏輯模型不同,它是一種低層數(shù)值模型,信息處理是通過大量的簡單處理元件(結(jié)點) 之間的相互作用而進行的。由于它的分布式信息保持方式,為專家系統(tǒng)知識的獲取與表達以及推理提供了全新的方式。它將邏輯推理與數(shù)值運算相結(jié)合,利用神經(jīng)網(wǎng)絡的學習功能、聯(lián)想記憶功能、分布式并行信息處理功能,解決診斷系統(tǒng)中的不確定性知識表示、獲取和并行推理等問題。通過對經(jīng)驗樣本的學習,將專家知識以權(quán)值和閾值的形式存儲在網(wǎng)絡中,并且利用網(wǎng)絡的信息保持性來完成不精確診斷推理,較好地模擬了專家憑經(jīng)驗、直覺而不是復雜的計算的推理過程。
但是,該技術(shù)是一個多學科知識交叉應用的領域,是一個不十分成熟的學科。一方面,裝備的故障相當復雜;另一方面,人工神經(jīng)網(wǎng)絡本身尚有諸多不足之處:
(1)受限于腦科學的已有研究成果。由于生理實驗的困難性,目前對于人腦思維與記憶機制的認識還很膚淺。
(2)尚未建立起完整成熟的理論體系。目前已提出了眾多的人工神經(jīng)網(wǎng)絡模型,歸納起來,這些模型一般都是一個由結(jié)點及其互連構(gòu)成的有向拓撲網(wǎng),結(jié)點間互連強度所構(gòu)成的矩陣,可通過某種學習策略建立起來。但僅這一共性,不足以構(gòu)成一個完整的體系。這些學習策略大多是各行其是而無法統(tǒng)一于一個完整的框架之中。
(3)帶有濃厚的策略色彩。這是在沒有統(tǒng)一的基礎理論支持下,為解決某些應用,而誘發(fā)出的自然結(jié)果。
(4)與傳統(tǒng)計算技術(shù)的接口不成熟。人工神經(jīng)網(wǎng)絡技術(shù)決不能全面替代傳統(tǒng)計算技術(shù),而只能在某些方面與之互補,從而需要進一步解決與傳統(tǒng)計算技術(shù)的接口問題,才能獲得自身的發(fā)展。
雖然人工神經(jīng)網(wǎng)絡目前存在諸多不足,但是神經(jīng)網(wǎng)絡和傳統(tǒng)專家系統(tǒng)相結(jié)合的智能故障診斷技術(shù)仍將是以后研究與應用的熱點。它最大限度地發(fā)揮兩者的優(yōu)勢。神經(jīng)網(wǎng)絡擅長數(shù)值計算,適合進行淺層次的經(jīng)驗推理;專家系統(tǒng)的特點是符號推理,適合進行深層次的邏輯推理。智能系統(tǒng)以并行工作方式運行,既擴大了狀態(tài)監(jiān)測和故障診斷的范圍,又可滿足狀態(tài)監(jiān)測和故障診斷的實時性要求。既強調(diào)符號推理,又注重數(shù)值計算,因此能適應當前故障診斷系統(tǒng)的基本特征和發(fā)展趨勢。隨著人工神經(jīng)網(wǎng)絡的不斷發(fā)展與完善,它將在智能故障診斷中得到廣泛的應用。
根據(jù)神經(jīng)網(wǎng)絡上述的各類優(yōu)缺點,目前有將神經(jīng)網(wǎng)絡與傳統(tǒng)的專家系統(tǒng)結(jié)合起來的研究傾向,建造所謂的神經(jīng)網(wǎng)絡專家系統(tǒng)。理論分析與使用實踐表明,神經(jīng)網(wǎng)絡專家系統(tǒng)較好地結(jié)合了兩者的優(yōu)點而得到更廣泛的研究和應用。
離心式制冷壓縮機的構(gòu)造和工作原理與離心式鼓風機極為相似。但它的工作原理與活塞式壓縮機有根本的區(qū)別,它不是利用汽缸容積減小的方式來提高汽體的壓力,而是依靠動能的變化來提高汽體壓力。離心式壓縮機具有帶葉片的工作輪,當工作輪轉(zhuǎn)動時,葉片就帶動汽體運動或者使汽體得到動能,然后使部分動能轉(zhuǎn)化為壓力能從而提高汽體的壓力。這種壓縮機由于它工作時不斷地將制冷劑蒸汽吸入,又不斷地沿半徑方向被甩出去,所以稱這種型式的壓縮機為離心式壓縮機。其中根據(jù)壓縮機中安裝的工作輪數(shù)量的多少,分為單級式和多級式。如果只有一個工作輪,就稱為單級離心式壓縮機,如果是由幾個工作輪串聯(lián)而組成,就稱為多級離心式壓縮機。在空調(diào)中,由于壓力增高較少,所以一般都是采用單級,其它方面所用的離心式制冷壓縮機大都是多級的。單級離心式制冷壓縮機的構(gòu)造主要由工作輪、擴壓器和蝸殼等所組成。 壓縮機工作時制冷劑蒸汽由吸汽口軸向進入吸汽室,并在吸汽室的導流作用引導由蒸發(fā)器(或中間冷卻器)來的制冷劑蒸汽均勻地進入高速旋轉(zhuǎn)的工作輪3(工作輪也稱葉輪,它是離心式制冷壓縮機的重要部件,因為只有通過工作輪才能將能量傳給汽體)。汽體在葉片作用下,一邊跟著工作輪作高速旋轉(zhuǎn),一邊由于受離心力的作用,在葉片槽道中作擴壓流動,從而使汽體的壓力和速度都得到提高。由工作輪出來的汽體再進入截面積逐漸擴大的擴壓器4(因為汽體從工作輪流出時具有較高的流速,擴壓器便把動能部分地轉(zhuǎn)化為壓力能,從而提高汽體的壓力)。汽體流過擴壓器時速度減小,而壓力則進一步提高。經(jīng)擴壓器后汽體匯集到蝸殼中,再經(jīng)排氣口引導至中間冷卻器或冷凝器中。
二、離心式制冷壓縮機的特點與特性
離心式制冷壓縮機與活塞式制冷壓縮機相比較,具有下列優(yōu)點:
(1)單機制冷量大,在制冷量相同時它的體積小,占地面積少,重量較活塞式輕5~8倍。
(2)由于它沒有汽閥活塞環(huán)等易損部件,又沒有曲柄連桿機構(gòu),因而工作可靠、運轉(zhuǎn)平穩(wěn)、噪音小、操作簡單、維護費用低。
(3)工作輪和機殼之間沒有摩擦,無需潤滑。故制冷劑蒸汽與潤滑油不接觸,從而提高了蒸發(fā)器和冷凝器的傳熱性能。
(4)能經(jīng)濟方便的調(diào)節(jié)制冷量且調(diào)節(jié)的范圍較大。
(5)對制冷劑的適應性差,一臺結(jié)構(gòu)一定的離心式制冷壓縮機只能適應一種制冷劑。
(6)由于適宜采用分子量比較大的制冷劑,故只適用于大制冷量,一般都在25~30萬大卡/時以上。如制冷量太少,則要求流量小,流道窄,從而使流動阻力大,效率低。但近年來經(jīng)過不斷改進,用于空調(diào)的離心式制冷壓縮機,單機制冷量可以小到10萬大卡/時左右。
制冷與冷凝溫度、蒸發(fā)溫度的關(guān)系。
由物理學可知,回轉(zhuǎn)體的動量矩的變化等于外力矩,則
T=m(C2UR2-C1UR1)
兩邊都乘以角速度ω,得
Tω=m(C2UωR2-C1UωR1)
也就是說主軸上的外加功率N為:
N=m(U2C2U-U1C1U)
上式兩邊同除以m則得葉輪給予單位質(zhì)量制冷劑蒸汽的功即葉輪的理論能量頭。 U2 C2
ω2 C2U R1 R2 ω1 C1 U1 C2r β 離心式制冷壓縮機的特性是指理論能量頭與流量之間變化關(guān)系,也可以表示成制冷
W=U2C2U-U1C1U≈U2C2U
(因為進口C1U≈0)
又C2U=U2-C2rctgβ C2r=Vυ1/(A2υ2)
故有
W= U22(1-
Vυ1
ctgβ)
A2υ2U2
式中:V—葉輪吸入蒸汽的容積流量(m3/s)
υ1υ2 ——分別為葉輪入口和出口處的蒸汽比容(m3/kg)
A2、U2—葉輪外緣出口面積(m2)與圓周速度(m/s)
β—葉片安裝角
由上式可見,理論能量頭W與壓縮機結(jié)構(gòu)、轉(zhuǎn)速、冷凝溫度、蒸發(fā)溫度及葉輪吸入蒸汽容積流量有關(guān)。對于結(jié)構(gòu)一定、轉(zhuǎn)速一定的壓縮機來說,U2、A2、β皆為常量,則理論能量頭W僅與流量V、蒸發(fā)溫度、冷凝溫度有關(guān)。
按照離心式制冷壓縮機的特性,宜采用分子量比較大的制冷劑,目前離心式制冷機所用的制冷劑有F—11、F—12、F—22、F—113和F—114等。我國目前在空調(diào)用離心式壓縮機中應用得最廣泛的是F—11和F—12,且通常是在蒸發(fā)溫度不太低和大制冷量的情況下,選用離心式制冷壓縮機。此外,在石油化學工業(yè)中離心式的制冷壓縮機則采用丙烯、乙烯作為制冷劑,只有制冷量特別大的離心式壓縮機才用氨作為制冷劑。
三、離心式制冷壓縮機的調(diào)節(jié)
離心式制冷壓縮機和其它制冷設備共同構(gòu)成一個能量供給與消耗的統(tǒng)一系統(tǒng)。制冷機組在運行時,只有當通過壓縮機的制冷劑的流量與通過設備的流量相等時,以及壓縮機所產(chǎn)生的能量頭與制冷設備的阻力相適應時,制冷系統(tǒng)的工況才能保持穩(wěn)定。但是制冷機的負荷總是隨外界條件與用戶對冷量的使用情況而變化的,因此為了適應用戶對冷負荷變化的需要和安全經(jīng)濟運行,就需要根據(jù)外界的變化對制冷機組進行調(diào)節(jié),離心式制冷機組制冷量的調(diào)節(jié)有:1°改變壓縮機的轉(zhuǎn)速;2°采用可轉(zhuǎn)動的進口導葉;3°改變冷凝器的進水量;4°進汽節(jié)流等幾種方式,其中最常用的是轉(zhuǎn)動進口導葉調(diào)節(jié)和進汽節(jié)流兩種調(diào)節(jié)方法。所謂轉(zhuǎn)動進口導葉調(diào)節(jié),就是轉(zhuǎn)動壓縮機進口處的導流葉片以使進入到葉輪去的汽體產(chǎn)生旋繞,從而使工作輪加給汽體的動能發(fā)生變化來調(diào)節(jié)制冷量。所謂進汽節(jié)流調(diào)節(jié),就是在壓縮機前的進汽管道上安裝一個調(diào)節(jié)閥,如要改變壓縮機的工況時,就調(diào)節(jié)閥門的大小,通過節(jié)流使壓縮機進口的壓力降低,從而實現(xiàn)調(diào)節(jié)制冷量。離心式壓縮機制冷量的調(diào)節(jié)最經(jīng)濟有效的方法就是改變進口導葉角度,以改變蒸汽進入葉輪的速度方向(C1U)和流量V。但流量V必須控制在穩(wěn)定工作范圍內(nèi),以免效率下降。
二、一文讀懂神經(jīng)網(wǎng)絡
要說近幾年最引人注目的技術(shù),無疑的,非人工智能莫屬。無論你是否身處科技互聯(lián)網(wǎng)行業(yè),隨處可見人工智能的身影:從 AlphaGo 擊敗世界圍棋冠軍,到無人駕駛概念的興起,再到科技巨頭 All in AI,以及各大高校向社會輸送海量的人工智能專業(yè)的畢業(yè)生。以至于人們開始萌生一個想法:新的革命就要來了,我們的世界將再次發(fā)生一次巨變;而后開始焦慮:我的工作是否會被機器取代?我該如何才能抓住這次革命?
人工智能背后的核心技術(shù)是深度神經(jīng)網(wǎng)絡(Deep Neural Network),大概是一年前這個時候,我正在回老家的高鐵上學習 3Blue1Brown 的 Neural Network 系列視頻課程,短短 4 集 60 多分鐘的時間,就把神經(jīng)網(wǎng)絡從 High Level 到推導細節(jié)說得清清楚楚,當時的我除了獲得新知的興奮之外,還有一點新的認知,算是給頭腦中的革命性的技術(shù)潑了盆冷水:神經(jīng)網(wǎng)絡可以解決一些復雜的、以前很難通過寫程序來完成的任務——例如圖像、語音識別等,但它的實現(xiàn)機制告訴我,神經(jīng)網(wǎng)絡依然沒有達到生物級別的智能,短期內(nèi)期待它來取代人也是不可能的。
一年后的今天,依然在這個春運的時間點,將我對神經(jīng)網(wǎng)絡的理解寫下來,算是對這部分知識的一個學習筆記,運氣好的話,還可以讓不了解神經(jīng)網(wǎng)絡的同學了解起來。
維基百科這樣解釋 神經(jīng)網(wǎng)絡 :
這個定義比較寬泛,你甚至還可以用它來定義其它的機器學習算法,例如之前我們一起學習的邏輯回歸和 GBDT 決策樹。下面我們具體一點,下圖是一個邏輯回歸的示意圖:
其中 x1 和 x2 表示輸入,w1 和 w2 是模型的參數(shù),z 是一個線性函數(shù):
接著我們對 z 做一個 sigmod 變換(圖中藍色圓),得到輸出 y:
其實,上面的邏輯回歸就可以看成是一個只有 1 層 輸入層 , 1 層 輸出層 的神經(jīng)網(wǎng)絡,圖中容納數(shù)字的圈兒被稱作 神經(jīng)元 ;其中,層與層之間的連接 w1、w2 以及 b,是這個 神經(jīng)網(wǎng)絡的參數(shù) ,層之間如果每個神經(jīng)元之間都保持著連接,這樣的層被稱為 全連接層 (Full Connection Layer),或 稠密層 (Dense Layer);此外,sigmoid 函數(shù)又被稱作 激活函數(shù) (Activation Function),除了 sigmoid 外,常用的激活函數(shù)還有 ReLU、tanh 函數(shù)等,這些函數(shù)都起到將線性函數(shù)進行非線性變換的作用。我們還剩下一個重要的概念: 隱藏層 ,它需要把 2 個以上的邏輯回歸疊加起來加以說明:
如上圖所示,除輸入層和輸出層以外,其他的層都叫做 隱藏層 。如果我們多疊加幾層,這個神經(jīng)網(wǎng)絡又可以被稱作 深度神經(jīng)網(wǎng)絡 (Deep Neural Network),有同學可能會問多少層才算“深”呢?這個沒有絕對的定論,個人認為 3 層以上就算吧:)
以上,便是神經(jīng)網(wǎng)絡,以及神經(jīng)網(wǎng)絡中包含的概念,可見,神經(jīng)網(wǎng)絡并不特別,廣義上講,它就是
可見,神經(jīng)網(wǎng)絡和人腦神經(jīng)也沒有任何關(guān)聯(lián),如果我們說起它的另一個名字—— 多層感知機(Mutilayer Perceptron) ,就更不會覺得有多么玄乎了,多層感知機創(chuàng)造于 80 年代,可為什么直到 30 年后的今天才爆發(fā)呢?你想得沒錯,因為改了個名字……開個玩笑;實際上深度學習這項技術(shù)也經(jīng)歷過很長一段時間的黑暗低谷期,直到人們開始利用 GPU 來極大的提升訓練模型的速度,以及幾個標志性的事件:如 AlphaGo戰(zhàn)勝李世石、Google 開源 TensorFlow 框架等等,感興趣的同學可以翻一下這里的歷史。
就拿上圖中的 3 個邏輯回歸組成的神經(jīng)網(wǎng)絡作為例子,它和普通的邏輯回歸比起來,有什么優(yōu)勢呢?我們先來看下單邏輯回歸有什么劣勢,對于某些情況來說,邏輯回歸可能永遠無法使其分類,如下面數(shù)據(jù):
這 4 個樣本畫在坐標系中如下圖所示
因為邏輯回歸的決策邊界(Decision Boundary)是一條直線,所以上圖中的兩個分類,無論你怎么做,都無法找到一條直線將它們分開,但如果借助神經(jīng)網(wǎng)絡,就可以做到這一點。
由 3 個邏輯回歸組成的網(wǎng)絡(這里先忽略 bias)如下:
觀察整個網(wǎng)絡的計算過程,在進入輸出層之前,該網(wǎng)絡所做的計算實際上是:
即把輸入先做了一次線性變換(Linear Transformation),得到 [z1, z2] ,再把 [z1, z2] 做了一個非線性變換(sigmoid),得到 [x1', x2'] ,(線性變換的概念可以參考 這個視頻 )。從這里開始,后面的操作就和一個普通的邏輯回歸沒有任何差別了,所以它們的差異在于: 我們的數(shù)據(jù)在輸入到模型之前,先做了一層特征變換處理(Feature Transformation,有時又叫做特征抽取 Feature Extraction),使之前不可能被分類的數(shù)據(jù)變得可以分類了 。
我們繼續(xù)來看下特征變換的效果,假設 為 ,帶入上述公式,算出 4 個樣本對應的 [x1', x2'] 如下:
再將變換后的 4 個點繪制在坐標系中:
顯然,在做了特征變換之后,這兩個分類就可以很容易的被一條決策邊界分開了。
所以, 神經(jīng)網(wǎng)絡的優(yōu)勢在于,它可以幫助我們自動的完成特征變換或特征提取 ,尤其對于聲音、圖像等復雜問題,因為在面對這些問題時,人們很難清晰明確的告訴你,哪些特征是有用的。
在解決特征變換的同時,神經(jīng)網(wǎng)絡也引入了新的問題,就是我們需要設計各式各樣的網(wǎng)絡結(jié)構(gòu)來針對性的應對不同的場景,例如使用卷積神經(jīng)網(wǎng)絡(CNN)來處理圖像、使用長短期記憶網(wǎng)絡(LSTM)來處理序列問題、使用生成式對抗網(wǎng)絡(GAN)來寫詩和作圖等,就連去年自然語言處理(NLP)中取得突破性進展的 Transformer/Bert 也是一種特定的網(wǎng)絡結(jié)構(gòu)。所以, 學好神經(jīng)網(wǎng)絡,對理解其他更高級的網(wǎng)絡結(jié)構(gòu)也是有幫助的 。
上面說了,神經(jīng)網(wǎng)絡可以看作一個非線性函數(shù),該函數(shù)的參數(shù)是連接神經(jīng)元的所有的 Weights 和 Biases,該函數(shù)可以簡寫為 f(W, B) ,以手寫數(shù)字識別的任務作為例子:識別 MNIST 數(shù)據(jù)集 中的數(shù)字,數(shù)據(jù)集(MNIST 數(shù)據(jù)集是深度學習中的 HelloWorld)包含上萬張不同的人寫的數(shù)字圖片,共有 0-9 十種數(shù)字,每張圖片為 28*28=784 個像素,我們設計一個這樣的網(wǎng)絡來完成該任務:
把該網(wǎng)絡函數(shù)所具備的屬性補齊:
接下來的問題是,這個函數(shù)是如何產(chǎn)生的?這個問題本質(zhì)上問的是這些參數(shù)的值是怎么確定的。
在機器學習中,有另一個函數(shù) c 來衡量 f 的好壞,c 的參數(shù)是一堆數(shù)據(jù)集,你輸入給 c 一批 Weights 和 Biases,c 輸出 Bad 或 Good,當結(jié)果是 Bad 時,你需要繼續(xù)調(diào)整 f 的 Weights 和 Biases,再次輸入給 c,如此往復,直到 c 給出 Good 為止,這個 c 就是損失函數(shù) Cost Function(或 Loss Function)。在手寫數(shù)字識別的列子中,c 可以描述如下:
可見,要完成手寫數(shù)字識別任務,只需要調(diào)整這 12730 個參數(shù),讓損失函數(shù)輸出一個足夠小的值即可,推而廣之,絕大部分神經(jīng)網(wǎng)絡、機器學習的問題,都可以看成是定義損失函數(shù)、以及參數(shù)調(diào)優(yōu)的問題。
在手寫識別任務中,我們既可以使用交叉熵(Cross Entropy)損失函數(shù),也可以使用 MSE(Mean Squared Error)作為損失函數(shù),接下來,就剩下如何調(diào)優(yōu)參數(shù)了。
神經(jīng)網(wǎng)絡的參數(shù)調(diào)優(yōu)也沒有使用特別的技術(shù),依然是大家剛接觸機器學習,就學到的梯度下降算法,梯度下降解決了上面迭代過程中的遺留問題——當損失函數(shù)給出 Bad 結(jié)果時,如何調(diào)整參數(shù),能讓 Loss 減少得最快。
梯度可以理解為:
把 Loss 對應到 H,12730 個參數(shù)對應到 (x,y),則 Loss 對所有參數(shù)的梯度可以表示為下面向量,該向量的長度為 12730:
$$
nabla L(w,b) = left[
frac{partial L}{partial w_1},
frac{partial L}{partial w_2},...,
frac{partial L}{partial b_{26}}
right] ^top
$$
所以,每次迭代過程可以概括為
用梯度來調(diào)整參數(shù)的式子如下(為了簡化,這里省略了 bias):
上式中, 是學習率,意為每次朝下降最快的方向前進一小步,避免優(yōu)化過頭(Overshoot)。
由于神經(jīng)網(wǎng)絡參數(shù)繁多,所以需要更高效的計算梯度的算法,于是,反向傳播算法(Backpropagation)呼之欲出。
在學習反向傳播算法之前,我們先復習一下微積分中的鏈式法則(Chain Rule):設 g = u(h) , h = f(x) 是兩個可導函數(shù),x 的一個很小的變化 △x 會使 h 產(chǎn)生一個很小的變化 △h,從而 g 也產(chǎn)生一個較小的變化 △g,現(xiàn)要求 △g/△x,可以使用鏈式法則:
有了以上基礎,理解反向傳播算法就簡單了。
假設我們的演示網(wǎng)絡只有 2 層,輸入輸出都只有 2 個神經(jīng)元,如下圖所示:
其中 是輸入, 是輸出, 是樣本的目標值,這里使用的損失函數(shù) L 為 MSE;圖中的上標 (1) 或 (2) 分別表示參數(shù)屬于第 (1) 層或第 (2) 層,下標 1 或 2 分別表示該層的第 1 或 第 2 個神經(jīng)元。
現(xiàn)在我們來計算 和 ,掌握了這 2 個參數(shù)的偏導數(shù)計算之后,整個梯度的計算就掌握了。
所謂反向傳播算法,指的是從右向左來計算每個參數(shù)的偏導數(shù),先計算 ,根據(jù)鏈式法則
對左邊項用鏈式法則展開
又 是輸出值, 可以直接通過 MSE 的導數(shù)算出:
而 ,則 就是 sigmoid 函數(shù)的導數(shù)在 處的值,即
于是 就算出來了:
再來看 這一項,因為
所以
注意:上面式子對于所有的 和 都成立,且結(jié)果非常直觀,即 對 的偏導為左邊的輸入 的大?。煌瑫r,這里還隱含著另一層意思:需要調(diào)整哪個 來影響 ,才能使 Loss 下降得最快,從該式子可以看出,當然是先調(diào)整較大的 值所對應的 ,效果才最顯著 。
于是,最后一層參數(shù) 的偏導數(shù)就算出來了
我們再來算上一層的 ,根據(jù)鏈式法則 :
繼續(xù)展開左邊這一項
你發(fā)現(xiàn)沒有,這幾乎和計算最后一層一摸一樣,但需要注意的是,這里的 對 Loss 造成的影響有多條路徑,于是對于只有 2 個輸出的本例來說:
上式中, 都已經(jīng)在最后一層算出,下面我們來看下 ,因為
于是
同理
注意:這里也引申出梯度下降的調(diào)參直覺:即要使 Loss 下降得最快,優(yōu)先調(diào)整 weight 值比較大的 weight。
至此, 也算出來了
觀察上式, 所謂每個參數(shù)的偏導數(shù),通過反向傳播算法,都可以轉(zhuǎn)換成線性加權(quán)(Weighted Sum)計算 ,歸納如下:
式子中 n 代表分類數(shù),(l) 表示第 l 層,i 表示第 l 層的第 i 個神經(jīng)元。 既然反向傳播就是一個線性加權(quán),那整個神經(jīng)網(wǎng)絡就可以借助于 GPU 的矩陣并行計算了 。
最后,當你明白了神經(jīng)網(wǎng)絡的原理,是不是越發(fā)的認為,它就是在做一堆的微積分運算,當然,作為能證明一個人是否學過微積分,神經(jīng)網(wǎng)絡還是值得學一下的。Just kidding ..
本文我們通過
這四點,全面的學習了神經(jīng)網(wǎng)絡這個知識點,希望本文能給你帶來幫助。
參考:
三、設計一個BP神經(jīng)網(wǎng)絡分類器進行分類,輸入向量為P=(1 -1 -2 -4;2 1 1 0),輸出向量為T=(0 1 1 0)
y =
0.6544 0.6499 0.6500 0.6499
是預測的輸出變量
四、設計神經(jīng)網(wǎng)絡時為什么趨向于選擇更深的網(wǎng)絡結(jié)構(gòu)
一 隱層數(shù)一般認為,增加隱層數(shù)可以降低網(wǎng)絡誤差(也有文獻認為不一定能有效降低),提高精度,但也使網(wǎng)絡復雜化,從而增加了網(wǎng)絡的訓練時間和出現(xiàn)“過擬合”的傾向。一般來講應設計神經(jīng)網(wǎng)絡應優(yōu)先考慮3層網(wǎng)絡(即有1個隱層)。一般地,靠增加隱層節(jié)點數(shù)來獲得較低的誤差,其訓練效果要比增加隱層數(shù)更容易實現(xiàn)。對于沒有隱層的神經(jīng)網(wǎng)絡模型,實際上就是一個線性或非線性(取決于輸出層采用線性或非線性轉(zhuǎn)換函數(shù)型式)回歸模型。因此,一般認為,應將不含隱層的網(wǎng)絡模型歸入回歸分析中,技術(shù)已很成熟,沒有必要在神經(jīng)網(wǎng)絡理論中再討論之。二 隱層節(jié)點數(shù)在BP 網(wǎng)絡中,隱層節(jié)點數(shù)的選擇非常重要,它不僅對建立的神經(jīng)網(wǎng)絡模型的性能影響很大,而且是訓練時出現(xiàn)“過擬合”的直接原因,但是目前理論上還沒有一種科學的和普遍的確定方法。 目前多數(shù)文獻中提出的確定隱層節(jié)點數(shù)的計算公式都是針對訓練樣本任意多的情況,而且多數(shù)是針對最不利的情況,一般工程實踐中很難滿足,不宜采用。事實上,各種計算公式得到的隱層節(jié)點數(shù)有時相差幾倍甚至上百倍。為盡可能避免訓練時出現(xiàn)“過擬合”現(xiàn)象,保證足夠高的網(wǎng)絡性能和泛化能力,確定隱層節(jié)點數(shù)的最基本原則是:在滿足精度要求的前提下取盡可能緊湊的結(jié)構(gòu),即取盡可能少的隱層節(jié)點數(shù)。研究表明,隱層節(jié)點數(shù)不僅與輸入/輸出層的節(jié)點數(shù)有關(guān),更與需解決的問題的復雜程度和轉(zhuǎn)換函數(shù)的型式以及樣本數(shù)據(jù)的特性等因素有關(guān)。在確定隱層節(jié)點數(shù)時必須滿足下列條件:(1)隱層節(jié)點數(shù)必須小于N-1(其中N為訓練樣本數(shù)),否則,網(wǎng)絡模型的系統(tǒng)誤差與訓練樣本的特性無關(guān)而趨于零,即建立的網(wǎng)絡模型沒有泛化能力,也沒有任何實用價值。同理可推得:輸入層的節(jié)點數(shù)(變量數(shù))必須小于N-1。(2)訓練樣本數(shù)必須多于網(wǎng)絡模型的連接權(quán)數(shù),一般為2~10倍,否則,樣本必須分成幾部分并采用“輪流訓練”的方法才可能得到可靠的神經(jīng)網(wǎng)絡模型。 總之,若隱層節(jié)點數(shù)太少,網(wǎng)絡可能根本不能訓練或網(wǎng)絡性能很差;若隱層節(jié)點數(shù)太多,雖然可使網(wǎng)絡的系統(tǒng)誤差減小,但一方面使網(wǎng)絡訓練時間延長,另一方面,訓練容易陷入局部極小點而得不到最優(yōu)點,也是訓練時出現(xiàn)“過擬合”的內(nèi)在原因。因此,合理隱層節(jié)點數(shù)應在綜合考慮網(wǎng)絡結(jié)構(gòu)復雜程度和誤差大小的情況下用節(jié)點刪除法和擴張法確定。
以上就是關(guān)于如何設計一個神經(jīng)網(wǎng)絡相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
寫一段自己的人生經(jīng)歷如何寫(寫一段自己的人生經(jīng)歷如何寫作文)
如何根據(jù)logo圖片查品牌(如何根據(jù)logo圖片查品牌)