面向取證產(chǎn)品智能客服問答系統(tǒng)的命名實(shí)體識(shí)別模塊


介紹一下項(xiàng)目(不同于通常的時(shí)間学辱、地點(diǎn)乘瓤、組織機(jī)構(gòu)命名實(shí)體識(shí)別环形,我們這個(gè)項(xiàng)目是有難度的,比如盜竊手段衙傀,采用方案等等偏語義層面)

  • 項(xiàng)目介紹:從語料中準(zhǔn)確識(shí)別命名性的指稱項(xiàng)抬吟,如作案時(shí)間、地點(diǎn)统抬、手段火本、侵害目標(biāo)、損失物品等實(shí)體蓄喇。
  • 我的工作:命名實(shí)體識(shí)別算法研發(fā):將字級(jí)與詞級(jí)特征融合構(gòu)建特征表示層发侵,搭建BiLSTM-CRF-Att模型并進(jìn)行參數(shù)調(diào)優(yōu),F(xiàn)1值達(dá)到84.2妆偏。主要是進(jìn)行了模型選型與Fine-tune
  • 創(chuàng)新點(diǎn):①在字的基礎(chǔ)上增加了詞特征刃鳄,具體做法是初始化了三個(gè)位置嵌入向量segment embedding,分別表示詞頭钱骂、詞中叔锐、詞尾,這個(gè)位置嵌入是一個(gè)初始化的查詢矩陣见秽,然后拿位置嵌入和字嵌入做一個(gè)拼接愉烙,整體作為L(zhǎng)STM的輸入,這樣模型同時(shí)學(xué)習(xí)到了分詞相關(guān)的信息解取,有助于命名實(shí)體識(shí)別(本質(zhì)上是利用了分詞的邊界信息)步责,但是這樣有一個(gè)潛在的問題,那就是引入了分詞的誤差禀苦,拿最近流行的最經(jīng)典的例子:喜歡上 /一個(gè) /人喜歡/ 上 /一個(gè) /人喜歡 /上一個(gè) /人喜歡上/ 一個(gè)人蔓肯,這涉及到認(rèn)知智能領(lǐng)域了,這應(yīng)該也是命名實(shí)體識(shí)別一大痛點(diǎn)振乏!
  • 創(chuàng)新點(diǎn):①引入20維度的位置嵌入信息蔗包,相當(dāng)于給模型提供了先驗(yàn)(為什么要加位置嵌入呢?因?yàn)槲覀兊膶?shí)際任務(wù)有許多專有名詞如某某牌挖掘機(jī)慧邮、某某公園调限、某某牌電纜,我們需要將它加入jieba詞典里误澳,然后添加了位置嵌入可以學(xué)習(xí)到這些專有名詞)②引入了attention機(jī)制耻矮,對(duì)每一個(gè)時(shí)間步的輸出都做一次注意力。
  • 我的工作:參與了最終工程的開發(fā)脓匿,包括接口調(diào)用等等
  • 沒有使用詞向量淘钟,全是初始化字向量。

對(duì)于這個(gè)項(xiàng)目,傳統(tǒng)的方法是怎么樣的米母?

  • 傳統(tǒng)的最初有基于規(guī)則勾扭,基于字典的,到后面有基于機(jī)器學(xué)習(xí)結(jié)合HMM CRF的铁瞒,今年來大家用基于seq2seq結(jié)構(gòu)的RNN LSTM GRU做特征提取器妙色,然后配合CRF做命名實(shí)體識(shí)別。到現(xiàn)在最先進(jìn)的有基于注意力的Transformer慧耍,基于遷移學(xué)習(xí)的BERT身辨。此外,最近還有多任務(wù)學(xué)習(xí)的命名實(shí)體識(shí)別芍碧。

