把深度學習作為自己的碩士課題,有什麼可以做的?

本人計算機專業碩士,導師安排深度學習作為碩士課題的研究領域,但是沒有說具體做什麼。現在快要開題了,但感覺完全沒有入門,對深度學習只停留在淺顯的認識。請問現在深度學習有什麼可以做的呢?還有聽說深度學習演算法很難實現,即使實現也可能有陷阱而一般人不知道。我只有不到一年的時間,能做出點像樣的東西嗎?


這些是我感覺比較有意思的, 僅供參考。

1. 圖像識別 CNN是主流,但是很多的文章只是在MNIST, ImageNet上做實驗。 你可以找一些其他的圖像數據,比如天文,地理, 醫療,自然等等。然後在這些數據上實現CNN. 當然,在你實現的過程中一般都會伴隨著一些小/大創新。 這個足夠讓你發一篇不錯的文章。 很容易找得到一些open source code.

2.語音識別+機器翻譯 這個也可以叫做「同聲傳譯」。 你可以分別建語音識別和機器翻譯模塊,兩者都可以用到深度學習。 深度學習對於語音識別的研究很多, 機器翻譯的話可以查一查ACL的文章,很多估計都在用Recursive network. 如果能做成這個系統(比如中英傳譯),足夠讓你發一篇論文再加上專利/公司的offer.

3. Multimodal Learning 也就是你有不同方面的數據,然後怎麼建立模型從而去學習它們之間的關係。最經典的就是把圖像和文本作為輸入, 然後互相做預測。 這個算是比較hot的方向, 而且不難實現. 看這個文章:
http://papers.nips.cc/paper/4683-multimodal-learning-with-deep-boltzmann-machines.pdf
這個思想可以延伸到任何的multimodal數據上(語音-視頻, 視頻-文字 等等)
這個open source code也許有幫助。
karpathy/neuraltalk · GitHub

4. 文本模型 如果你對LDA比較熟悉, 那LDA的很多模型都可以擴展到深度學習模型上。 跟LDA類似的模型有softmax replicated topic model (自己搜一下),neural autoregressive topic model(也搜一下), 然後對LDA的類似的extension都可以(很可能)做到這些模型上(比如dynamic topic model, relational topic model, hierarchical topic model, supervised topic model, 等等)

5. 時序相關的項目。 在深度學習這一塊,做時序方面的不是很多,最經典文章算是recurrent temporal RBM(可以搜一下), 它其實類似於HMM。 你可以找一個建立在HMM之上的模型,然後再把它擴展到RTRBM上。 發文章應該也沒問題。

6. CTR prediction. 這個算是比較老的問題,但我還沒有看到特別好的深度學習文章講這方面的應用, 你可以嘗試一下, 就是把很多方面的數據結合在一起(點擊的歷史數據,用戶信息,廣告信息...),然後建立深度學習模型。 百度IDL的主頁說它們在做這個應用(Research Topic), 你比它做得更好,就可以去開公司了,要相信自己!

7. 推薦系統 用RBM作collaborative filtering的文章是我唯一覺得比較好的文章,我感覺這方面還是有得做。 讀一讀這方面的literature, 看一下能不能找一個比較新鮮的topic.

8. 把深度學習思想應用到其他的模型上。 其實深度學習不是一中演算法,而是一種框架和思想,很多已有的模型都可以疊加在一起成為深度學習模型, 比如像deep gaussian process。

說到這裡,以後有時間再補充吧,希望對你有所幫助。


大家的回答都很不錯,我也建議樓主可以從application入手。為了避免觀點重複的回答,我來講個故事好了。

我讀碩的時候(2009年)我們實驗室開始搞Deep Learning(以下簡稱DL),那會不要說國內,在全世界可能都沒多少學校搞這個,能搜到的paper基本都來自於那幾個山頭。我們小老闆09年把這topic丟給我們一幫小碩,然後就去工業界發財了。後來DL大紅大紫,所以我還是很佩服我小老闆的眼光的(如今他貌似已資產上e了)。。。

