search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

如何掌握閱讀機器學習論文的正確姿勢

編譯|CarolGuo策劃|Natalie有些機器學習論文里包含了大量的數學公式、理論和證明。通常,閱讀這類論文要比閱讀普通的深度學習論文花上更多的時間。對機器學習論文讀者而言,需要什麼樣的數學背景?有哪些書有助於理解機器學習論文?可以閱讀哪些書籍來提高閱讀這類論文的能力呢?最近 reddit 上的網友們針對以上問題展開了熱烈的討論,我們對討論貼中的觀點進行了整理和總結。

也歡迎大家留言分享屬於你們的好方法!

包含大量數學公式的機器學習論文一般可以理解為兩種。

第一種是,一篇文章中有大量的公式、代數理論和複雜的公式計算。

一般而言,閱讀論文都不會只讀一遍。可以先瀏覽標題,然後決定是否要閱讀摘要,再決定是否直接跳到結果部分。

閱讀有著大量代數理論的論文的秘訣在於,在第一篇粗讀時,不要一步步跟隨代數部分。 大部分學生都會犯下這個錯誤。在第一遍閱讀時,你並不需要理解一個冗長計算的所有步驟。相反,默認它們是正確的,跳過它們,深入閱讀關鍵的步驟。讀公式之間的文字描述,讀實驗結果,讀結論。當你大致明白了文章所談論的東西之後,你再決定是否把時間花費在代數部分。不要在看不懂的步驟上花太多時間。當你以後有空時,可以重複閱讀來慢慢理解它們。

當你逐漸成長為「應用數學家」時,你的能力也相應地增強了,瀏覽代數部分時已經能大致了解作者想達到什麼目的以及大致所需要的步驟。沒有人能夠快速地閱讀冗長複雜的計算公式。這也是為什麼在第一遍閱讀時要跳過公式的原因。從粗讀開始,在每一次細讀時再慢慢琢磨細節。

另外,你也應注意到,有時候這些計算里是有錯誤的。我們很難在第一次讀的時候就發現它們。很多時間,這些錯誤與文章的觀點是不相關的,但是它們會讓讀者產生混淆並阻礙讀者理解數學內容。如果你已經基本理解了作者所做的工作,這些錯誤也很容易被找出。而且,當你看這些公式時,要確保你明白它們的真正意義。你可能知道某個公式的數學計算,但是你了解其背後的含義嗎?譬如,你是否能夠解釋在某個特定系統下該公式的意義何在?你能否說出「當最大化 ELBO(Evidence Lower Bound Objective,似然函數下限)時,估計后驗值與似然數據所允許的前驗值類似」?這就是 ELBO 表達式背後的含義。當你達到了這一境界時,對冗長的代數操作進行推理就會變得更容易了。如何達到這種境界呢?讀很多理論書,做很多代數題,這裡沒有捷徑可走。

第二種是,論文中用到了大量的數學理論和證明,依賴大量的數學概念、理論和證明(有時候是過多且不必要的)來驗證文章的觀點。這種文章的核心就是數學。譬如,論文「為什麼在增強學習中后驗取樣比優化更好」就是一篇數學理論性很強的文章。

對有些讀者而言,這類文章更難閱讀,因為它們往往很容易令人混淆。所有正式的談論看起來都很重要。對這種論文,閱讀的技巧是相通的:粗讀。我們並不需要去查詢 Wikipedia 來試圖記住 Borel hierarchy 是什麼。我們可以把這些時間節省下來,說不定我們再也不會讀第二次了。

另外,也可以把用於某個特例的概念替換為一個簡單的場景。 很多時候,人們之所以用到正式的數學公式和推導,是因為他們在打安全牌、不想讓一些詭異的邊角例子破壞他們的推理。譬如,有一些聰明的數學系博士生會問:「如果該函數在每一處都是連續的但是不可微的,你認為還是否適用呢?」遇到這種情況怎麼辦?你所能做的就是假設沒有這麼聰明的學生,把所有 Radon-Nikodym 導數都替換為比率,把所有測量標準都替換為有黎曼積分的簡單函數,並假設這個作者只是在炫耀自己的數學知識,而你不需要通過這些數學知識來理解他所談論的東西。

