選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
4 分鐘閱讀時間 (704 個字)

機器學習論文閱讀的經驗分享

20190903-MachineLearning

 前言

    在碩班做自然語言處理(Natural language processing)和音樂資訊檢索(Music Information Retrieval)的研究,時常覺得讀論文沒有效率,又或者對演算法不熟習導致實作時要花費許多時間。不知道大家是不是跟我一樣,一開始在做研究的時候急於尋找相關演算法的論文來讀,好不容易找到可能相關的論文,讀完以後才發現好像不太適合自己的研究;或者是看到目前又有什麼新穎的演算法,例如注意力機制(Ashish Vaswani 2017)、BERT(J Devlin ,2018)等等,在當時對language model還有許多演算法尚未熟習的我來說,其實都沒有經過適當的吸收與學習。


    隨著碩士論文撰寫的磨練,研究能力有相當大的提升,主要原因是相對於以前,我比較能夠自己找尋研究問題與方向,修習完研究所的課程也讓我對機器學習演算法的背景知識有了一定的基礎使論文閱讀能力提升。我覺得資料分析師從發現問題、研究假設、演算法模擬、文獻尋找、研究與結論等步驟自己要學會整理一套清晰的研究流程。


   除了做研究以外,我也喜歡音樂創作、玩樂團、唱歌。與資料科學相同,音樂表現是一門學科,在能夠表現出自己對音樂的理解與熱愛於表演之前,必須要有足夠的背景知識。我喜歡在尋找如何提升自身能力的技能之前,先確定自己所要了解的知識,這使得我總是能夠循序漸進地學習。本文分享我自己在尋找與閱讀機器學習的論文之訂定的目標,分享自己學習的步驟,同時也希望能夠藉由撰寫步驟提升論文閱讀效率。

經驗分享

讀論文沒有效率的原因:

1. 尋找文獻花太多時間

2. 不清楚論文質量

3. 不清楚文獻研究目標、方法

4. 忘記自己到底做什麼研究題目、為什麼要看這篇論文 

以上4點是我以前常犯的錯誤

以前讀論文很常這樣拉,今天想學一個新的技術,例如 "如何讓機器理解文字的語意",然後就開始找論文來看。看到超夯的深度學習方法(Deep learning),琳瑯滿目的相關文獻,也不知道某篇論文質量如何就開始看。論文可能提到許多背景知識如神經網路(Neural networks)、梯度下降(Gradient descent)等等,這些都要去想辦法了解(花時間上課啦、找code實作拉),好不容易比較懂了以後才發現根本不是自己要找的論文。


閱讀論文的步驟

1. 先搞懂自己要做什麼,並且要記住!!!

2. 先看簡單的研究介紹,了解研究方向

3. 整理相關的演算法

4. 找相關演算法的論文時,注意期刊質量與論文被引用數目

5. 開始看論文時,注意且牢記以下問題:

     a. 這個演算法的應用跟自己做的研究相關嗎?

     b. 這個論文在做什麼(What)
         用哪些方法做 (Which)
         怎麼實作(How)

舉個例子:


    我今天想研究的是語意分析(Semantic analysis),先看一下介紹了解語意分析的問題與應用。例如我是要用在以文找文的研究,那麼我想要做到讓機器理解文章的內容有什麼主題、字詞關聯性、字詞注意力等等。語意分析是一個能夠讓機器理解文字內容並且將相同類別或主題做分類分群的技術,可以應用在文件搜尋方面。再來看我想做到什麼事情,例如我最感興趣的是怎麼讓機器看得懂 'Apple' 一詞,在文章中指的到底是: 一種水果? 一家公司?還是一種品牌名稱? 定義了主要問題,這不是簡單google一下code就能實現的任務,要去整理使用到的演算法: 有Relation mapping、Attention Mechanisms等等,接下來我要尋找的就是這些演算法的論文。

    看論文前一定要注意一下論文質量,可以從論文期刊來看。拿2017的Attention來說明為什麼 "不知道Attention的不能說自己是研究NLP的" : cs.cl 研究領域,發表在頂級的期刊,出道才4年已經有驚人的24405被引用次數,改變了過去使用RNN的作法,是NLP研究方法的分水嶺。(雖然像我這種年輕的小朋友就覺得還好阿老東西被淘汰很正常) 這類的文章,有許多已知的方法以及資源可以使用。雖然質量差的論文也是可以看一下,只是要注意是不是那種隨便寫寫的論文,避免浪費不必要的時間。

   最後一點是隨著閱讀會提升的能力,就是在看方法之前可以先從摘要及介紹快速看出論文是在做什麼?用哪些方法做?怎麼實作? 這樣才能夠了解閱讀完能夠學習的知識。例如看文件向量分類的論文先了解 : 文字向量是一組數字,文字輸入到模型,模型理解後會輸出一組數字,攜帶了語意資訊,這個語意資訊是經由演算法計算出來的,他們會拿向量去做一些任務,例如文件分類,達到很好的效果。

    確定這些問題會幫助我自己看論文的時候能夠比較有條理的學習,增進閱讀效率並且在實作時能夠建立清楚的步驟,研究結論能夠經由良好的分析讓客戶理解。現在各行各業都打著人工智慧的旗號,我覺得不是用了AI的產品一定比較高明,主要還是要看研究出來的效果,有沒有解決傳統工具難以做到的事、提升產品品質才是更重要的,最最重要的是要如何解釋產品與眾不同的特色。

使用 Git Rebase Interactive 模式整理 Commit
在windows上設定全域的git ignore

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2024/05/14, 週二

Captcha 圖像