但是,因為當時學習資料極其匱乏,我們學得都極為吃力,不要說中文資料,英文的tutorial都少得可憐,更是幾乎沒有任何open source的工具可以用。要入門只能看paper,看不懂paper又要看別的paper……於是就墜入了萬丈深淵 = = 話說因為我出身實在是過於屌絲(讀研之前完全沒接觸過ML),結果花了整整1年才基本弄懂了來龍去脈,可以有點自己的想法,終於可以寫paper了!但由於留給我的時間只剩一年半(我校碩士2.5年),然後除了DL我又啥都不懂,結果就只能在DL的幾個fundamental的問題裡面打轉,甚至沒能力做application。半年後我終於憋出來一篇paper,並且自信滿滿地給了NIPS,結果當然是被打臉了。但是拿到了一個自以為充滿希望的boardline review score,於是看到希望的我站起來擼,又衝刺了一把AISTATS,然後繼續被打臉……接下來,我就再也沒機會衝刺了,因為小碩的2.5年時間快到了。到畢業,我都沒有一篇top conference的paper,不得不說這是我碩士階段的一大遺憾。

而我們實驗室其他做DL的同學呢?有一段時間,由於我們自認為已經學懂了DL,並且也略微發現了這個方向的潛力,在實驗室裡面大肆傳教,吸引了很多同學參與到DL大軍中來,大家像打了雞血一樣前仆後繼的跳進這個坑裡。結果……當大家逐步摸清此坑的真面目後,紛紛選擇了換研究方向,於是這波很小的DL熱潮就這樣在我們實驗室曇花一現了。跳出坑外的大家後來都在各自的方向混得風生水起,有拿kddcup第一名的,有去CMU的,在此就不多說了。

到這裡,一群小碩被DL完虐的故事就完結了。從這個故事可以看到,要玩轉DL,最好還是得有phd的戰鬥力才行啊(當然天才小碩是除外的……)。不過時過境遷,現在DL已經比較普及了,學習資料也是非常豐富,對於普通小碩們可能也不再是洪水猛獸了吧!

時間一晃到了2011年底,答主要開始找工作了。由於當時DL仍然是一個比較小眾的方向,我又比很多人都多理解那麼一點,於是就成功的忽悠了MSRA的眾位researcher面試官們,拿到了offer。這也算是搞了這麼久DL第一次派上用場吧。然後,由於學生時代寫了很多DL的code(前面也說了當時網上的open source工具還不像現在這麼豐富,所以我們基本都得自己寫),這些code後來變成了我工作中使用的library,一直沿用至今。而所有的這些積累在去年終於為我帶來了回報,基於這些code開發的一個項目做到了largest scale in Microsoft,而另一個項目為產品掙來了50倍的訓練加速!還有升職漲錢和去US工作的機會。

回憶起讀研的苦逼歲月,我有時會想:假如當時我沒有登上DL這艘賊船,而是從事了另外一個成熟的、資源豐富的、人盡皆知的方向,是不是就更有機會在碩士階段做出成果來了呢?但反過來,沒有經歷過這種艱辛的探索,我又會不會有什麼獨特的積累能帶到後來的工作中呢?who knows :)


其實我看到標題的時候我很想認真回答一下這個問題。不過既然樓主是為了混一下畢業的,那麼我說多了也沒必要。

找個具體的小應用,把裡面的feature換成CNN/SDAE。


別說碩士題目了,可能在大多數國內的學校博士題目都夠了。
呵呵,完事


同學你好!我是某某不知名大學的渣博一枚!現在入Deep Learning大約半年多了吧,寫代碼寫累了,跟你談一談我對DL的一些感受吧!

僅僅是我個人的觀點哈!大神輕拍!

在你題目中所說的「陷阱」,你的意思應該是指tricks吧?一般中文翻譯過來有「技巧,小把戲」的意思,如果理解成「陷阱」,容易誤導你。

