神經(jīng)網(wǎng)絡(luò)體系搭建(二)——深度學(xué)習(xí)網(wǎng)絡(luò)

本篇是神經(jīng)網(wǎng)絡(luò)體系搭建的第二篇困鸥,解決體系搭建的深度學(xué)習(xí)網(wǎng)絡(luò)相關(guān)問題,詳見神經(jīng)網(wǎng)絡(luò)體系搭建(序)

深度學(xué)習(xí)是一個(gè)已經(jīng)被說爛了的詞剑按,幾乎說起人工智能疾就,非專業(yè)人士也會(huì)說出深度學(xué)習(xí)這個(gè)詞,甚至有時(shí)候覺得神經(jīng)網(wǎng)絡(luò)艺蝴,low爆了猬腰,深度學(xué)習(xí)才流行。
我也一度以為深度學(xué)習(xí)是多么神奇的一個(gè)技術(shù)猜敢,其實(shí)說到底姑荷,還是神經(jīng)網(wǎng)絡(luò)盒延,沒啥高大上的,只不過深了很多層鼠冕,注意添寺,是“深”,而不是“寬”懈费。但是呢畦贸,就是深了很多層,確實(shí)讓它的表現(xiàn)好了很多楞捂,所以它才有了一個(gè)專有名字薄坏,叫做深度學(xué)習(xí)。

深入了解深度學(xué)習(xí)寨闹,先從多層感知器說起胶坠。

多層感知器(MLP,Multilayer Perceptron)

Deep and Wide

多層感知器的多層到底是指wide還是deep繁堡,看了一些例子沈善,發(fā)現(xiàn)只要wide了,就可以叫一個(gè)多層感知器椭蹄,那些中間層就被成為隱藏層闻牡。這里其實(shí)是有疑問的,因?yàn)槌诉@里绳矩,其他地方的“多層”指的都是Deep方向的層罩润,我也表示很迷糊……

反向傳播

神經(jīng)網(wǎng)絡(luò)體系搭建(一)中的權(quán)重求法,是單層神經(jīng)網(wǎng)絡(luò)或者單層網(wǎng)絡(luò)的堆疊權(quán)重矩陣的求法翼馆,如果有多層割以,就需要用反向傳播來求出每層的權(quán)重矩陣。

反向傳播的到底是什么应媚?是誤差項(xiàng)严沥,也就是神經(jīng)網(wǎng)絡(luò)體系搭建(一)中提到的error_term

要使用梯度下降法更新隱藏層的權(quán)重中姜,你需要知道各隱藏層節(jié)點(diǎn)的誤差對(duì)最終輸出的影響消玄。每層的輸出是由兩層間的權(quán)重決定的,兩層之間產(chǎn)生的誤差丢胚,按權(quán)重縮放后在網(wǎng)絡(luò)中向前傳播翩瓜。既然我們知道輸出誤差,便可以用權(quán)重來反向傳播到隱藏層嗜桌。
——來自優(yōu)達(dá)學(xué)城

我們的目的是更新每一層的權(quán)重矩陣奥溺,更新的重點(diǎn)是求delta_w,求delta_w的重點(diǎn)是找到誤差項(xiàng)骨宠,我們可以正向傳播找到輸出節(jié)點(diǎn)的誤差項(xiàng)浮定,但是隱藏層的誤差項(xiàng)各是什么我們不知道相满,但是把網(wǎng)絡(luò)倒過來看,就可以把誤差項(xiàng)傳播回去桦卒,找到隱藏層的誤差項(xiàng)立美,這就是反向傳播。

數(shù)學(xué)原理

除去輸入層和輸出層方灾,剩下幾層就代表幾層的網(wǎng)絡(luò)建蹄。反向傳播詳細(xì)的計(jì)算過程見下圖(可查看原圖放大)。


反向傳播計(jì)算過程

代碼實(shí)現(xiàn)