attention怎么做的煌珊?

  • ①對(duì)BiLSTM的結(jié)果(正反向拼接)先進(jìn)行一個(gè)非線性變換(tanh),②然后具體地針對(duì)每個(gè)時(shí)間步初始一個(gè)單獨(dú)的向量泌豆,二者進(jìn)行矩陣乘運(yùn)算定庵,最后得到一個(gè)1*t的向量,③再經(jīng)過softmax得到attention向量踪危,與原BILSTM矩陣進(jìn)行乘運(yùn)算蔬浙。

遇到的難點(diǎn)?你這個(gè)模型的優(yōu)點(diǎn)在哪贞远?

  • 一畴博、有些詞比較偏僻,是專有名詞蓝仲,比如AAA牌拖拉機(jī)等等俱病,模型實(shí)體可能只分到了拖拉機(jī)三個(gè)字,針對(duì)這種問題我們引入了分詞信息袱结,在jieba詞典中把這些專有名詞加進(jìn)去庶艾,最后在訓(xùn)練模型的時(shí)候,將segment embedding也作為信息輸入模型中擎勘,這樣相當(dāng)于為模型提供了詞邊界信息。但是缺點(diǎn)就是有時(shí)候分詞會(huì)出現(xiàn)不準(zhǔn)的情況(分詞通常只有90%準(zhǔn)確率)(但是對(duì)本任務(wù)影響不大颖榜,因?yàn)榇蟛糠謱?shí)體棚饵,分詞能夠分得準(zhǔn))
  • 二、有些內(nèi)容涉及到理解語義掩完,比如盜竊手段:敲碎窗戶順手牽羊噪漾、扒開車門、撬開油箱等等且蓬,純LSTM特征提取能力不夠欣硼,所以加一層attention,增加特征提取能力恶阴。

命名實(shí)體識(shí)別的痛點(diǎn)是什么?

  • 我認(rèn)為很大的一個(gè)痛點(diǎn)就是在認(rèn)知智能上诈胜,我們通常的命名實(shí)體識(shí)別模型(如LSTM)豹障,其實(shí)它做了兩部分工作:①分詞 ②實(shí)體識(shí)別,個(gè)人認(rèn)為實(shí)體識(shí)別本質(zhì)上是個(gè)分類任務(wù)焦匈,相對(duì)容易血公,但分詞很難,屬于認(rèn)知智能缓熟,你只有在理解語義的基礎(chǔ)上才能進(jìn)行更好的分詞累魔。(涉及到強(qiáng)人工智能了)

