自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從任務(wù)到可視化,如何理解LSTM網(wǎng)絡(luò)中的神經(jīng)元

移動開發(fā)
對人類而言,轉(zhuǎn)寫是一件相對容易并且可解釋的任務(wù),所以它比較適合用來解釋神經(jīng)網(wǎng)絡(luò)做了哪些事情,以及神經(jīng)網(wǎng)絡(luò)所做的事情是否和人類在同樣的任務(wù)上做的事情有相似之處。因此,我們從轉(zhuǎn)寫任務(wù)開始進(jìn)一步從可視化的角度解釋神經(jīng)網(wǎng)絡(luò)中的單個(gè)神經(jīng)元實(shí)際上都學(xué)到了什么,以及它們到底是如何決策的。

 對人類而言,轉(zhuǎn)寫是一件相對容易并且可解釋的任務(wù),所以它比較適合用來解釋神經(jīng)網(wǎng)絡(luò)做了哪些事情,以及神經(jīng)網(wǎng)絡(luò)所做的事情是否和人類在同樣的任務(wù)上做的事情有相似之處。因此,我們從轉(zhuǎn)寫任務(wù)開始進(jìn)一步從可視化的角度解釋神經(jīng)網(wǎng)絡(luò)中的單個(gè)神經(jīng)元實(shí)際上都學(xué)到了什么,以及它們到底是如何決策的。

目錄:

  • 轉(zhuǎn)寫
  • 網(wǎng)絡(luò)結(jié)構(gòu)
  • 分析神經(jīng)元
  • 「t」是如何變成「ծ」的?
  • 神經(jīng)元 是如何學(xué)習(xí)的?
  • 可視化長短期記憶(LSTM)網(wǎng)絡(luò)中的單元(cell)
  • 總結(jié)評論

轉(zhuǎn)寫(Transliteration)

數(shù)十億互聯(lián)網(wǎng)用戶中,大約有一半在使用非拉丁文字母(non-Latin alphabets)表示的語言,例如俄語、阿拉伯語、中文、希臘語以及亞美尼亞語等。很多時(shí)候他們也會隨意地用拉丁文字母來寫這些語言。

  • Привет: Privet, Privyet, Priwjet, …
  • كيف حالك: kayf halk, keyf 7alek, …
  • Բարև Ձեզ: Barev Dzez, Barew Dzez, …

因此,用戶生成的內(nèi)容中使用「拉丁化」或者「羅馬化」的格式內(nèi)容越來越多,這些格式的內(nèi)容難以解析、搜索,甚至識別。轉(zhuǎn)寫就是就是將這些內(nèi)容自動地轉(zhuǎn)換成規(guī)范格式的任務(wù)。

  • Aydpes aveli sirun e.: Այդպես ավելի սիրուն է:

什么因素使得這個(gè)問題比較困難呢?

  1. 如上所示,不同的語言使用者會用到不同的羅馬化方式。例如,v 或者 w 在亞美尼亞語中被寫為վ。
  2. 多個(gè)字母可以被羅馬化成一個(gè)拉丁字母。例如 r 可以代表亞美尼亞語中的 ր 或者 ռ。
  3.  一個(gè)單個(gè)字母可以被羅馬化成多個(gè)拉丁字母或者拉丁字母的組合。例如,ch 組合代表西里爾字母中的ч或者亞美尼亞子母中的 չ,但是 c 和 h 各自又代表其他的東西。
  4. 英語單詞和跨語言的拉丁文標(biāo)志,例如 URL,通常都以非拉丁文本的形式出現(xiàn)。例如,youtube.com 和 MSFT 中的字母不會被改變。

人類很擅長解決這些模棱兩可的東西。我們曾經(jīng)展示過 LSTM 也能夠?qū)W會解決所有的這些歧義性,至少在亞美尼亞語上。例如,我們的模型可以正確地將 es sirum em Deep Learning 轉(zhuǎn)寫為ես սիրում եմ Deep Learning,而不是ես սիրում եմ Դեեփ Լէարնինգ。

網(wǎng)絡(luò)架構(gòu)

我們從維基百科上取了很多亞美尼亞文本,并使用概率規(guī)則(probabilistic rules)來得到羅馬化的文本。概率規(guī)則覆蓋了人們在亞美尼亞語中使用的大多數(shù)羅馬化規(guī)則。

