如何優雅地打開堆滿數學公式的機器學習論文
上周,大數據文摘為大家介紹了在深度學習領域近幾年影響力最大的5篇論文(點擊鏈接查看大數據文摘文章《熬過深宮十幾載,深度學習上位這五年》),有不少讀者在後台留言表示,這些論文的數學部分實在是太難攻克。
相信不少讀者在閱讀機器學習論文時也都遇到過類似的問題。滿懷野心地打開一篇論文,卻被裏麵成片的數學公式地嚇得趕緊丟掉了那篇論文。今天,大數據文摘就為大家帶來了幾個小tips,幫助大家閱讀被數學公式堆滿的機器學習論文。
這些tips適用於已經有一定數學背景的讀者。應有的數學背景包括:基礎的線性代數、概率論和微積分。
在閱讀機器學習論文時,你可能經常會碰到這樣的論文:它有很長的公式、大量的代數運算,以及大量複雜公式的變換。對於這一類型的論文,你應該做的是,抓住文章的重要結論和意義,而簡單略過複雜的數學推導。
當你初次閱讀一篇論文時,你的步驟很可能是這樣的。首先,你會閱讀標題,然後考慮是否閱讀摘要。當你閱讀完摘要後,你會考慮是否要瀏覽一遍結果。之後你才會考慮是否瀏覽全文,等等。人生短暫,要讀的文章太多。
閱讀代數較多的論文的技巧是,第一次閱讀時不要被數學帶著走——這是許多學生都會犯的錯誤。讀第一遍時,你不需要理解冗長計算中的所有步驟。你應該瀏覽一遍數學,並假設它是正確的,在之後的閱讀過程中,再一步步加深你的理解。
你要做的是,閱讀公式之間的文字描述,以及論文的結論。當你大致搞清楚這篇論文在講些什麼後,你才會去考慮是否要花費時間來研究它的數學部分。
千萬不要陷在那些你搞不清楚的步驟中。假設它們都是正確的,然後繼續往下看。回頭再來理解它們。重複閱讀直到你理解透徹。
同時,你需要注意到一個事實:許多時候論文中的數學部分其實是存在錯誤的。很多時候,這些錯誤與文章想要表達的論點的無關,但是它們會使你變得困惑不堪。在第一次閱讀中,你很難發現這些錯誤。但當你對論文有了大體的了解後,往往你就能輕鬆發現這些錯誤了。
另外,當你閱讀那些公式時,確保你理解它們真正的含義。你知道公式中的數學含義,但是你是否了解公式背後的真正的意義呢?你是否能用直白的語言向我解釋這個公式的含義?在我問你ELBO的意義時,你能否告訴我,“當我們將ELOB 最大化時,在考慮到已有數據量的情況下,我們估測的後驗概率將會十分接近其真實值”?
當你達到這個水準後,推理冗長數學運算會變得簡單。那麼,如何才能做到這一點呢?答案是:閱讀大量理論性論文,做大量的代數運算。沒有其他捷徑。
我們在閱讀論文時 ,我們還可能會碰到涉及大量艱深數學概念的論文,比如說Lebesgue 測度、Radon-Nikodym導數、σ代數等等。
相比上一種情況,閱讀這種論文更為艱難,因為你很難判斷哪一部分重要,哪一部分可以被簡單跳過。但技巧還是相似的:別忙著四處查那些數學概念,先瀏覽一遍再說。
另外一個很實用的技巧是:將複雜概念簡化。很多時候,論文作者使用了大量專業的數學概念,以確保他們的推導足夠嚴謹。比方說,他們會考慮到這樣的質問:如果這個函數在任何地方都是連續的,但它在何地方都不可微,那你的方法還可行嗎?
你要做的是,別鑽牛角尖。比方說,當你遇到Radon-Nikodym導數時,直接用比例代替。當你遇到測度時,直接用Riemann積分簡單函數代替。
當然,這種方法有時候也是行不通的。一些情況下,你著實需要理解論文中的專業數學部分。這種情況下,如果你的數學功底不夠紮實,你就要做好死磕的打算了。
最後,也是最重要的一點。不管你用什麼方法去閱讀論文,你都要搞清楚,你想要從閱讀中獲取什麼。在閱讀這些論文時,一個學術專家和一個算法工程師顯然有著不同的目標。
簡而言之,你的閱讀策略最終應該服務於你想要完成的任務,而讀懂滿是數學公式的機器學習論文本身並不是一個值得追求的目標。
原文發布時間為:2017-09-04
作者:thebackpropaganda
編譯:happen,丁雪,錢天培
本文來自雲棲社區合作夥伴“大數據文摘”,了解相關信息可以關注“大數據文摘”微信公眾號
最後更新:2017-09-04 20:32:47
上一篇:
追劇學AI (6) | 概率論在機器學習中的遷移運用,手把手建一個垃圾郵件分類器
下一篇:
金磚褪色了嗎?31張圖告訴你金磚五國網購潛力有多大!
家裏的私事絮叨一句
互聯網時代,我們還有隱私嗎?那些容易被忽視但又非常重要的安全知識
設計模式六大原則---單一職責原則
線程間共享數據
Java實現獲得MySQL數據庫中所有表的記錄總數可行方法
阿裏巴巴 Java 開發手冊之工程規約(四)-------我的經驗(逐步完善中)
關於mysql的MERGE存儲引擎簡單例子
TDD測試驅動的javascript開發(2) ---- javascript麵向對象 ~~ 深入學習javascript中prototype
Android Service學習之AIDL, Parcelable和遠程服務
maven中properties標簽定義變量