你提到了多任務(wù)學(xué)習(xí),能講講嗎够滑?

  • 多任務(wù)學(xué)習(xí)也是希望模型同時(shí)做多個(gè)任務(wù)時(shí)垦写,能將其他任務(wù)學(xué)到的知識(shí),用于目標(biāo)任務(wù)中彰触,從而提升目標(biāo)任務(wù)效果梯投。
  • 從本質(zhì)上講,多任務(wù)學(xué)習(xí)其實(shí)是對(duì)目標(biāo)任務(wù)做了一定的約束渴析,可以增強(qiáng)模型的泛化性能晚伙。
  • 多任務(wù)學(xué)習(xí)有兩種模式:參數(shù)的硬共享和軟共享硬共享指多個(gè)任務(wù)之間共享網(wǎng)絡(luò)的同幾層隱藏層俭茧,只不過在靠近輸出的過程中分叉去做不同的任務(wù)咆疗。軟共享指的是不同的任務(wù)使用不同的網(wǎng)絡(luò),但是不同任務(wù)的網(wǎng)絡(luò)參數(shù)母债,采用距離(L1,L2)等作為約束午磁,鼓勵(lì)參數(shù)相似化。
  • 多任務(wù)的核心思想是毡们,知識(shí)在底層是想通的迅皇,它不希望模型只針對(duì)特定任務(wù)學(xué)習(xí)特定的表示,它更希望模型能學(xué)習(xí)到一些底層的衙熔、通用的知識(shí)登颓,這樣可以提升模型泛化性能,同時(shí)也方便遷移至別的任務(wù)红氯。
  • 遷移學(xué)習(xí)在源領(lǐng)域(即數(shù)據(jù))和任務(wù)上學(xué)習(xí)出一般的規(guī)律(泛化知識(shí))框咙,然后將這個(gè)規(guī)律遷移到目標(biāo)領(lǐng)域和任務(wù)上 。而多任務(wù)學(xué)習(xí)同時(shí)學(xué)習(xí)多個(gè)相關(guān)任務(wù)痢甘,讓這些任務(wù)在學(xué)習(xí)過程中共享知識(shí)喇嘱,利用多個(gè)任務(wù)之間的相關(guān)性來改進(jìn)模型在每個(gè)任務(wù)的性能和泛化能力 。
    區(qū)別在于:①遷移學(xué)習(xí)能夠適用于目標(biāo)任務(wù)數(shù)據(jù)不足的情況塞栅,而多任務(wù)學(xué)習(xí)不適用者铜。
    ②遷移學(xué)習(xí)通常分為兩階段:源任務(wù)上的學(xué)習(xí)階段+目標(biāo)任務(wù)上的遷移學(xué)習(xí)階段;而多任務(wù)學(xué)習(xí)部分階段,同時(shí)學(xué)習(xí)作烟。(一個(gè)串行愉粤,一個(gè)并行)
    ③遷移學(xué)習(xí)是單向的知識(shí)遷移,希望能夠提高模型在目標(biāo)任務(wù)上的性能俗壹;而多任務(wù)學(xué)習(xí)是希望你提高所有任務(wù)的性能科汗,是雙向的知識(shí)遷移。
  • 文本分類也可以用到多任務(wù)學(xué)習(xí)绷雏,比如說我們可以對(duì)一批數(shù)據(jù)做多種分類標(biāo)準(zhǔn)头滔,然后進(jìn)行訓(xùn)練啊什么的,不過如果權(quán)衡代價(jià)和利潤(rùn)的話涎显,可能就不太劃算了
  • 對(duì)于比較難的文本分類任務(wù)坤检,比如情感極性觀點(diǎn)極性這類的期吓,那我們可以考慮將觀點(diǎn)極性+摘要提取做多任務(wù)學(xué)習(xí)早歇。

你在這個(gè)項(xiàng)目中遇到的印象最深刻的問題是什么?

  • 這個(gè)命名實(shí)體識(shí)別不同于其他的讨勤,有一些涉及理解的東西箭跳,比如盜竊手段,有拉車門盜竊潭千、打碎玻璃盜竊等等谱姓,這也是我為什么加attention的原因。
  • 還有一些數(shù)據(jù)上的問題刨晴,比如案情發(fā)生地點(diǎn)屉来,大多數(shù)發(fā)生在農(nóng)村或者工地,發(fā)生在公園或者公共場(chǎng)合的不多狈癞,這類數(shù)據(jù)就少茄靠,就需要認(rèn)為擴(kuò)充數(shù)據(jù),比如查當(dāng)?shù)赜心男┕珗@然后做一個(gè)替換等蝶桶。

你知道隱馬爾可夫模型嗎慨绳,大概介紹下?

特比算法其實(shí)是一種動(dòng)態(tài)規(guī)劃算法真竖,動(dòng)態(tài)規(guī)劃算法通常用來解決什么問題儡蔓,在HMM里是怎么使用的?

介紹一下CRF