我們把拉丁字母編碼成了 one-hot 向量,然后使用字符級別的雙向 LSTM。在每一個(gè)時(shí)間步長上,網(wǎng)絡(luò)都會盡力去猜測原始亞美尼亞語句子中的下一個(gè)字符。有時(shí)候一個(gè)單獨(dú)的亞美尼亞字母會由多個(gè)拉丁文字母表示,所以在使用 LSTM 之前將羅馬化的文本和原始文本對齊是很有幫助的(否則,我們需要使用句子到句子的 LSTM,但是這種網(wǎng)絡(luò)非常難以訓(xùn))。幸好我們可以對齊,因?yàn)榱_馬尼亞文本只由我們自己生成的。例如,dzi 應(yīng)該被轉(zhuǎn)寫成ձի,其中 dz 與ձ對應(yīng),i 與ի對應(yīng)。因此我們在亞美尼亞文本中添加了一個(gè)占位符:ձի 變成了 ձ_ի,因此現(xiàn)在 z 可以被轉(zhuǎn)寫為 _。在轉(zhuǎn)寫完成之后我們只需要將輸出字符串中的所有 _ 清除掉即可。

我們的神經(jīng)網(wǎng)絡(luò)包含兩個(gè) LSTM(共有個(gè) 228 個(gè)單元),它會沿著拉丁文序列向前和向后遍覽。LSTM 的輸出在每個(gè)步驟都是相連的(連接層),然后一個(gè)具有 228 個(gè)神經(jīng)元的緊密層(dense layer)用在隱藏層的頂部,然后再用一個(gè)使用 softmax 激活函數(shù)的緊密層(輸出層)來得到輸出概率。我們還將輸入層與隱藏層連在一起,這樣就有 300 個(gè)神經(jīng)元了。這比我們之前的博客中描述的相同主題上使用的簡化版網(wǎng)絡(luò)更加簡潔(主要的區(qū)別就是我們沒有使用雙向 LSTM(biLSTM)的第二層)。

分析神經(jīng)元

我們嘗試回答下面的兩個(gè)問題:

  1. 網(wǎng)絡(luò)如何處理具有幾個(gè)可能的輸出結(jié)果的例子?(例如 r => ր vs ռ 等等)
  2. 特定的神經(jīng)元都解決了什么問題?

「t」是如何變成「ծ」的?

首先,我們使用一個(gè)特定的字符作為輸入,另一個(gè)特定的字符作為輸出。例如,我們對「t」是如何變成「ծ」比較感興趣(我們知道 t 可以變成 տ、թ 或者ծ)。

我們對每一個(gè)神經(jīng)元的正確輸出是ծ和不是ծ的情況都繪制了直方圖。對大多數(shù)神經(jīng)元來說,這個(gè)直方圖都是比較相似的,只是有以下這兩種情況而已:

直方圖

這兩幅直方圖表明,通過觀察這個(gè)特定神經(jīng)元的激活結(jié)果,我們就能夠以較高的準(zhǔn)確率猜到 t 的輸出結(jié)果是不是ծ。為了量化這兩幅直方圖的差別,我們使用了海寧格距離(Hellinger distance),即我們得到對神經(jīng)元激活結(jié)果的***值和最小值,并將它們之間劃分成 1000 分,然后應(yīng)用海寧哥距離公式。我們計(jì)算了每一個(gè)神經(jīng)元的海寧格距離,然后將最感興趣的那些以一幅圖展示了出來:

直方圖之間的距離

神經(jīng)元的顏色代表兩幅直方圖之間的距離(更深的顏色意味著更大的距離)。兩個(gè)神經(jīng)元之間連線的線寬代表從更低層到更高層的連接貢獻(xiàn),即均值。橙色和綠色的線分別代表正或負(fù)的信號。

圖片頂部的神經(jīng)元來自于輸出層,輸出層下面的神經(jīng)元來自于隱藏層(頂部的 12 個(gè)神經(jīng)元表示直方圖之間的距離)。隱藏層下面是連接層。連接層的神經(jīng)元被分成兩部分:左半部分神經(jīng)元是從輸入序列向輸出序列傳播的 LSTM,右半部分是從輸出向輸入傳播的 LSTM。我們根據(jù)直方圖的距離從每個(gè) LSTM 中展示出了前十個(gè)神經(jīng)元。