有時候這些方法都不適用,因為對某些文章,你必須認真閱讀數學理論和推導來理解文章。

有時候,論文中引用數學公式只是為了更好地描述問題,僅僅了解公式的名稱也能幫助你閱讀文章。但是也有特例,譬如,KL 散度依賴於紮實的統計和資訊理論理論,當你閱讀時,你會對其中的推論和計算點頭稱讚,但要想完全理解它,的確需要一些時間。

對有些人而言,更有效的方法是,拿出紙和筆,按照論文中的計算步驟一步步完成。 這樣有助於理解文章中的內容,而且也有助於發現其中簡單的錯誤或筆誤。很多文章會省略一些很明顯的步驟,當只是用眼睛看的時候,很難跟著這些公式的思路。但是,如果你自己動手重新計算一次,就能涵蓋文中所跳過的簡單但重要的步驟。當然,每個人可以根據自己的情況來決定深入研究的程度。對於那種嵌套引用其他文章的斷言或理論,你可以決定是繼續查看參考文獻還是直接跳過。

如果論文作者已經將基於論文實現的代碼公布到了 GitHub 上,讀者可以粗讀摘要和結論,然後跳入到程序中。 這也是一個將理論與實踐相結合的好方法。譬如, 論文「Self-Normalizing Neural Networks」中有著大量的公式,並在附錄中給出了大篇幅的數學計算和證明。但這些附錄中的計算是從一個計算機輔助的代數系統中生成出來的,對讀者而言價值不大,可以快速地跳過。如果有讀者想檢查這些證明,當然也可以細看。該論文也有相應的 GitHub 代碼,讀者可以藉助它來更好地理解文章。

也有人藉助於量子物理中的費曼圖(Feynman Diagrams),將複雜的公式抽象化和圖形化,對於有物理背景的人而言,是一個簡單易用的方法。

另外,閱讀的深度也取決於讀者的研究方向是機器學習的哪個分支。對於內核方法,需要有線性代數(元組、矩陣等的計算)、功能分析等的基礎。對時間序列分析而言,需要了解測量方法和隨機過程。有些方法需要用到圖論等複雜理論。

當然,從學習機器學習的角度出發,了解一些數學理論基礎還是很有必要的,如貝葉斯、最大后驗概率、最大似然估計、高斯分佈、一元 / 多元分類器、線性回歸分析、支持向量機、隱藏馬爾可夫模型、線性代數、概率論、微積分等等。很多東西都是這些理論的變形。一些引論類的研究所課程中會介紹到這些。網上也有很多免費資源,譬如你可以去 Youtube 上找到一些你喜歡的課程,加強自己對這些數學概念的了解。

有一些網友也推薦認真看看 「How to read a paper(如何閱讀論文)」 這篇文章,它裡面講解了很多論文閱讀技巧。

希望這篇文章可以幫助大家未來更順利更愉快地閱讀機器學習論文,如果大家有自己的好方法也歡迎留言與我們分享哦,比心!!!

查看原文:

參考文獻

  • 論文《為什麼在增強學習中后驗取樣比優化更好》,https://arxiv.org/abs/1607.00215

  • 論文《Self-Normalizing Neural Networks》,https://arxiv.org/pdf/1706.02515.pdf

    論文代碼 GitHub 地址:https://github.com/bioinf-jku/SNNs

  • How to read a paper(如何閱讀論文),http://ccr.sigcomm.org/online/files/p83-keshavA.pdf

Google 理論背書與百度實踐加持:百度 Palo 資料庫宣布開源

CNUTCon 全球運維技術大會將於 9 月 10-11 日在上海舉行,大會主題是「智能時代的新運維」,並特設「大數據運維」專場,邀請了來自騰訊、蘇寧等公司大咖分享他們在最新運維技術實踐過程中遇到的坑與經驗,更有 Google、Uber、eBay、BAT 等一線技術大牛現場為你解疑答惑,點擊「 閱讀原文 」了解更多精彩!9 折限時優惠,本文的讀者在報名時輸入 CNUTCon666 還可再減 200 哦!



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