https://zhuanlan.zhihu.com/p/44042528
B站up主視頻講解疼邀,超贊!必看召锈!

  • BILSTM的輸出為每一個(gè)標(biāo)簽的分值旁振,即使沒有CRF層,我們也可以訓(xùn)練一個(gè)BiLSTM命名實(shí)體識(shí)別模型,雖然我們可以得到句子x中每個(gè)單元的正確標(biāo)簽拐袜,但是我們不能保證標(biāo)簽每次都是預(yù)測(cè)正確的吉嚣。例如,標(biāo)簽序列是“I-Organization I-Person” and “B-Organization I-Person”蹬铺,很顯然這是錯(cuò)誤的尝哆。
  • CRF能從訓(xùn)練數(shù)據(jù)中獲得約束性的規(guī)則,例如①句子中第一個(gè)詞總是以標(biāo)簽“B-“ 或 “O”開始甜攀,而不是“I-”
    ②標(biāo)簽“B-label1 I-label2 I-label3 I-…”,label1, label2, label3應(yīng)該屬于同一類實(shí)體秋泄。例如,“B-Person I-Person” 是合法的序列, 但是“B-Person I-Organization” 是非法標(biāo)簽序列规阀。
    ③標(biāo)簽序列“O I-label” 是非法的.實(shí)體標(biāo)簽的首個(gè)標(biāo)簽應(yīng)該是 “B-“ 恒序,而非 “I-“, 換句話說,有效的標(biāo)簽序列應(yīng)該是“O B-label”。
  • 關(guān)于CRF的損失函數(shù)谁撼,是CRF得分的計(jì)算:把發(fā)射狀態(tài)得分和轉(zhuǎn)移狀態(tài)得分加起來作為分母歧胁,真實(shí)路徑的發(fā)射和轉(zhuǎn)移狀態(tài)得分加起來作為分子,對(duì)其取log:LogLoss\_Function = log( \frac{P_{RealPath}}{P_1+P_2+...+P_N})
    其中厉碟,P_i = e^{S_i}喊巍,至于為什么是e,這涉及到CRF無向圖里的最大團(tuán)啥的箍鼓,不多解釋崭参,,還不會(huì)袄秩。
    其中S_i = EmissionScore_i + TransitionScore_i分別是i位置的發(fā)射概率(這里發(fā)射概率說概率不妥阵翎,因?yàn)槭且粋€(gè)個(gè)值,和并不為1)和轉(zhuǎn)移概率之剧。
  • 總的公式:


log_likelihood, transition_params = tf.contrib.crf.crf_log_likelihood(inputs=crf.logits,
                              tag_indicies=self.labels, sequence_lengths = self.sequence_lengths)
self.loss = -tf.reduce_mean(log_likelihood)
  • 由于CRF是無向圖模型郭卫,且在我們命名實(shí)體識(shí)別中用的是鏈?zhǔn)紺RF,所以它的最大團(tuán)是這樣

    那么也就是當(dāng)前顯狀態(tài)由當(dāng)前隱狀態(tài)和前一時(shí)刻隱狀態(tài)共同決定背稼?贰军??暫認(rèn)為

HMM和CRF有什么區(qū)別蟹肘?

  • HMM基于兩個(gè)假設(shè):①齊次馬爾科夫假設(shè) (任意時(shí)刻的隱狀態(tài)只依賴于前一時(shí)刻的隱狀態(tài))②觀測(cè)獨(dú)立假設(shè)(任意時(shí)刻的觀測(cè)狀態(tài)(即顯狀態(tài))只依賴于當(dāng)前時(shí)刻的隱狀態(tài))
  • CRF呢词疼?CRF全名條件隨機(jī)場(chǎng)條件的意思是它是判別式模型帘腹,隨機(jī)場(chǎng)表明它是無向圖模型
  • CRF是判別模型贰盗,HMM是生成模型
  • HMM通過發(fā)射概率求出轉(zhuǎn)移概率,最后經(jīng)過維特比算法求最大概率
  • HMM是基于統(tǒng)計(jì)的阳欲,而且它假設(shè)當(dāng)前狀態(tài)只與上一層狀態(tài)相關(guān)舵盈,不科學(xué)陋率,并且是求全概率公式,計(jì)算量大秽晚。同時(shí)HMM認(rèn)為顯狀態(tài)由當(dāng)前隱狀態(tài)決定

