必备算法基础——神经网络
線性函數(shù)(也叫得分函數(shù)):
?輸入圖像經(jīng)過一個函數(shù)映射得到圖像屬于每個類別的得分,x為圖像數(shù)據(jù)矩陣,W表示屬于某個類別的權(quán)重參數(shù)。
?劃分10個類別,W1表示屬于貓類別的權(quán)重,W1*x表示屬于貓的得分,W2、W3.....依次類推。
“b” 屬于一個偏置項,用來微調(diào) ,表示對于得到的10個類別都要進(jìn)行微調(diào)。權(quán)重參數(shù)W對結(jié)果起決定性作用。
? ? ? 假設(shè)輸入圖像xi有4個像素點?,劃分為三個類別cat、dog、ship;W1的4個權(quán)重值的大小表示對應(yīng)像素點對于cat類別的重要程度,0.2與56對應(yīng),-0.5與231對應(yīng)。每個類別的權(quán)重值大小表示對應(yīng)像素點對當(dāng)前類別的影響的重要程度,比如w2(1.5,1.3,2.1,0)中0對應(yīng)像素2,表示像素點2對于類別dog的影響比較小,正值代表促進(jìn)的作用,負(fù)值代表抑制的作用。
? ? w1*xi+b =-96.8,得到屬于cat類別的得分,依次類推。
?神經(jīng)網(wǎng)絡(luò)的作用就是什么樣的W能更適合數(shù)據(jù)做當(dāng)前的任務(wù),我們就怎么樣改變這個W,一開始拿隨機值做W,在迭代過程中想辦法不斷改進(jìn)W參數(shù)。
?損失函數(shù):衡量分類或者回歸結(jié)果的好壞,損失函數(shù)是當(dāng)我們獲得一個結(jié)果后才能評估的,做得好損失值小,做的不好損失值大
?例如:第一幅貓圖像屬于cat類別是3.2分,屬于car類別是5.1分,錯誤判斷為car類別。Sj表示錯誤類別得分,Syi表示正確類別得分
?損失函數(shù)當(dāng)其值為0時代表沒有損失,加“+1”表示正確類別至少比錯誤類別高1以上才算沒有損失的
?損失函數(shù)改進(jìn)
雖然下面兩個模型的損失函數(shù)值相同,但兩個模型不一樣 ,模型A中后3個權(quán)重值為0,說明它只關(guān)注輸入數(shù)據(jù)中的第1個,只關(guān)注局部后面的不關(guān)注。模型B是對輸入數(shù)據(jù)的每一個都關(guān)注。
假設(shè)模型A輸出數(shù)據(jù)如下圖,會產(chǎn)生變異,我們希望得到的是模型B的圖
?因此在構(gòu)建損失函數(shù)的時候加入正則化懲罰項,用來去掉變異,入值比較大說明要去掉數(shù)據(jù)中的變異,神經(jīng)網(wǎng)絡(luò)過于強大的,過擬合的風(fēng)險越大
?
softmax函數(shù),又稱為歸一化指數(shù)函數(shù) 目的是將分類的結(jié)果以概率的形式展現(xiàn)出來。
?歸一化處理就是將轉(zhuǎn)化后的結(jié)果除以所有轉(zhuǎn)換后結(jié)果之和,可以理解為轉(zhuǎn)化后結(jié)果占總數(shù)的百分比,這樣就可以得到近似的概率。
?
?通過exp映射,將差異放大,x=3.2, e^x = 24.5, x=5.1, e^5.1 = 164,依次類推。
通過歸一化normalize得到概率值24.5/(0.18+164+24.5) =0.13
屬于cat得分24.5,car:164,frog:0.18,那么屬于cat的概率即為24.5/(0.18+164+24.5) =0.13,
屬于car的概率為164/(0.18+164+24.5) =0.87
歸一化公式就是:先x=3.2, e^x = 24.5, x=5.1, e^5.1 = 164,x=-1.7, e^(-1.7) = 0.18
? ? ? ? ? ? ? ? ? ? ? ? ? 然后24.5/(0.18+164+24.5) =0.13
第一步得到,計算各個得分映射e^sk,第二步,再求出某個得分的概率
通過對數(shù)函數(shù)計算損失值,概率越接近1說明判斷越準(zhǔn)確,對數(shù)函數(shù)越接近0,損失越小。
回歸任務(wù)由得分值計算損失,分類任務(wù)由概率值計算損失
得到x,給一個w,就能計算損失,神經(jīng)網(wǎng)絡(luò)就是怎么樣調(diào)整W,才能使損失變小,這就是一種優(yōu)化。
?hinge loss :損失函數(shù)
不管我們的模型如何設(shè)計,前向傳播只需要一步步計算下去就可以得到一個結(jié)果,但這個結(jié)果不一定是我們想要的結(jié)果。正向傳播得到Loss值,再把Loss值反向傳播,并對神經(jīng)網(wǎng)絡(luò)的W參數(shù)進(jìn)行更新。其中反向傳播正是神經(jīng)網(wǎng)絡(luò)的要點所在。
反向傳播
?反向傳播簡單來講就是一個鏈?zhǔn)角髮?dǎo),通過鏈?zhǔn)角髮?dǎo)來確定參數(shù)進(jìn)行調(diào)參(這里指參數(shù)而非超參數(shù))來確定最佳的參數(shù)。上面我們討論的是簡單情況,在實際的模型中,我們一般可能會用到多層神經(jīng)網(wǎng)絡(luò),但歸根結(jié)底其實還是進(jìn)行求導(dǎo),理解了導(dǎo)數(shù)的定義也就理解了什么是反向傳播。
?
?
反向傳播例子
?紅色數(shù)據(jù)代表梯度,綠色代表輸入數(shù)據(jù)
?將x=1.37帶入df/dx = -1/x^2? = -0.53,(x+1)' = 1, 由于鏈?zhǔn)角髮?dǎo)兩個偏導(dǎo)相乘
?所以前一級梯度,-0.53*1 = -0.53.
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
全連接指神經(jīng)元之間全部連接,神經(jīng)網(wǎng)絡(luò)的作用就是提取特征。
輸入層神經(jīng)元的個數(shù)由樣本決定,一個樣本 x 由 d 個屬性來描述,那輸入層就有 d 個神經(jīng)元。
輸入層神經(jīng)元與隱層神經(jīng)元之間全互連
激活函數(shù):非線性變換
?解決過擬合:神經(jīng)網(wǎng)絡(luò)過于復(fù)雜,會導(dǎo)致過擬合
?DROP-OUT解決過擬合,訓(xùn)練時殺死某些神經(jīng)元,即神經(jīng)元W參數(shù)不改變,減少復(fù)雜的,并且每次訓(xùn)練時是隨機選取一部分神經(jīng)元殺死,不是固定的。
參考博客:
神經(jīng)網(wǎng)絡(luò)15分鐘入門!——反向傳播到底是怎么傳播的? - 知乎 (zhihu.com)
總結(jié)
以上是生活随笔為你收集整理的必备算法基础——神经网络的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第六届蓝桥杯大赛个人赛决赛(软件类)真题
- 下一篇: 行流 - 通用;仅使用库存接口开单 a