言歸正傳!
我覺得你可以從以下幾個方面來權衡考慮你目前的顧慮:

1. 導師能力
畢竟,目前深度學習在國內、國外都算是剛剛起步,要說前景的話,整個學術界都沒有一個定論!而且深度學習需要有深厚的數學基礎。

如果你導師或者你的導師組是專門做這個的話,有一幫大腿們可以抱的話,還是很不錯的!畢竟嘛,深度學習這個概念實在是太大了,就算你做不出非常大的contribution,在某個問題上做點小改進,碩士畢業肯定不成問題的。

如果你導師也是剛進門,甚至對深度學習還沒你了解呢!那我覺得你是否以它作為你的碩士畢設就應該三思了!

2. 數學功底

深度學習並不是所有計算機分支中最要求數學能力的,但是你要是沒有的話(像苦B的答主一樣),入門和深入就會很受影響!當然了,什麼稀疏低秩、什麼BP演算法,如果數學功底不強,理解也是能理解的,就是要慢些了!

3.編程能力
正如同樓主所說,深度學習的編碼並不簡單。不過好在Github上有很多大牛已經寫好了一些大的框架,如:卷積神經網路CNN的一個經典example BVLC/caffe · GitHub。可以在這個的基礎上進行修改並加入你自己的ideas。
你看到的很多論文中的performance特別好,其實裡面是有很多的tricks,這些tricks你一般問都問不到,人家是不可能告訴你的!還是那句話,如果你的團隊在深度學習領域不是很強的話,這些trick你很難能自己想到,沒有這些trick,除非你的工作作出了前人都沒有想到做到的contribution,否則真的很難做出top-5的結果來。如果你對自己的編程能力有足夠的信心,我以上說的你全可以當廢話撇了就行!

4.時間問題
深度學習相比於CV或NLP而言,屬於入門很難的!需要比較長的時間進行積累。歸根到底,又回到第一個問題了,如果你的科研團隊在這方面有著豐富的積累,那入門要比你一個人摸索著來得快得多。反之就要花費很多的時間來入門。所以說,你「速戰速決」這個想法是否現實,還得看你的導師組的能力了!

聽樓主的意思是,準備要讀博嗎?你的博士方向還會做這個嗎?

如果你的博士方向還會繼續研究機器學習(甚至是深度學習)的話,我很建議你碩士畢設就做這個,畢竟深度學習不是那種很快出大成果的,需要時間積累的東西。而且深度學習是一個很值得研究的問題,很適合作為博士的研究方向繼續深入研究。

如果你博士方向不再做這個了,那我建議你跟你們導師商量商量,換個上手快的方向做做,先保證你拿到碩士畢業證,別讓深度學習給你拖死了!

還是很希望LZ能夠加入DL這個大家庭的!

Ps.到時入坑後悔了表砍我哈!


1. 圖文結合,看圖說話,給圖生成句子。CNN+LSTM, 然後再加點 attention 什麼的,過幾年就不興這個了,過了這村沒這店。

2. 深度學習+增強學習。然後再結合最近出的 neural turing machine 和 memory network。不過估計需要的計算資源比較大。。。也很難搞過 DeepMind 和 FAIR 這倆貨。

3. 省事點的話就搞點序列模型,比如機器翻譯或者語言生成,或者語音識別之類的,然後加點佐料(比如 attention)。


深度學習確實很難,想做理論研究的話,那先要問問自己以下幾個問題:
1. 各種帶隱變數的機器學習模型學會了嗎?神經網路、RBM、各種概率圖。
2. EM演算法、變分推演、平均場等等這套隱變數的求解方法學會了嗎?
3. 以上演算法背後的凸優化方法,學會了嗎?
4. 會推公式嗎?數學還記得多少。

但是,我覺得碩士課題完全可以繞開這些理論問題。做一些深度學習應用比較合適。關於文本模型,除了LDA,還有Word Vector可以做。最近NIPS上Word Vector都是用深度神經網路做的,可以學習學習。


