面試問題1之實驗

1 說說看你這篇論文說的是什麼

論文的背景就是想要對不規則的數據例如拓撲圖這種數據進行數據挖掘
圍繞這個問題,這篇論文就做了兩件事
第一,這篇論文通過一系列的數學推導,類比了傅里葉變換,定義出了一種能很好地提取圖結構節點特徵的方法。
第二 對一些數據集進行實驗,構造圖結構查看分類的效果怎麼樣。

以上就是論文的內容

(追問)論文中提出的這個方法能具體解釋一下嗎

建立一個神經網絡,輸入圖的鄰接矩陣和節點特徵矩陣,然後把它們跟每層的神經元的權值相乘,實現值得前向傳播

2 實驗是怎麼做的(實驗內容)

實驗過程可以分兩個階段
1、第一部分是進復現了論文中的實驗
第二部分在原實驗的基礎上加深網絡層次到了三層四層並且進行可視化,觀察正確率。
具體來說就是 先搭建一個兩層的GCN模型,初始化參數,然後用訓練數據集進行優化,訓練成功之後,再加深網絡層數觀察正確率的變化

2 怎麼學習的

剛開始
根據實驗室老師方向讀論文(很寬泛的範圍,機器學習、深度學習、神經網RNN、CNN、GCN這一類的)

後來實踐(實驗)
1、向老師學長請教學習方向
2、細讀論文(網上資料)、自學pytorch(官方文檔和網課)、讀開源代碼、寫博客、

3 遇到過的困難(怎麼解決的呢)

困難主要有三大塊 一是英語方面,二是數學方面,三是具體實驗過程中會遇到一些問題
第一個英語方面,因爲在學習相關知識的過程中 是要讀大量的英文論文,第二是論文中涉及很多抽象的數據推導,理解這些數學公式的定義也有一定難度,第三是自學過程中配置環境、學習pytorch比較有挑戰
1、讀論文的時候一般會查找網上的論文筆記,結合一些他人的理解,讀過幾篇論文之後 看英文文獻的能力就會有很大的提升了
2、數學方面的話就是多思考
3、萬事開頭難,初期的學習完備之後,後期進入實驗室的學習順利很多。

說說你這個研究的作用

GCN主要用在自然語言處理方向,對不規則的數據進行數據挖掘。通俗點說就是讓機器能看懂輸入的數據,輸出我們想到的到的結果。
例如這篇論文就是把GCN用到了文本分類上,輸入了一些論文,然後輸出論文的分類。
GCN也能用在構建知識圖譜時的知識提取的步驟

3這個實驗的實現原理是什麼(神經網絡的原理是什麼)

實現過程由兩部分組成:一個是前向傳播計算輸出值,一個是後向傳播調整權值
1、前向傳播的過程利用一些計算公式 得出分類情況,與實際值比較得出誤差函數
2、反向傳播會根據誤差函數和梯度下降算法,調整參數,對網絡進行優化

(追問)我看你實驗過程中還畫了曲線是吧,是用的matlab嗎 能解釋這個acc和loss曲線是什麼意思,大概是什麼走向嗎

沒有用matlib,我是用的python裏的一個拓展庫matplotlib(plt)畫的圖
1、神經網絡的訓練過程中需要多次正向反向的傳播來調整參數,這個accuracy曲線就是每次傳播的正確率,loss就是損失率
loss是逐漸山峯式的下降的一種走向
accuary是正好相反上升的一個走向

我看你是處理的圖結構是吧,你這個數據集是怎麼構成圖結構的

延續了kipf論文中所做實驗的方法,用的one—hot獨熱編碼,就是維護一個單詞表,把詞變成一個單位列向量,
不會的話如何搪塞:我一直把學習重心放到了模型方面,數據處理這方面確實瞭解得不夠,以後會繼續加強一下這方面的學習

(追問)爲什麼想到要增加層數來優化,你本來的實驗預期是結果是什麼

一層神經網絡只能提取局部的信息,層數增多後,提取的信息會更加詳細,更加的全局化。因此理論上應該是層數越多越準確。