lstm瓦糟,畫了lstm的結(jié)構(gòu)圖,以及寫了所有的公式赴蝇,講了下lstm的流程

  • 一菩浙、遺忘門:首先決定從細(xì)胞狀態(tài)中丟棄什么信息。
    遺忘門
  • 二句伶、輸入門:決定輸入哪些新信息細(xì)胞狀態(tài)
    輸入門
  • 三劲蜻、更新:將遺忘門中剩下的記憶與輸入門的新記憶加起來,作為新的記憶熄阻。


    更新細(xì)胞狀態(tài)
  • 四斋竞、輸出門:基于新的細(xì)胞狀態(tài),得到輸出:首先秃殉,新的細(xì)胞狀態(tài)經(jīng)過一個(gè)tanh的非線性映射坝初,然后與運(yùn)行一個(gè)sigmoid層,決定哪些部分要遺忘钾军,最后進(jìn)行輸出鳄袍,作為ht和yt

為什么RNN會(huì)出現(xiàn)梯度消失和梯度爆炸?

  • 標(biāo)準(zhǔn)RNN結(jié)構(gòu)簡(jiǎn)單吏恭,在進(jìn)行反向梯度求導(dǎo)的過程中拗小,S(t+1) = tanh( U*X(t+1) + W*S(t))但是隨著時(shí)間間隔不斷增大時(shí),RNN會(huì)喪失學(xué)習(xí)到連接很遠(yuǎn)的信息能力(梯度消失)樱哼,依賴于我們的激活函數(shù)和網(wǎng)絡(luò)參數(shù)哀九,也可能會(huì)產(chǎn)生梯度爆炸。梯度爆炸可以通過梯度裁剪解決搅幅。
  • 具體來阅束,其實(shí)LSTM也是會(huì)發(fā)生梯度消失的,只不過人家LSTM中細(xì)胞狀態(tài)是相加的茄唐,所以它的梯度傳播有很多條路徑息裸,單論每條路徑,其實(shí)都是會(huì)梯度消失/爆炸的沪编。
  • 最原始的時(shí)候呼盆,LSTM是沒有遺忘門的,也就是相當(dāng)于遺忘門置1蚁廓,不遺忘访圃,那么這時(shí)LSTM其實(shí)相當(dāng)于高速公路網(wǎng)絡(luò),也就是殘差相嵌,由于總的遠(yuǎn)距離梯度 = 各條路徑的遠(yuǎn)距離梯度之和挽荠,即便其他遠(yuǎn)距離路徑梯度消失了克胳,只要保證有一條遠(yuǎn)距離路徑(就是上面說的那條高速公路)梯度不消失,總的遠(yuǎn)距離梯度就不會(huì)消失(正常梯度 + 消失梯度 = 正常梯度)圈匆。因此 LSTM 通過改善一條路徑上的梯度問題拯救了總體的遠(yuǎn)距離梯度。
  • 對(duì)于現(xiàn)在帶有遺忘門的LSTM來說捏雌,遺忘門的導(dǎo)數(shù)通常是非0即1的跃赚,但這不影響,有可能你在A路線上是0性湿,但是在B路線上就是1了纬傲,這體現(xiàn)出模型的特征選擇特性。

LSTM為什么能解決梯度消失呢肤频?

  • LSTM對(duì)記憶的操作是相加的叹括,線性的,使得不同時(shí)序的記憶對(duì)當(dāng)前的影響相同宵荒,為了讓不同時(shí)序的記憶對(duì)當(dāng)前影響變得可控汁雷,LSTM引入了遺忘門、輸入門和輸出門报咳。

lstm面對(duì)特別長(zhǎng)的文本侠讯,有什么解決辦法呢?

  • 截?cái)嘁徊糠郑≒adding)
  • 首先預(yù)處理暑刃,刪去低頻詞等等厢漩。
  • 想法(是否可行未知)雙向 LSTM,其中每個(gè) LSTM 單元對(duì)的一部分處理輸入序列的一半岩臣,在輸出至層外時(shí)組合溜嗜。這種方法可以將序列分為兩塊或多塊處理。
  • 想法(是否可行未知)我們還可以探索序列感知編碼方法架谎、投影法甚至哈希算法來將時(shí)間步的數(shù)量減少到指定長(zhǎng)度炸宵。