在 t => ծ 的情況中,很明顯隱藏層的前 12 個(gè)神經(jīng)元都向 ծ 和ց(ց 在亞美尼亞語言也經(jīng)常被羅馬化成 t)傳遞正信號,向 տ, թ 以及其他的字符傳遞負(fù)信號。

顏色變化

我們也可以發(fā)現(xiàn)從右到左的輸出顏色更加深,這表明這些神經(jīng)元「擁有更多關(guān)于是否要預(yù)測成ծ的知識」,另一方面,這些神經(jīng)元和隱藏層之間的連線顏色卻更加淺,這意味著他們對隱藏層中頂部的 12 個(gè)神經(jīng)元激活程度的貢獻(xiàn)更大。這是非常自然的結(jié)果,因?yàn)楫?dāng)下一個(gè)符號是 s 的情況下,t 一般會變?yōu)?#1390;,而且,僅僅從右向左的 LSTM 才能意識到下一個(gè)字符。

我們對 LSTM 內(nèi)部的神經(jīng)元和門(gate)做一下類似的分析。分析結(jié)果在圖中底部的 6 行展示了出來。實(shí)際上,有趣的是最「置信的」神經(jīng)元是那些所謂的單元輸入(cell input)。輸入單元和門都依賴于當(dāng)前步驟的輸入和前一步的隱藏狀態(tài)(就像我們談?wù)撨^的從右向左的 LSTM,這是下一個(gè)字符的隱藏狀態(tài)),因此它們都「意識」到了下一個(gè) s,但是因?yàn)橐恍┰?,單元輸入比其他部分更具置信度?/p>

在 s 應(yīng)該被轉(zhuǎn)寫成_(占位符)的情況下,隨著 s 變成 _ ,尤其是在 ts => ծ_的情況下,有用的信息更可能來自輸入到輸出的正向 LSTM。在下圖中可以看到這個(gè)情況:

ts => ծ_的情況下

神經(jīng)元是如何學(xué)習(xí)的?

在分析的第二部分我們闡釋了在有歧義的情況中,每個(gè)神經(jīng)元是如何起到幫助作用的。我們使用了可以被轉(zhuǎn)寫為不止一種亞美尼亞字母的拉丁字符集。然后我們移除了在 5000 個(gè)樣本句子中出現(xiàn)次數(shù)少于 300 次的樣本結(jié)果,因?yàn)槲覀兊木嚯x因子(distance metric)在那些更少的樣本上不太奏效。然后我們在給定輸入-輸出對的情況下分析了每一個(gè)神經(jīng)元。

例如,這是對從左到右的 LSTM 中輸出層編號為 #70 的神經(jīng)元的分析。我們在之前的可視化中看到,它有助于決定 s 是否會被轉(zhuǎn)寫為_。下面是這個(gè)神經(jīng)元判斷的排名前 4 的輸入-輸出對:

輸入-輸出對

所以這個(gè)神經(jīng)元最有助于將 s 預(yù)測為_(這個(gè)我們早就知道了),但是它也有助于決定拉丁字母 h 是否要被轉(zhuǎn)寫為亞美尼亞字母հ或者占位符_(例如,亞美尼亞字母չ通常被羅馬化為 ch,因此 h 有時(shí)候會變成_)。

當(dāng)輸入是 h,輸出是_的時(shí)候,我們可視化了神經(jīng)元激活程度直方圖之間的海寧格距離(Hellinger distances),結(jié)果發(fā)現(xiàn),在 h=>_的情況下,編號為 #70 的神經(jīng)元也屬于從左到右的 LSTM 中頂部十個(gè)神經(jīng)元的一個(gè)。

 

在 h=>_的情況下

可視化 LSTM 單元

受到論文可視化和理解循環(huán)網(wǎng)絡(luò)(Visualizing and Understanding Recurrent Networks,Andrej Karpathy、Justin Johnson 和 Fei-Fei Li)的啟發(fā),我們嘗試尋找對后綴թյուն(羅馬化為 tyun)反應(yīng)***烈神經(jīng)元。

神經(jīng)元的激活程度1