下面實(shí)現(xiàn)有一個(gè)隱藏層的神經(jīng)網(wǎng)路裕偿。

import numpy as np
# 設(shè)置超參數(shù)
n_hidden = 2  # number of hidden units
epochs = 900
learnrate = 0.005

# 設(shè)置數(shù)據(jù)數(shù)量及每條數(shù)據(jù)的特征數(shù)量
n_records, n_features = features.shape
last_loss = None

# 初始化權(quán)重
weights_input_hidden = np.random.normal(scale=1 / n_features ** .5,
                                        size=(n_features, n_hidden))
weights_hidden_output = np.random.normal(scale=1 / n_features ** .5,
                                         size=n_hidden)
# 迭代e次
for e in range(epochs):
     # 將各層的delta_w矩陣置零
    del_w_input_hidden = np.zeros(weights_input_hidden.shape)
    del_w_hidden_output = np.zeros(weights_hidden_output.shape)
    # 對(duì)每一條數(shù)據(jù)
    for x, y in zip(features.values, targets):
        ## 正向傳播 ##
        # 計(jì)算隱藏層節(jié)點(diǎn)的輸入
        hidden_input = np.dot(x, weights_input_hidden)
        # 計(jì)算隱藏層節(jié)點(diǎn)的輸出
        hidden_output = sigmoid(hidden_input)
        # 計(jì)算輸出
        output = sigmoid(np.dot(hidden_output, weights_hidden_output))

        ## 反向傳播 ##
        # 計(jì)算誤差
        error = y - output

        # 計(jì)算輸出節(jié)點(diǎn)誤差項(xiàng)
        output_error_term = error * output * (1 - output)

        # 計(jì)算隱藏節(jié)點(diǎn)誤差項(xiàng)
        hidden_error_term = np.dot(output_error_term, weights_hidden_output)  * hidden_output * (1 - hidden_output)
        
        # 更新所有delta_w
        del_w_hidden_output +=  output_error_term * hidden_output 
        del_w_input_hidden += hidden_error_term * x[:, None]

    # 更新所有權(quán)重矩陣
    weights_input_hidden += learnrate * del_w_input_hidden / n_records
    weights_hidden_output += learnrate * del_w_hidden_output / n_records

深度學(xué)習(xí)網(wǎng)絡(luò)

掌握了反向傳播洞慎,就掌握了深度學(xué)習(xí)網(wǎng)路的基礎(chǔ),對(duì)整個(gè)網(wǎng)絡(luò)的實(shí)現(xiàn)也就都明白了嘿棘。剩下的其實(shí)就是根據(jù)具體要解決的問題設(shè)置網(wǎng)絡(luò)劲腿,調(diào)整迭代次數(shù),調(diào)整隱藏層數(shù)鸟妙,調(diào)整分類器數(shù)等等焦人。

過擬合的防止

通常將數(shù)據(jù)分為訓(xùn)練集、驗(yàn)證集和測(cè)試集重父,為什么會(huì)多出來一個(gè)“驗(yàn)證集”花椭?就是為了防止過擬合。在訓(xùn)練時(shí)房午,我們通常用它的accuracy來確定學(xué)習(xí)率矿辽、迭代次數(shù)等超參數(shù)。如果在測(cè)試集上做這些歪沃,會(huì)是網(wǎng)絡(luò)“記住”測(cè)試集嗦锐,一點(diǎn)點(diǎn)過擬合測(cè)試集,因此有了驗(yàn)證集沪曙。