LSTM的復(fù)雜度

  • 假設(shè)輸入維度為x_dim,LSTM輸出維度為y_dim狐树,那么焙压,LSTM的復(fù)雜度就是4*((x\_dim + y\_dim)*y\_dim + y\_dim)
    具體推導(dǎo)看這里講的很好!(三個(gè)sigmoid門以及一個(gè)輸入門中的tanh抑钟,注意:輸出門中的tanh不進(jìn)行矩陣變換)

我的職責(zé):模型選型涯曲,對(duì)比,為什么要用LSTM 在塔,為什么不用純CRF(CRF更多是偏向于統(tǒng)計(jì)學(xué)幻件,引入字向量的LSTM能學(xué)習(xí)到語義,如果出現(xiàn)一些錯(cuò)別字或者未登錄詞等情況蛔溃,只使用CRF就不太行)

LSTM中tanh的作用

  • LSTM中的tanh單元只是對(duì)數(shù)據(jù)作一次線性變換+非線性映射tanh(wx+b)以提升非線性建模的模型容量
  • 此外绰沥,tanh其實(shí)也是對(duì)數(shù)據(jù)進(jìn)行了一次標(biāo)準(zhǔn)化處理篱蝇。

LSTM中sigmoid的作用

  • sigmoid決定了哪些內(nèi)容需要更新(或者說哪些內(nèi)容需要丟棄)

LSTM中c和h的區(qū)別

  • c可以看做一個(gè)長(zhǎng)期的記憶,h可以看做一個(gè)短期的記憶徽曲,這里c與RNN的h更像

項(xiàng)目總結(jié)與思考

