模式識別機器學習的發展方向?

我是一個剛上研一的學生,我對模式識別機器學習這方面比較感興趣,我本身是軟體工程的本科,本科和研究生都是211和985。現在跟的導師是搞圖形圖像的,我數學也有底子。求這方面大牛說說這個領域具體哪些方向前景比較好,比如畢業以後可以找哪種公司就業,需要怎樣鍛煉自己在這個方面的技術水平?


有幾個方向值得去關註:
1. Deep learning (深度學習), 這是近年來最火的研究方向,但是個old idea, 其實就是基於神經網路. 之所以以前沒有受到太多得關注(至少比現在)是因為計算量太大,當時的硬體難以去處理那麼多的計算量。 但隨著硬體和演算法上的突破, 近年來迅速成為了業界最熱的研究方向。目前已經應用到了語音識別,圖像識別,自然語言處理等領域。 當然,讓它受到這麼多的關注主要原因還是它的準確率,尤其是在圖像識別和語音識別上取得了很大的突破。從Intution的角度來看,機器學習的本質就是為了去學習能夠把數據(observation)有效地解釋的函數(Function), 而且恰好深度結構的神經網路可以表示出(capture)非常複雜的數據之間的關係(function). 另外,深度學習最大的好處就是無監督學習(unsupervised learning), 可以直接用它來學習數據的特徵。 雖然深度學習取得了很大的成就,但仍然處於剛剛起步階段。有很多的問題值得去研究:

  • 自然語言處理上的應用,尤其是機器翻譯(Machine Translation). 這個估計是下一個深度學習上重大(?)的突破,很多學者都在從事這方面的研究。
  • 大規模學習。 這個一直是深度學習領域重要的分支。 有效地,快速的,正確地學習深度模型 是非常具有挑戰性的。
  • 深度學習在其他模型上的應用。比如去年的Deep Gaussian Process就是比較好的例子。
  • 深度學習在time series(不僅僅是語音識別)上的應用。目前很少有論文在這個領域。HongLak Lee有幾篇論文值得去看。
  • 其他的應用

但是,有些人還是對深度學習表示比較悲觀,覺得深度學習不能解決機器學習最為fundamental的問題。 我們要知道,機器學習以前也有過kernel時代。

2. 大規模學習(Large Scale Learning). 現在是大數據時代, TB, PB級別的數據到處可見。然而訓練機器學習演算法是非常expensive的。 有幾個主要的方向是:

  • Stochastic method. 這種方法適用於online learning, 每次只把一部分數據load到內存中,然後去update模型。這種方法的好處是可以有效地處理大數據。在這個領域,first order(gradient method)和second order(newton"s method)算是主流的優化方法,最近幾年很多論文都是在討論這些方法和改進。
  • 並行/分散式處理(Parallel/Distributed). 用並行和分散式的方式去提高學習速度。經典的例子就是用這種方法去提高深度模型的學習速度。 還有很多較複雜的演算法值得去研究。 想研究這些問題,需要一些系統方面的技能。
  • 搭建分散式平台。 Hadoop當然是目前的主流,但它並不是最合理的方法。 比如很多複雜的演算法,無法再Hadoop上有效地運行。 後來Carlos Guestrin的實驗室做出來的Graphlab算是個比較出色的框架。 在這個領域,很多還是open questions.

3. Graphical Models, Bayesian Methods。 這個領域也是隨著硬體的發展而迅速崛起的領域。 每年都有很多論文在討論各種圖模型(Graphical Models)。 目前還是很多人在做有關Bayesian Network, Markov Random Fields的研究。 至於Bayesian,它也是非常有效地方法。最主要的應用還是在防止overfitting. 它不同於ML,MAP估計,Bayesian可以考慮到所有的參數空間(parameter space), 相當於做regularization. LDA是最為經典的例子,很多很多的論文建立在LDA模型之上(不得不承認,很多都在灌水). 有些有意思的方向:

  • 對於給定的應用,提出合理的圖模型。除了計算機領域,其他一些領域比如生物學,心理學,金融學,都可以用到圖模型來解決一些數據上的問題。
  • 大規模學習Bayesian Models. 主要有兩個子分支,一個是MCMC,另一個是Variational Bayes. 特別是mini-batch MCMC和Stochastic variational Bayes是比較火的領域。可以試圖用這些方法去解決已有的比較複雜的貝葉斯模型。值得研究的一個open problem是怎麼去並行化這些優化演算法。
  • 很多Bayesian方法都在討論Conjugate prior, 怎麼有效地去學習non-conjugate模型也是值得去研究的問題。

4. Learning Theory. 它的重點是PAC learning. 核心問題是: 我們需要多少數據,才能夠學習出來的模型可靠(reliable). 這些理論方面的論文可以去SODA, COLT這種會議去搜索。

5. 如果喜歡應用領域,可以考慮一下幾種應用

  • 推薦系統(Recommender System). 這算是機器學習領域裡最為成功的應用。但是還是有很多東西值得去研究。 推薦系統最重要的問題是cold start 問題,就是去解決新用戶,新商品的問題。還有怎麼把heterogeneous的信息有效地結合在模型本身上一直是個open problem. 在推薦系統問題上,最常見的方法是matrix factorization, 它的各種提高版本出現在今年來很多論文上。
  • 文本挖掘。 很多經典的問題,比如opinion mining, text summarization, information retrieval..etc)
  • Display Advertisement. 就是投放廣告上的應用。 要知道,GOOGLE,BAIDU大部分的錢是來自於廣告上的收入。核心問題就是去解決: 合理的選擇廣告,提高用戶點擊率。
  • 社交網路分析。 比如 spam detection, geo-location analysis, social influence analysis, causal analysis, link prediction, recommendation using social network information, study of evaluation of social dynamics. etc... 可以去看看CIKM和SIGIR這些會議的文章。
  • 金融上的應用。 預測價格,預測financial event. Google trends analysis, etc.
  • E-commerce上的應用: fraud transaction detection, 等等。
  • 系統上的應用: Power consumption analysis, 系統bug的檢測(用一些causal analysis)
  • 除此之外,機器學習在航空航天(比如NASA), 軍事上都有一些身影。

就說到這些,以後有時間再補充。


dl , 1. deep reinforcement learning 2.unsupervised learning。
CV方面的 image understanding.
還有 Visual Tracking


推薦閱讀:

機器學習工程師需要掌握哪些編程語言?
The Elements of Statistical Learning 需要怎樣的數學基礎才能讀懂?
機器學習各種演算法怎麼調參?
深度學習caffe的代碼怎麼讀?
機器學習中常常提到的正則化到底是什麼意思?

TAG:人工智慧 | 機器學習 | 模式識別 | 發展方向 |