為了防止網(wǎng)絡(luò)過擬合,通常有以下三個(gè)辦法:

  • 觀察“驗(yàn)證集(注意不是訓(xùn)練集也不是測(cè)試集而是驗(yàn)證集)”大的performance萎羔,在它停止提高時(shí)停止訓(xùn)練液走。
  • L2正則化:對(duì)網(wǎng)絡(luò)應(yīng)用人為約束,隱式地減少自有參數(shù)的數(shù)量贾陷,同時(shí)不會(huì)使其更難優(yōu)化缘眶。
    具體做法是將權(quán)重的L2范數(shù)添加到損失函數(shù)乘以一個(gè)較小的常數(shù)髓废,好處就是不用動(dòng)網(wǎng)絡(luò)結(jié)構(gòu)巷懈,但是多了一個(gè)要調(diào)節(jié)的超參數(shù)。L2范數(shù)代表想兩種各元素的平方和慌洪。
  • dropout:修改網(wǎng)絡(luò)本身結(jié)構(gòu)顶燕,在訓(xùn)練時(shí)凑保,隨機(jī)“刪除”一半的隱層單元。


    Dropout涌攻,圖片來源于優(yōu)達(dá)學(xué)城課程截圖

問題回答

至此欧引,深度學(xué)習(xí)網(wǎng)絡(luò)的骨架搭建完畢。

  • 多層感知器是什么恳谎?
    包含眾多中間層的神經(jīng)網(wǎng)絡(luò)芝此。
  • 深度學(xué)習(xí)是什么?
    通過加深網(wǎng)絡(luò)層數(shù)使網(wǎng)絡(luò)表現(xiàn)更好因痛。
  • 深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)有什么區(qū)別婚苹?
    就是層數(shù)深了。
  • 深度學(xué)習(xí)網(wǎng)絡(luò)模型有哪些參數(shù)可以調(diào)整(優(yōu)化)鸵膏?
    選擇合適的迭代次數(shù)膊升、找合適的學(xué)習(xí)率、用L2正則化中較小的常數(shù)较性、合適的隱藏層數(shù)用僧、合適的分類器數(shù)、找合適的初始權(quán)重矩陣赞咙、找合適的激活函數(shù)责循、找合適的損失函數(shù)。

以上內(nèi)容來自822實(shí)驗(yàn)室神經(jīng)網(wǎng)絡(luò)知識(shí)分享
我們的822攀操,我們的青春
歡迎所有熱愛知識(shí)熱愛生活的朋友和822思享實(shí)驗(yàn)室一起成長(zhǎng)院仿,吃喝玩樂,享受知識(shí)速和。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末歹垫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子颠放,更是在濱河造成了極大的恐慌排惨,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碰凶,死亡現(xiàn)場(chǎng)離奇詭異暮芭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)欲低,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門辕宏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人砾莱,你說我怎么就攤上這事瑞筐。” “怎么了腊瑟?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵聚假,是天一觀的道長(zhǎng)块蚌。 經(jīng)常有香客問我,道長(zhǎng)魔策,這世上最難降的妖魔是什么匈子? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮闯袒,結(jié)果婚禮上虎敦,老公的妹妹穿的比我還像新娘。我一直安慰自己政敢,他們只是感情好其徙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喷户,像睡著了一般唾那。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上褪尝,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天闹获,我揣著相機(jī)與錄音,去河邊找鬼河哑。 笑死避诽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的璃谨。 我是一名探鬼主播沙庐,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼佳吞!你這毒婦竟也來了拱雏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤底扳,失蹤者是張志新(化名)和其女友劉穎铸抑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衷模,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡羡滑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了算芯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凳宙,死狀恐怖熙揍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情氏涩,我是刑警寧澤届囚,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布有梆,位于F島的核電站,受9級(jí)特大地震影響意系,放射性物質(zhì)發(fā)生泄漏泥耀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一蛔添、第九天 我趴在偏房一處隱蔽的房頂上張望痰催。 院中可真熱鬧,春花似錦迎瞧、人聲如沸夸溶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缝裁。三九已至,卻和暖如春足绅,著一層夾襖步出監(jiān)牢的瞬間捷绑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工氢妈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粹污,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓允懂,卻偏偏與公主長(zhǎng)得像厕怜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蕾总,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容