LSTM深度思考

  • 從圖上可以看出來零截,上面的C(細(xì)胞狀態(tài)層)可以看做是長(zhǎng)期記憶,下面的H和X可以看做是短期記憶秃臣,長(zhǎng)短期聯(lián)合涧衙,所以叫LSTM(長(zhǎng)短期記憶網(wǎng)絡(luò)

梯度消失及其解決方案

  • 根據(jù)鏈?zhǔn)角髮?dǎo)和反向傳播如暖,我們很容易得出

    這里C是代價(jià)函數(shù)(損失函數(shù))
    如果我們使用標(biāo)準(zhǔn)方法來初始化網(wǎng)絡(luò)中的權(quán)重字柠,那么會(huì)使用一個(gè)均值為0標(biāo)準(zhǔn)差為1的高斯分布。因此所有的權(quán)重通常會(huì)滿足|wj|<1淳蔼,而s'是小于0.25(對(duì)于sigmoid稚虎,它的導(dǎo)數(shù)最大為0.25)的值撤嫩,那么當(dāng)神經(jīng)網(wǎng)絡(luò)特別深的時(shí)候,梯度呈指數(shù)級(jí)衰減蠢终,導(dǎo)數(shù)在每一層至少會(huì)被壓縮為原來的1/4序攘,當(dāng)z值絕對(duì)值特別大(網(wǎng)絡(luò)層特別深)時(shí),導(dǎo)數(shù)趨于0蜕径,正是因?yàn)檫@兩個(gè)原因两踏,從輸出層不斷向輸入層反向傳播訓(xùn)練時(shí),導(dǎo)數(shù)很容易逐漸變?yōu)?兜喻,使得權(quán)重和偏差參數(shù)無法被更新梦染,導(dǎo)致神經(jīng)網(wǎng)絡(luò)無法被優(yōu)化,訓(xùn)練永遠(yuǎn)不會(huì)收斂到良好的解決方案朴皆。 這被稱為梯度消失問題帕识。
  • 梯度消失解決方案
    batch norm,Batchnorm是深度學(xué)習(xí)發(fā)展以來提出的最重要的成果之一了遂铡,目前已經(jīng)被廣泛的應(yīng)用到了各大網(wǎng)絡(luò)中肮疗。batchnorm對(duì)每一層的輸出(激活函數(shù)之前)進(jìn)行一次縮放和變換(scale和shift),將其拉回均值為0扒接,方差為1的標(biāo)準(zhǔn)正態(tài)分布(也不是完全標(biāo)準(zhǔn)的伪货,還是要學(xué)習(xí)兩個(gè)參數(shù)\beta和\gamma,否則模型特征就丟失了)這樣使得激活輸入值落在非線性函數(shù)對(duì)輸入比較敏感的區(qū)域钾怔,這樣輸入的小變化就會(huì)導(dǎo)致?lián)p失函數(shù)較大的變化碱呼,使得讓梯度變大,避免梯度消失問題產(chǎn)生宗侦,而且梯度變大意味著學(xué)習(xí)收斂速度快愚臀,能大大加快訓(xùn)練速度。
    換激活函數(shù):sigmoid的本身性質(zhì)使得它最大的導(dǎo)數(shù)也是0.25矾利,相當(dāng)于沒多一層姑裂,梯度至少下降4倍馋袜,首先可以將sigmoid換成tanh,tanh的導(dǎo)數(shù)是1-{f(x)^2}舶斧,下圖可以看出欣鳖,其效果比sigmoid好一點(diǎn)

    此外,可以采用ReLu作為激活函數(shù)茴厉,ReLu的導(dǎo)數(shù)在參數(shù)大于0的時(shí)候恒等于1观堂,避免了梯度消失問題,此外呀忧,ReLu計(jì)算速度也快(計(jì)算機(jī)不善于做指數(shù)運(yùn)算)但是ReLu的缺點(diǎn)在于如果參數(shù)小于0,那么導(dǎo)數(shù)為0溃睹,這樣某些神經(jīng)元可能永遠(yuǎn)不會(huì)被激活而账,相應(yīng)的參數(shù)可能永遠(yuǎn)不會(huì)被更新。
    解決這個(gè)辦法也可以通過換用LeakyReLu來解決
    殘差結(jié)構(gòu):自從殘差提出后因篇,幾乎所有的深度網(wǎng)絡(luò)都離不開殘差的身影泞辐,相比較之前的幾層,幾十層的深度網(wǎng)絡(luò)竞滓,在殘差網(wǎng)絡(luò)面前都不值一提咐吼,殘差可以很輕松的構(gòu)建幾百層,一千多層的網(wǎng)絡(luò)而不用擔(dān)心梯度消失過快的問題商佑,原因就在于殘差的捷徑(shortcut)部分锯茄,其中殘差單元如下圖所示:

    相比較于以前網(wǎng)絡(luò)的直來直去結(jié)構(gòu),殘差中有很多這樣的跨層連接結(jié)構(gòu)茶没,這樣的結(jié)構(gòu)在反向傳播中具有很大的好處肌幽,見下式:

    LSTM:LSTM的梯度傳播有很多條路徑
    這條路徑上只有逐元素相乘和相加的操作,梯度流最穩(wěn)定抓半;但是其他路徑
    上梯度流與普通 RNN 類似喂急,照樣會(huì)發(fā)生相同的權(quán)重矩陣反復(fù)連乘。
    注意笛求,LSTM在最初提出的時(shí)候沒有遺忘門廊移,即f_t為1,從而這條路徑上的梯度暢通無阻探入,不會(huì)消失狡孔。類似于 ResNet 中的殘差連接。
    但LSTM為什么能緩解梯度爆炸呢新症?首先步氏,LSTM的其他路徑非常崎嶇(見上個(gè)圖),和普通RNN相比經(jīng)過了多次激活函數(shù)徒爹,此外荚醒,還有一個(gè)sigmoid函數(shù)芋类,要知道相比tanh函數(shù),sigmoid函數(shù)的導(dǎo)數(shù)最大也是0.25界阁,所以更加緩解了梯度爆炸問題侯繁。(sigmoid會(huì)帶來梯度消失問題,但是LSTM已經(jīng)解決了)
    題外話:LSTM只是“緩解”了梯度爆炸問題泡躯,梯度爆炸仍然有可能出現(xiàn)(初始化太大或者f_t*c_{t-1}太大)贮竟,所以采用梯度裁剪等方式避免