去找已有的應用,套dnn,號稱自己是第一個用dnn做xx應用的。別說碩士論文了,搞不好發10篇cvpr acmmm之類的都有可能。

----------------


其實我就是黑一下dnn的灌水熱潮。


你要深度學習,得先有個模型吧,要模型,得找個應用吧。
如果你們應用比較容易找,可以先定應用再定模型。如果沒想到什麼應用,可以先暫定模型再挑應用來跟模型匹配。看你熟哪方面更多一些了


可以參考 ~ 深度學習畢設有什麼好的題目? - 岑雨的回答 - 知乎


我是獨立研究者,研究 深度學習 + 強化學習 有好幾年了,我關注的是 cognitive architecture,這個範圍非常 broad。

我研究 strong AI 已經超過 12 年,在香港找不到合作者……

如果你純粹將 DL 應用到某個範疇,例如「識別XXX 令誤差減少10%」,我覺得這種研究的原創性很低,當然我不應該因為自己是個「大理論」取向的人就貶低實踐的價值,我們需要和不同取向的人合作才能成功。

如果說深度學習 per se,我個人覺得它是一個已經 "work" 的 technique,其實沒有什麼可研究的,尤其是很多人將 DL 應用到某個很窄的範圍,然後「人肉調參」造出幾多個百分點,這種知識將會被更好的 algorithmic ideas 取代。 我們應該研究的是後者。

你讀碩士課程可能有兩年時間左右吧,我不知在這段時間你能吸收多少; 我多年的研究結果最近寫成兩篇 paper,但感覺也很少人能看懂。 雖然,我不熟悉實踐方面的細節,有時和人談起例如 TensorFlow 那些,我也答不上咀。

如果你(和其他看這個答案的人)有興趣的話,我們可以試試合作 deep reinforcement learning 的項目,這東西很有實用價值,(在設計方面)有挑戰性,應該是不錯的方向。

這個話題還有太多可以談,視乎你的興趣是什麼 …… :)


一年時間, 碩士學位。千萬不要心太大,集中在一個很小很小的領域就可以了。
建議不要太涉及理論,偏應用更加現實點。

說個工業應用上我們自己比較感興趣的一個工具設想:網路結構性能靜態分析。

根據網路結構,計算和估計整個網路的運算量,並發性能。並且能夠根據具體硬體具體的dl工具庫提供運行時性能的預估,尤其是並發性能的估計,方便分析運算熱點和瓶頸。

這個利用性能分析工具在運行時測試是有現成工具的,只是靜態分析這塊貌似還沒見過。

難點在:
1. 需要了解網路運行原理。
2. 網路結構在工具庫上的具體實現。
3. 了解硬體指標,基本的計算機體系結構的了解。
4. 較高的工程/代碼能力。


感覺沒有條件就是個坑。。。


為什麼我感覺你是我原來實驗室的師弟……真心的,超算、並行、DL……不過就算真是你師兄我也是那個自身難保幫不上忙的……


還是先搭建深度神經網路,訓練數據吧


可以分析為什麼SGD訓練深度網路,效果總是不錯


我導師也讓我搞這個。。。


我現在本科的畢業論文,研究生導師直接叫我做DL,我是不是會死的很慘啊 好擔心畢設都過不了


學習CNN好幾個月了,現在就想知道如何在一個原始的CNN網路中添加CUDA,好傷 完全沒有頭緒


果斷加入~


DL,我很想愛上它,可是我力不從心~


推薦閱讀:

神經網路和深度學習在遊戲設計上是否有應用?
現在的深度學習的模型越來越大,有個結論是說,大腦的激活是非常稀疏的,對模型參數有什麼好的辦法壓縮嗎?
CNN(卷積神經網路)、RNN(循環神經網路)、DNN(深度神經網路)的內部網路結構有什麼區別?
ICLR 2018 有什麼值得關注的亮點?
如何看待谷歌公開 tensorflow 專用處理器 TPU?

TAG:機器學習 | 深度學習(Deep Learning) |