04 深度學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)
1.學(xué)習(xí)的目的
????????就是以該損失函數(shù)為基準(zhǔn),找出能使它的值達(dá)到最小的權(quán)重參數(shù)。
2.損失函數(shù)
定義
損失函數(shù)(loss function)是將隨機(jī)事件或其有關(guān)隨機(jī)變量的取值映射為非負(fù)實數(shù)以表示該隨機(jī)事件的“風(fēng)險”或“損失”的函數(shù)。
公式

3.交叉熵誤差
公式

圖像

4.為什么要導(dǎo)入損失函數(shù)
????????在進(jìn)行神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)時,不能將識別精度作為指標(biāo)。因為如果以識別精度為指標(biāo),則參數(shù)的導(dǎo)數(shù)在絕大多數(shù)地方都會變?yōu)?。
????????識別精度對微小的參數(shù)變化基本上沒有什么反應(yīng),即便有反應(yīng),它的值也是不連續(xù)地、突然地變化。
5.one-hot表示
????????one-hot表示是一種將正確解標(biāo)簽表示為1,其他標(biāo)簽表示為 0的表示方法。
6.梯度
????????本質(zhì):梯度指示的方向是各點處的函數(shù)值減小最多的方向。
7.梯度法
????????表示更新量,在神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)中,稱為學(xué)習(xí)率。學(xué)習(xí)率決定在一次學(xué)習(xí)中,應(yīng)該學(xué)習(xí)多少,以及在多大程度上更新參數(shù),通過不斷地沿梯度方向前進(jìn),逐漸減小函數(shù)值的過程。
8.學(xué)習(xí)率
????????像學(xué)習(xí)率這樣的參數(shù)稱為超參數(shù)。
????????學(xué)習(xí)率這樣的超參數(shù)則是人工設(shè)定的。一般來說,超參數(shù)需要嘗試多個值,以便找到一種可以使學(xué)習(xí)順利進(jìn)行的設(shè)定。
9.神經(jīng)網(wǎng)絡(luò)的梯度

10.學(xué)習(xí)算法的實現(xiàn)
步驟 1(mini-batch)
從訓(xùn)練數(shù)據(jù)中隨機(jī)選出一部分?jǐn)?shù)據(jù),這部分?jǐn)?shù)據(jù)稱為mini-batch。我們的目標(biāo)是減小mini-batch的損失函數(shù)的值。
步驟 2(計算梯度)
為了減小mini-batch的損失函數(shù)的值,需要求出各個權(quán)重參數(shù)的梯度。梯度表示損失函數(shù)的值減小最多的方向。
步驟 3(更新參數(shù))
將權(quán)重參數(shù)沿梯度方向進(jìn)行微小更新。
步驟 4(重復(fù))
重復(fù)步驟1、步驟2、步驟3。
簡要步驟
輸入層->隱藏層??x,w1,b1->a1
隱藏層->隱藏層??sigmoid(a1)->z1? ? ? ?z1,w2,b2->a2
隱藏層->輸出層??sigmoid(a2)->z2??z2,w3,b3->a3??softmax(a3)->y