做實驗之前,我就瞭解到GCN在淺層網絡方面效果好,所以只打算加深到五層
本來預期的設想是:從正確率會在三層或者四層提升至一個飽和狀態然後再下降,但是沒想到三層的時候,就已經出現正確率下降的情況了

(追問)實驗的具體結果怎麼樣

在兩層的GCN模型中準確率達到了82%左右,加深到了3層之後準確率會有小幅度的下降達到了76%,四層之後就下降的特別厲害只有53%了。

(追問)爲什麼會出現這樣的結果

原因是GCN層數增加之後產生了梯度消失以及節點平滑的現象
具體解釋的話
梯度消失是因爲神經網絡的訓練算法梯度下降機制導致的,是層數過深時會導致某一層的梯度降爲0,這樣的話該網絡的參數無法獲得優化,準確率就會下降
節點平滑是因爲GCN層數過深,會導致每個節點

(追問)解釋一下梯度消失吧

是因爲產生了梯度消失
因爲神經網絡的優化機制是梯度下降算法,某層的梯度是前面幾層梯度的累乘,如果反向傳播調整權值的時候最後一層梯度小於1, 層數越多,累乘之後的梯度就會越接近於0,此時梯度下降算法就沒辦法起到優化神經網絡的作用,這時候再增加層數,神經網絡不會得到優化 。

(追問)有想過如何解決梯度消失嗎

1、梯度消失的根源是深度網絡或者激活函數的問題。
2、實驗中我刻意避免了sigmol函數,神經網絡各層間的傳遞都使用了可以避免梯度消失的rule函數。
3、但是之所以到第五層依舊產生梯度消失的原因要歸結於整個優化機制採用的是梯度下降算法,因此從這個角度來看梯度消失是不可避免的。

(追問)有想過怎樣改進使這個實驗結果更好嗎

有看到過CV頂會上一篇關於GCN深度的論文,
梯度消失問題的話:這篇論文就是借鑑了深層卷積神經網絡解決梯度消失的方法,是把殘差機制和密集卷積的思想加入到了GCN的模型中

節點平滑問題是:利用了一個空洞提取的一種思想
這些我還在學習,也只是概括性的讀了一些論文,理解不夠深刻,還需要繼續深入學習

(追問)改進實驗的這幾個機制你能大體解釋一下嗎

我只是大體的瞭解了一些淺層內容,我的理解是
**1、殘差機制和密集卷積:**是在神經網絡層之間,加上一個直接映射層,這個直接映射可以實現網絡層之間的跳層連接
**2、空洞提取:**就是擴大卷積核,但是不增加捲積核的參數,在卷積核上形成一些空洞

(追問) 有查閱過關於GCN除此之外,其他可以改進的地方嗎

有看過一些論文
有論文提出了一種attention機制來對數據進行降維,減少信息處理量
potorch去年也推出了可以加速特徵提取的加速庫
這些我還在學習中

(追問)你剛纔提到自然語言處理 能具體說說自然語言處理嗎,或者說你這個研究是怎麼用在自然語言處理上的

自然語言就是讓機器能夠理解我們日常生活中的自然語言,例如中文,英語,然後得到一些我們想要的輸出。
自然語言處理可以用於 機器翻譯、文本分類、垃圾郵件的過濾、知識圖譜方向
像這個論文裏的實驗就是解決了自然語言處理中的文本分類問題

4 你親自跑過這個實驗嗎

跑過,並且在這個實驗的基礎上有過一些探索,嘗試加深了神經網絡的層數,並用可視化的方法得出了梯度消失的結論。

6 有什麼區別

區別可以從兩方面來說
1、第一 是面向數據類型不同
2、第二 是由於處理數據類型的不同定義出了不同的提取特徵的操作
具體來說就是RNN傾向於解決例如語音、句子等序列數據
而CNN更傾向於規則數據例如圖像
GCN則用在不規則數據上更多一些
針對於以上數據的處理,他們各自定義了不同的特徵提取操作

anaconda是一個集成的用於科學計算的開發環境
每層之間都加了dropout防止過擬合

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章