***行是輸出序列的可視化。下面幾行展示了最有趣的神經(jīng)元的激活程度:

  1. 輸出到輸入反向 LSTM 中編號為 #6 的單元
  2. 從輸入到輸出正向 LSTM 中編號為 #147 的單元
  3. 隱藏層中的第 37 個(gè)神經(jīng)元
  4. 連接層中的第 78 個(gè)神經(jīng)元

神經(jīng)元的激活程度2

我們可以看到,單元 #6 在 tyuns 上表現(xiàn)的很活躍,但是在序列中的其他部分則并不活躍。前向 LSTM 中的單元 #144 則有完全相反的表現(xiàn),它對除了 tyuns 之外的一切都感興趣。

我們知道,在亞美尼亞語種,tyuns 中的前綴 t 總應(yīng)該變成թ,因此我們認(rèn)為,如果一個(gè)神經(jīng)元對 tyuns 感興趣,那么它有可能會有助于決定拉丁文 t 是否應(yīng)該別轉(zhuǎn)寫為 թ 或者 տ。所以我們可視化了在輸入輸出對 t => թ的情況下最重要的神經(jīng)元。

 t => թ的情況下

事實(shí)上,前向 LSTM 中的單元 #147 也是屬于 top 10 的。

結(jié)語

神經(jīng)網(wǎng)絡(luò)的可解釋性仍然是機(jī)器學(xué)習(xí)中的一個(gè)挑戰(zhàn)。卷積神經(jīng)網(wǎng)絡(luò)和長短期記憶對很多學(xué)習(xí)任務(wù)都表現(xiàn)良好,但是鮮有工具能夠理解這些系統(tǒng)的內(nèi)部運(yùn)作機(jī)制。轉(zhuǎn)寫是一個(gè)用來分析實(shí)際神經(jīng)元作用的很好的問題。

我們的實(shí)驗(yàn)證明,即使在很簡單的例子中,也會有大量的神經(jīng)元參與決策,但是能夠找到那些比其他神經(jīng)元更具有作用的一個(gè)神經(jīng)元子集。另一方面,根據(jù)上下文,大多數(shù)神經(jīng)元都涉及到了多個(gè)決策過程。由于我們在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)所用的損失函數(shù)并沒有強(qiáng)制讓神經(jīng)元之間相互獨(dú)立并且可解釋,所以這是意料之中的。最近,為了得到更多的可解釋性,已經(jīng)有人嘗試使用信息理論的正則化方法。在轉(zhuǎn)寫的任務(wù)中測試這些思想將會很有趣。

責(zé)任編輯:張子龍 來源: 機(jī)器之心
相關(guān)推薦

2017-10-11 23:07:00

神經(jīng)網(wǎng)絡(luò)激活函數(shù)可視化

2018-09-09 23:58:25

可視化神經(jīng)網(wǎng)絡(luò)模型

2018-12-20 11:38:37

神經(jīng)元神經(jīng)網(wǎng)絡(luò)語言

2018-04-03 14:42:46

Python神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)

2023-02-07 07:03:39

2017-04-19 08:32:50

大數(shù)據(jù)數(shù)據(jù)可視化編程工具

2010-06-09 15:09:57

IP網(wǎng)絡(luò)

2017-09-06 11:10:58

大數(shù)據(jù)數(shù)據(jù)可視化神經(jīng)網(wǎng)絡(luò)

2022-06-06 21:46:32

Kubernetes網(wǎng)絡(luò)

2022-03-22 14:02:39

神經(jīng)網(wǎng)絡(luò)AI研究

2020-03-11 14:39:26

數(shù)據(jù)可視化地圖可視化地理信息

2020-05-27 11:10:54

KerasLSTM神經(jīng)網(wǎng)絡(luò)

2019-10-11 14:48:42

技術(shù)研發(fā)指標(biāo)

2022-11-01 16:02:31

架構(gòu)神經(jīng)網(wǎng)絡(luò)模型

2021-09-07 09:15:43

神經(jīng)網(wǎng)絡(luò)AI算法

2017-01-16 14:20:42

可視化神經(jīng)網(wǎng)絡(luò)神經(jīng)元

2018-07-03 16:10:04

神經(jīng)網(wǎng)絡(luò)生物神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò)

2017-04-17 10:25:29

神經(jīng)網(wǎng)絡(luò)可視化ActiVis

2021-03-08 09:25:48

神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)圖形

2024-03-07 09:00:04

Rust數(shù)據(jù)可視化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號