目前機器學習的瓶頸有哪些?
可能的改進方式會是怎樣的?
機器究竟能否像人類一樣具有學習能力?通用的人工智慧又能否實現?
這些都涉及到機器學習的瓶頸問題。正如本題從2013年就開始被討論,現在已經是2017年,期間機器學習取得了很大進步,深度學習也被認為是最有希望的機器學習模型,但由於機器學習方法和人腦機制之間巨大的差異,機器學習距離人類思考方式還有很遠的距離,目前機器學習的瓶頸仍然顯著,尤其是單一的機器學習模型。
而竹間智能在構建NLU模型、多輪對話系統、人臉情緒識別系統的過程中,就採用多種機器學習演算法模型相配合的方法,從而彌補傳統NLP和NLU的不足。在此,竹間智能 自然語言與深度學習小組,對部分機器學習現存的瓶頸進行了一些分析和總結,同時對未來機器學習如何向「強大」和「通用」發展提出了一些建議,希望對大家有所幫助。如有不同觀點和補充,歡迎在評論中和我們一起討論。
Catastrophic forgetting.
這也許是機器學習的阿喀琉斯之踵了。目前幾乎所有的機器學習系統都是被訓練於執行單一任務,而如果要實現通用智能(AGI),那麼機器學習系統必須能夠被用於執行多種不同的任務。雖然藉助於表示學習(representation learning)和遷移學習(transfer learning),現在可以將模型的一部分應用於新的任務,但是針對新的任務進行重新訓練(fine-tune)的模型在舊的任務上還是會有顯著的性能下降——這意味著單一模型是不能夠在完成當前訓練任務的同時,仍然完好地保留對上一個任務的記憶的。請注意這和多任務學習(Multi-task learning)的區別——多任務學習是指同時學習多個任務——無疑,多任務學習會增強中間層表示的泛化能力,但是Catastrophic forgetting指的是Sequential Learning的情況。畢竟,真實的代理在進行學習的時候,是同時會有多任務學習和序列學習的。
尤其地,基於網路權重的訓練方式(connectionism)在這個問題上是有著明顯的缺陷的。對一個新的任務進行訓練的同時必然對於老的權重會進行一定的調整。解決這個問題的主要思路是找到task-specific neuron的位置,從而實現對於任務的記憶能力。這方面有幾篇不錯的文章可以看:
An Empirical Investigation of Catastrophic Forgetting in Gradient-Based Neural Networks (https://arxiv.org/pdf/1312.6211.pdf), Ian J. Goodfellow/Bengio
Overcoming catastrophic forgetting in neural networks (https://arxiv.org/pdf/1612.00796.pdf), DeepMind
Knowledge Representation.
現代的機器學習系統難以學習到有意義的知識表示。這當然也是造成catastrophic forgetting的部分原因。有效的知識表示不但可以在不斷的學習中積累、提高,而且也能通過邏輯的自洽令機器學習系統更加魯棒,同時也可以處理很多未學習過但可通過推理得到的結論。因此,如何將機器學習所學到的模型與符號邏輯/知識系統相結合,就成為一個非常重要的課題。
在這個話題上,有不同的解決方向。
一個方向是不去顯式地表達知識和推理,而是利用神經網路本身去進行隱含的知識表示與推理。這個方向可以參考RAM workshop(http://www.thespermwhale.com/jaseweston/ram/),Hinton的演講Aetherial Symbols(牆內:https://pan.baidu.com/s/1bn74JqZ 牆外:https://drive.google.com/file/d/0B_hicYJxvbiOUHNUUUx6Vl9HRlU/view)和神經圖靈機https://arxiv.org/abs/1410.5401
另一個方向是提供白盒子的神經網路,嘗試提供顯式的知識表示。這個方向上好的文章有
Towards Deep Symbolic Reinforcement Learning (https://arxiv.org/pdf/1609.05518.pdf)和Learning like humans with Deep Symbolic Networks(https://arxiv.org/pdf/1707.03377.pdf)。
還有一個近期非常熱門的方向是基於概率圖的(深度)貝葉斯推理,具體可以參考竹間智能之前發布的回答:什麼是probabilistic programming language?(https://www.zhihu.com/question/59442141/answer/166358150)以及清華大學發表的珠算(https://github.com/thu-ml/zhusuan)
當然,與此高度相關的可解釋性也是一個重要的話題。我們希望知道機器學習系統是如何做出判斷的,這樣我們才能知道如何通過現有的人類知識對模型進行修正。
Unbalanced Data.
人類在學習多個類別的事物的時候並不關心樣本數量的變化。當我們學習到一個知識的時候,即便只是很少的樣本,已經足夠我們習得這個知識了(one-shot/zero-shot learning)。而機器學習系統會對unbalanced data非常敏感。當類別間的樣本數量有巨大差異的時候,系統的表現也會變得非常biased。
處理這個問題的方法有over(under)-sampling (Deep Over-sampling Framework for Classifying
Imbalanced Data: https://arxiv.org/pdf/1704.07515.pdf)和zero-shot learning (An embarrassingly simple approach to zero-shot learning: https://ai2-s2-pdfs.s3.amazonaws.com/4b18/303edf701e41a288da36f8f1ba129da67eb7.pdf 和Zero-Shot Learning with a Partial Set of Observed Attributes http://www.cse.ust.hk/~qyaoaa/papers/ijcnn2017paper.pdf)。
Safety.
對抗性樣本攻擊也許是當下最熱門的話題了。Attacking Machine Learning with Adversarial Examples (https://blog.openai.com/adversarial-example-research/)指出,攻擊者可以系統性地製造對抗性樣本,來使得機器學習系統失效,比如以下的例子:
雖然增加了噪音後的圖像依然是熊貓,但是機器以非常高的置信度將它誤判為了長臂猿。
另外一種安全性隱患是攻擊者可以通過你的分類器「偷走」你的數據。通過你的分類器不斷地訓練一個生成模型,最終生成模型將會學到與你的訓練數據高度相似的數據。打個比方,如果你的訓練數據包含了很多張人臉的話,這個生成器將有機會生成一些原本不該被透露出來的私人信息。當然,你的模型也會被攻擊者「偷走」。(Stealing Machine Learning Models via Prediction APIs: https://arxiv.org/pdf/1609.02943.pdf)
Fairness, Accountability, and Transparency (FAT).
最後,當然,如果我們希望機器能夠為我們執行mission-critical的任務(比如自動駕駛,理財或者手術等),我們希望機器是公平、可靠和透明的。FAT/ML大會正是要嘗試解決這樣的問題。(http://www.fatml.org/ )。2017年的FAT/ML大會包括如下一些議題:
"The Seen and Unseen Factors Influencing Knowledge in AI Systems"
"Friends Don』t Let Friends Deploy Black-Box Models: Preventing Bias via Transparent
Machine Learning"
「The Authority of 『Fair』 in Machine Learning」
總結來說,我們希望機器學習系統能夠更加安全、更加通用,更加透明/可解釋,以及能夠通過小樣本和知識推理來解決問題,這將會是機器智能邁向通用智能(AGI)的重要方向。
本回答來自竹間智能 自然語言與深度學習小組。
1.不知道什麼特徵是重要特徵。所以像deep learning很有用,是因為它能自動學習特徵
2.現實世界中有label的數據太少,所以限制有監督學習演算法。
3.計算複雜度和數據量
4.局部極小值問題
我不是專家,只能說我自己學習過程中感覺到的瓶頸。
1. 計算時間
在工業界的訓練數據動輒上TB,每天都得train一大批的model。光從計算時間上,就限制了SVM等相對複雜演算法的流行程度。個人在微軟、亞馬遜經常見到的是邏輯回歸train天下。偶爾有特殊的問題會用上SVM,但規模很小,且training data不會每天更新。因為只有logistic regression這種程度的方法在計算上是可行的。
2. 模型詮釋
如果是logistic regression來train的model,那麼最起碼人還能看到每個feature的權重。
但若使用SVM、神經網路或更複雜的方法,train出來的結果首先不說,其模型對人而言是很難進行詮釋的。這也會限制商業上的應用。因為我作為賣家都不知道自己train出來的model究竟該怎樣詮釋,外行的買家大概也只能夠不明覺厲了吧。
面對一個問題,可選擇的機器學習模型首先就有很多。即使選定了幾種方法,每一種方法還會有n多變種。比如SVM如此多的kernel、神經網路的activation function等。就算把這個選好了,還要去tune model的parameter。
最可恨的是,這個流程很難總結出一套系統的經驗指導。更多時候都只能trial and error。這相當於面對一個問題,臨時去找方法、試各種方法一樣。
靈活過頭了就變成玄學了。正是因為玄之又玄,機器學習養活了一大批論文灌水的人。
現時 strong AI 的問題是: 如何令機器像人腦一樣思考?
自 90 年代起,機器學習流行 statistical learning (統計學習) 和神經網路,它們已經能學出空間中的任意函數。
那為什麼我們還未見到強人工智慧?
原因是,「思維 (reasoning)」的內部結構是邏輯,而邏輯是符號 (symbolic) 運算。 研究者一直企圖把神經網路和符號運算統一起來,叫 neural-symbolic integration。 但你會發現這個題目下的發展暫時還未有很大突破。
在邏輯的結構下,可以直接從事學習,在假設空間中尋找最佳假設,而那假設空間是全部邏輯句子。 這叫誘髮式邏輯學習 (inductive logic programming) 或關係學習 (relational learning)。
這就造成了兩種很不同的範疇 (paradigm): 一方面是「連續空間」中的學習,例如 SVM 和神經網路。 另一方面是「離散空間」中的搜尋,如 ILP。 前者可以是很快的,後者慢得可憐。 邏輯學習的慢,就正是我們現在還未有強人工智慧的主因。
說起機器學習,現在人人都會想到統計學習,但其實最早的機器學習是在邏輯結構中搞的,那時是 70 年代。 後來統計學習的流行完全掩蓋了邏輯學習,那也是經典 AI (classical AI) 「死寂」了的原因。
一般人會覺得離散和連續是兩回事,但數學家們知道離散和連續只是一物的兩面,這樣的例子在數學中不勝枚舉。 所以有希望找到邏輯和神經網路的統一,又或者連續和離散學習的統一。
P=?NP 的問題也有關,而且有可能 P=NP。 NP 中最經典的問題就是 SAT (satisfiability,邏輯的可滿足性問題),它的本質是 combinatorial search (組合性搜尋),很慢,不能用連續方法搜尋。 所謂連續方法的例子就如 Newton method 那些。 但離散的組合性問題,不容易化作連續的方程解問題。
Deep learning 是最新的潮流,但它搜尋的空間仍然是神經網路那種連續空間。 如何用深層學習的技巧去搜尋有符號或邏輯結構的離散空間? 這可能是一個很好的發展方向。
我現在的研究方向,是將邏輯先轉換成抽象代數,然後再去發現由代數通往其他數學分支的橋樑。
=============== 2016 年 6 月================
噢,上面是 2014 年的答案,我很高興我已經成功地完成了目標,但結果用的不是代數方法。 因為發覺普通代數的兩個運算 + 和 x 不夠用,而且還要給它一個甚至多個 &> 序關係。 怎樣搞也好像符號不夠用。(可能是我水平低,我也知道有 3 個運算的代數,和略懂一點 universal algebra 的皮毛,但不懂得怎樣應用。)
最後,解決辦法是放到 vector space 上,但「忽略」那代數結構,而是用機器 learn 出來。 這樣的話,不需自己由 bottom-up 設計那代數結構,對我來說很易。
過渡到 vector space 之後真的豁然開朗,因為可以用到動態系統、控制論那些方法、深度神經網路等。 我現在已忙著搞那邊的事。
在邏輯/代數那邊,還有張量代數可以用,其實有很多人研究了用 tensor products 代表自然語言句子,有興趣可以看看《Quantum mechanics and linguistics》(2013) 這本書。 但這屬於我所謂的 bottom-up 方法,亦即是說 explicitly 給出符號邏輯的形式,但在神經網路中似乎可以用 implicit 的方法,讓機器 learn 它出來,使用者不知道實際的 representation 是什麼。很難獲取高質量數據。
補充一下上面的觀點,從工業應用的角度談談:
1.
數據量的問題。這個可以分成兩類來討論:
a. 數據太多,那麼面臨著計算能力和計算成本的問題。
b. 數據太少。數據太少有時候是很客觀存在的事情,很多時候工業界在啟動一個項目的時候會希望你先做一個pilot。在這種情況下,只有非常少量的數據可以用。對於複雜的問題,還面臨著feature的維度很高,在這種情況下模型的預測能力一般都不會太好。老闆看到效果不好,這個項目就會被斃掉。
2.
模型及預測結果的可解釋度。面試的時候我曾被問過一個問題:你怎麼跟不具備相同知識背景的人解釋你的項目?這個問題對於機器學習的實用性非常重要,因為大部分複雜演算法的可解釋度都很低。據我觀察,在工業界比較流行的是:logistic/linear
regression還有random forest。能解釋才是王道。
3.
模型過擬合。這個問題也是老生常談了,但現實生活中我們常常可以看到有同事做出了一個看起來正確率超高的模型,但放到實際過程中完全不能用。雖然有各種方法進行regularization,
dropout, Bayesian learning,但很多時候overfitting還是不可避免。
4.
數據預處理(清理,彌補缺失,標準化等)。這個又是屬於人云亦云的過程,每個人對於每個數據的處理方法都不相同,大部分都是按照自己的經驗來處理。比如Missing
value吧,各種paper提出各種方法但實際效果都不會有哪一個特別牛逼。其實數據本身就是個問題,大部分項目都是 junk in junk out。
5.
不可預測性。機器學習的每個過程都充滿了不可預測性,比如解釋model,比如處理missing
value,也比如將文字轉化為vector。按理來說,我們會覺得更複雜的處理效果更好,但大部分時候你會發現bag
of words比skip-gram強多了。大概機器學習的每個環節都存在這種問題,沒有唯一的經典的最好的方法。做機器學習就像是猜密碼,而且是一個很多位的密碼…好在不需要全對我們就可以開鎖拿錢。自適應機器學習之類的研究或許可以幫助我們擺脫這種看天吃飯的工作流程。所以就像其他所有人提到的一樣,機器學習是一門玄學:)
模仿與逼近人腦我覺得會是機器學習的終極形式,但是現在由於生物科學發展的限制,人們對人腦的機理只窺得冰山一角。
現在最有希望的機器學習模型DeepLearining也正是基於對人類視覺系統的信號處理的研究發現:可視皮層是分級的。
所以可見,對人腦理解的一個小足進步都會推動機器學習一個大的發展。
另外一點是:
經過測試人腦神經元彼此傳遞信號的速度其實並沒有計算機模型中兩個神經元傳遞速度快,但是效果卻遠遠好於計算機神經元模型,那是因為人腦神經元之間是高度並行化的,這一點現代計算體系根本無法突破,只能期待有生物特性的計算機了。
從本質原理來說,目前的機器學習方法和人腦機制差異還是巨大的,更多的是通過大量數據來訓練一個可以盡量逼近訓練數據分布的模型,這種本質差異決定了機器學習離人腦思考方式還很遙遠。最近深度學習和神經網路很火,最常用的卷積神經網路CNN的發明者Yann LeCun都不樂意稱呼卷積神經網路這個名字,更樂意稱呼深度卷積網路模型等名字,因為他覺得自己在搞的模型和人腦差異太大,不應該用神經網路的名稱。
從科研角度來說,一般每隔若干年就會有一次技術的質變的突破,然後緊接著一些修補完善。之前火過的SVM、AdaBoost、SIFT等,經過幾年的優化後,性能基本達到極限,已經發展不動。這兩年火了深度學習,目前還處於各種優化提高階段,但應該也會到一定瓶頸後發展不動,然後需要更多的質變的突破。
從工業應用來說,機器學習的方法應用會越來越多,目前應用的瓶頸主要體現在下面一些地方:
1. 經驗。機器學習的方法對於一般的工程師並不友好,如果沒有了解原理和做過一些實驗,這就是一個參數很多的黑盒,弄不好效果就會很差。
2. 數據量。效果好的方法大都是有監督訓練的,這就需要很多標註數據,數據的質量、歸一化方法、分布等,對模型的效果都影響很大。
3. 計算能力。很多模型,特別是深度學習模型,訓練時間和資源消耗很大,如果需要多次訓練調整策略和參數,周期很長。實際部署運行速度也受模型大小和種類影響,速度和效果會有一個權衡。
4. 工程實現能力。好的演算法要有好的工程實現,才能發揮正常的作用,代碼能力不行,再好的模型也不行。
5. 演算法搭配。實際問題往往不是一個單一的演算法可以搞定的,需要多個相關演算法合理的搭配組合,具體問題具體分析解決。
6. 技術高度。機器學習還比較前沿,效果和應用場景都有天花板,期望未來幾年會有更多技術突破。我感覺,現在機器學習的挑戰是如何從海量數據中學習目標知識。以下也許是很好的入口:
Z.-H. Zhou, N. V. Chawla, Y. Jin, and G. J. Williams. Big data opportunities and challenges: Discussions from data analytics perspectives. IEEE Computational Intelligence Magazine, 2014, 9(4): 62-74.機器學習之所以這麼火的原因到底是什麼呢?難道真的只是吹牛逼的玄學么?那怎麼還有企業整天花錢在倒騰機器學習?機器學習在企業中到底做了什麼?
我覺得當這些問題都搞明白之後,自然就會想到機器學習該怎麼實現?需要解決什麼樣的問題,還有哪些問題解決不了需要改進,以及機器學習的意義所在。
…………………………………………………………………………………………………
其他不熟悉的行業不說了,就拿互聯網和金融行業來說,表現出來的特點是,信息量龐大,需要決策的場景非常之多且頻繁。
互聯網電商中的廣告投放、業績預測、會員體系、個性化方案,金融市場中的股價波動、市場利率調整、保險產品個性化等一系列問題,讓你人力上需要花很大的力氣去解決,而且還不一定做的好。
…………………………………………………………………………………………………
也正是因為這些原因,才主要機器來輔助決策,通過機器學習的方法,第一步先減輕人力工作,第二步才是比人工效果還好。
我們在解決實際場景過程中會面臨幾個方面的問題:
1.我們要解決什麼樣的問題,需要什麼樣的演算法來解決。到底是分類問題,還是預測決策問題,還是只是計算關聯的問題。這裡面就會存在因為實際業務情況複雜,而存在一般模型解決不了的時候。
2.我們需要哪些數據,可以實現這個模型的train,這裡面又存在沒有數據啦,數據噪音太多啦,數據格式不統一不規範,沒有我們想要的數據啦,選擇的feature不準確啦。
3.在train的過程中,數據都準備好了,會遇到怎麼選擇抽樣比例才能反應客觀事實?計算的時間要多久?(你丫的模型跑幾天才出來,實際情況可不可行)
4.test環節評估模型效果的方式方法是否合理,選擇的標準又是哪些?
5.因為是機器學習,所以又會涉及到具體的計算資源,代碼口徑,邏輯複雜度,人力成本,以及最終的效果表現。
…………………………………………………………………………………………………
基本上,如果你能用一個很輕巧又高效的模型演算法,解決一個實際場景比較頭疼的問題,那你就牛逼了!
就醬紫!ML中最重要的是不斷的train train train,和養一個孩子,從識字發音開始train一樣。
瓶頸在於,搞ML的都沒孩子,或者有了孩子也沒時間train
玄學太多
機器學習只是人工智慧三大分支的其中一個分支。
AI的三個分支分別是基於歸納的機器學習、基於神經網路的深度學習、基於羅輯推理的知識圖譜。
機器學習是近20多年興起的一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法複雜度理論等多門學科。機器學習理論主要是設計和分析一些讓計算機可以自動「學習」的演算法。機器學習演算法是一類從數據中自動分析獲得規律,並利用規律對未知數據進行預測的演算法。因為學習演算法中涉及了大量的統計學理論,機器學習與統計推斷學聯繫尤為密切,也被稱為統計學習理論。演算法設計方面,機器學習理論關注可以實現的,行之有效的學習演算法。很多推論問題屬於無程序可循難度,所以部分的機器學習研究是開發容易處理的近似演算法。
機器學習已經有了十分廣泛的應用,例如:數據挖掘、計算機視覺、自然語言處理、生物特徵識別、搜索引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰略遊戲和機器人運用。
機器學習天然的有其缺陷,它主要解決的分類和聚類問題,關於一些具有豐富的知識結構的問題,無法解決。
現有統計機器學習的模型演算法,缺乏通用性,因為過度依賴訓練數據,有些模型的訓練過程也不透明,實際上沒有可靠的復用基礎,你無法知道,換一個場景,你現在的工作是否有效。
個人稍微拋點磚頭,總結幾點個人遇到的「坑」:(如有錯誤,請拍磚指正,不勝感激)
1.模型泛化能力,這個涉及trade-off問題。理論方面的解釋不足,多採用了grid search的多參數組合求最優模型。解釋上的乏力導致了調參俠的誕生……
2.大數據量的計算問題。現在有了並行式計算框架的巨大進步,但這仍然是一個限制性的瓶頸問題,涉及到演算法的並行優化。(希望能學習到更多的並行化方法,望賜教)
3.神經網路的可解釋性。有會議已經拒收缺乏可解釋性的、調參結果式的paper了。
4.數據收集預處理。非常關鍵的步驟,可惜本人小碩一枚,實在是缺乏經驗啊……
5.經驗經驗問題啊,模型選擇把握不好啊……
謝邀。機器學習本身水還是很深,理論瓶頸不敢多談,估計更多模型的提出和最優化理論方面的突破啥的,但是機器學習能夠這麼火,還是因為能讓工業界讓各個水平的人都能用統計方法去解決問題。
在工業界應用主要有演算法和對應的系統的開發和演算法的使用。演算法開發倒也沒有什麼大的瓶頸,由於有基礎的理論做保證(當然也有些理論沒能完全保證但是真實效果ok的),更多的是系統的搭建,比如parameter server中優化通信方式,參數分離等等,尤其是數據更大時候更是需要系統設計的好.如果是理論不是特別完備的情況下就可能需要更好地探索。
演算法應用的瓶頸一般來說角度會不同,更貼近業務和數據,也沒什麼瓶頸可言,更多的是tradeoff,如果快速上線一個簡單但是可以接受的模型還是長時間開發一個複雜的但是效果更好的模型,如何調參使得效果更好,模型更新採用什麼策略等等,更重要的,有沒有#資源#做,老闆支持不支持,老闆的老闆看不看重,能不能把應用全套包裝好,這裡水深多啦!
反正可以看到機器學習在工業界最大的瓶頸還是數據和人...扯遠了...趕火車回家去了- -俺是門外漢,說下個人想法,專家輕拍磚。。
對於機器邏輯,最缺的是創新、總結、容錯率,即機器只能按固有模型優化,不能自我提升,突破性進階;有了BUG就當機了,不會自動禁用部分程序做應急處理。
破解的難點在於情緒和神經網路,人和動物都是通過情緒反應,來拒絕接受一些信息以維持原有內在邏輯的穩定性的,所以即使有很多BUG依然可以持續運行。所以是不是可以通過多BUG穩定運行來求突破?
依照目前的機器邏輯沒覺得有可能突破,得有另一套邏輯從底層破解,重新架構才能完成。比如機器人和機器人之間沒有記憶延續,而我們通過基因可以直接承載祖輩趨吉避害的信息,從而加快學習進程,比如有人天生怕蛇,有人一直不吃魚等等。
1.數據,特別是高質量的數據。
2.計算能力還不夠強大,訓練時間長。
3.「理解」模型而不是靠猜。這一步很重要,否則一旦實際應用中出現edge case,就會捉襟見肘,因為你無法真正理解模型的在幹啥,所以也自然無法找到問題所在。這也是很多看起來很高大上的模型,在實際中並不受歡迎,而一些看起來稀鬆平常了無驚喜的則大放異彩,比如random forests。
灌水的好題目…
軟體演算法層面
演算法的複雜度
特別是面對大量數據下的處理。本身很多演算法的複雜度不低,造成很多演算法的應用範圍受到了很大的限制,不是計算時間太慢就是內存需求太大。現在的數據量是越來越大,而且最終的應用效果也是和數據量有很大的關係的,畢竟目前的學習都是通過積累經驗獲得模型的,數據越多經驗才能越多。能否有新的更加優秀的優化方法降低學習時需要的時間和內存很重要。
並行化問題
並行化目前來看是解決複雜度的重要出路了,大家都希望利用分散式集群更加快速的學習更大規模的模型。集群本身是有物理和資源限制的,集群越大通訊開銷自然也會增加,而且本身經濟上也是要花錢的。何況,很多演算法也很難實現高效的並行,如果加上演算法本身複雜度又比較大,基本就沒有意義了。
通用演算法的問題
誰都希望能有一個通用的學習演算法可以自適應各種不同的任務,雖然這個可能性不大。現在的深度學習和神經網路之所以比較受關注,這方面也可能是部分原因,很多特徵都可以通過非監督方法來獲得,不需要人工太多干預,在這一方面還是減少了工作量的,而且確實有效果,語音圖像方面的測試一直被刷正確率,NLP方面估計也要被刷了。
數據層面
數據層面比較矛盾,網路上的數據是越來越多,但是可以用來訓練的優良數據還是有限。開放和組織標註更大範圍的訓練數據對機器學習任務的作用是非巨大。對於網上那麼多的數據看著用不上也心急,所以也需要非監督的方法,還有Transfer Learning來利用那麼多用不上的數據。
硬體層面
集群的數量
限制增加更多的集群,才能組織更大的模型,但是集群本身的建立畢竟也受物理限制。
GPU加速/FPGA專用硬體
專用硬體用來加速學習肯定比一般的通用硬體要快的。
基礎科學層面
對人類自己的神經系統的研究成果肯定對機器學習的演算法和思路有很大的影響,這幾年美國貌似在投入研究。這方面的突破會極大的加速機器學習。
利用互聯網上的大規模數據進行半監督的學習,完全的無監督學習即使可能效率也沒有有監督的高。在學習的過程中肯定還是需要人類的調教。
馮諾伊曼計算機結構
推薦閱讀:
※即時戰略遊戲(比如 WAR3)的 AI 是怎樣實現的?
※如何正確的學習Coursera上Andrew Ng的機器學習課程?
※如何系統地自學 Python?
※兩台絕頂聰明的電腦下棋對弈,誰會贏? 理由是什麼?
※哪些笑話只有程序員才能聽得懂?