梯度爆炸及其解決方案

  • 當(dāng)我們將w初始化為一個(gè)較大的值時(shí),例如>10的值较剃,那么從輸出層到輸入層每一層都會(huì)有一個(gè)s'(zn)*wn的增倍咕别,當(dāng)s'(zn)為0.25時(shí)s'(zn)*wn>2.5,同梯度消失類似写穴,當(dāng)神經(jīng)網(wǎng)絡(luò)很深時(shí)惰拱,梯度呈指數(shù)級(jí)增長(zhǎng),最后到輸入時(shí)啊送,梯度將會(huì)非常大偿短,我們會(huì)得到一個(gè)非常大的權(quán)重更新,這就是梯度爆炸的問題馋没,在循環(huán)神經(jīng)網(wǎng)絡(luò)中最為常見昔逗。
  • 梯度爆炸解決方案
    ①好的參數(shù)初始化方式:用01正態(tài)分布(均值為0,方差為1)(但是也不能保證參數(shù)不會(huì)跑到-1篷朵,1之外的區(qū)間)
    ②梯度截?cái)啵ㄌ荻炔眉簦⑻荻认拗圃谀硞€(gè)區(qū)間[-clip\_calue, clip\_value]
    ③batchnorm
    ④正則化:對(duì)參數(shù)的大小進(jìn)行限制

LSTM:LSTM之所以緩解(不是徹底解決)梯度爆炸是因?yàn)樗囊话肼烦烫荻雀碌缆诽閸缌耍骋徊糠郑┕磁瑂igmoid函數(shù)加了一個(gè)tanh函數(shù),sigmoid函數(shù)導(dǎo)數(shù)小于等于0.25款票,所以梯度爆炸不太可能發(fā)生控硼。(但是另一半路仍然可能發(fā)生梯度爆炸,但是因?yàn)槭莝igmoid艾少,所以也緩解了)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末卡乾,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子缚够,更是在濱河造成了極大的恐慌幔妨,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谍椅,死亡現(xiàn)場(chǎng)離奇詭異误堡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)雏吭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門锁施,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事悉抵〖缈瘢” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵姥饰,是天一觀的道長(zhǎng)傻谁。 經(jīng)常有香客問我,道長(zhǎng)列粪,這世上最難降的妖魔是什么审磁? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮岂座,結(jié)果婚禮上态蒂,老公的妹妹穿的比我還像新娘。我一直安慰自己费什,他們只是感情好吃媒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吕喘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪刑桑。 梳的紋絲不亂的頭發(fā)上氯质,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音祠斧,去河邊找鬼闻察。 笑死,一個(gè)胖子當(dāng)著我的面吹牛琢锋,可吹牛的內(nèi)容都是我干的辕漂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼吴超,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼钉嘹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鲸阻,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤跋涣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后鸟悴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陈辱,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年细诸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沛贪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖利赋,靈堂內(nèi)的尸體忽然破棺而出水评,到底是詐尸還是另有隱情,我是刑警寧澤隐砸,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布之碗,位于F島的核電站,受9級(jí)特大地震影響季希,放射性物質(zhì)發(fā)生泄漏褪那。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一式塌、第九天 我趴在偏房一處隱蔽的房頂上張望博敬。 院中可真熱鬧,春花似錦峰尝、人聲如沸偏窝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祭往。三九已至,卻和暖如春火窒,著一層夾襖步出監(jiān)牢的瞬間硼补,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工熏矿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留已骇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓票编,卻偏偏與公主長(zhǎng)得像褪储,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子慧域,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

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