你真的需要機器學習嗎?

2020-12-17 雷鋒網

雷鋒網按:以機器學習為代表的人工智慧領域目前是科技領域最熱門的方向之一,它被稱為新時代的水電煤,會為所有產業帶來基礎性的革命。但對於一家公司、一個部門、一款產品和一位產品經理來說,他們需要一個簡單而重要的答案:我真的需要機器學習嗎?

你真的需要機器學習嗎?

很多公司和科技博客都在一直鼓吹「人工智慧」代表未來,並提出他們會如何運用「機器學習」來改進科技,在競爭中脫穎而出。但是機器學習到底是什麼,你應該怎麼使用它?又或者它只是2017年的一個時髦熱詞而已?

長話短說,以上問題的答案是肯定的,在大多數情況下 - 但是在它可以提供幫助的地方,機器學習可以是革命性的。

所以機器學習到底是什麼?以它最原始的形式來說,機器學習是一項實踐函數逼近(function approximation)的藝術,或者說是要做出有根據的推測。它和專業人員的經驗是相同的概念,比如管道工擁有根據房屋中漏水情況快速、準確地判斷造成漏水原因的經驗。在機器學習中,我們稱這樣的經驗為「大數據」。在遇到和解決的每一個問題之後,管道工會得到一個新的數據點,她可以使用這些知識來解決將來會遇到的、相似的問題。

上面提到的這些看起來都很棒,但是對於近期機器學習熱度的躍升,我敢於稱其為時髦術語也是有原因的。機器學習幾乎從來都不是問題的終極答案。機器學習會很容易讓簡單的問題變的異常複雜 - 比如想要重新發明for循環的想法是完全站不住腳的。大多數所謂使用「機器學習」的公司或者是沒有真的使用機器學習的技術,或者是把普通的算法開發稱作機器學習來達到市場宣傳的效果,又或者是在產出過度複雜、計算量巨大、價格昂貴並且根本不必要的解決方案,想要解決一些本來可以使用常規手段解決的問題。

這並不意味著機器學習永遠都沒有用處。事實上,當把它正確地運用在適合的問題上,機器學習可以是一件不可思議的工具。但什麼是一個適合的問題哪?雖然不是一個機器學習問題蓋棺定論的定義,這裡有一個簡便的清單,來確定一個問題是否值得使用機器學習的方式,還是說更適合用標準的解析辦法。

作為一個機器學習問題:

  • 會有「大數據」 - 許多許多數據點(一個大型的項目如果沒有上百萬個數據點的話,也許不會見到很好的效果)

  • 是一個複雜的問題 - 一般是一個以標準模式非常難以解決的問題,經常會需要一個領域中的專家

  • 是具備不確定性的 - 一樣的輸入不一定產生一樣的輸出

  • 是有多維度的 - 經驗法則是數據點的採集是從最少9各方面來做的時候,這樣的問題會更適合機器學習方式

一些符合這個清單的、流行的機器學習問題的例子包括:醫療圖片處理,產品推薦,語音理解,文字分析,面部識別,搜尋引擎,自動駕駛車輛,擴增現實,預測人類行為。

機器學習面臨的其中一項最大的挑戰是如何處理系統中的不確定性,不確定性是指同樣的輸入不一定會產生一樣的輸出結果。針對這個問題,我們會在這篇文章中以例子的形式來解釋,這個例子是預測多倫多的天氣。在這個例子中,我們有大數據 - 包括上百年的多倫多的天氣資料。 這個問題足夠複雜,準確的天氣預測需要具備氣象科學訓練和經驗的專家。這個問題是具備不確定性的,2016年2月23日天氣冷並不意味著2017年2月23日天氣也會是一樣的,儘管他們分享一樣的歷史數據。這個問題同時也是多維度的 - 風向模式,雨量模式和任何一個會影響天氣的因素都可以成為解決問題的一個新的維度。因為這個問題是具備不確定性的,我們必須使用我們有的信息,儘量好的去預測系統的輸出結果(預測天氣)- 我們要做出最合理的猜測。

對於機器學習來講,我們的最合理猜測或者函數逼近幾乎總是關於對於數學的創造性運用 - 這可能包括統計學/概率論,向量學,優化或者其他數學的方法。存在著幾種核心的機器學習問題,他們可以幫助我們確定什麼樣的解決方法可以最好的解決一個問題:分類學,回歸分析和聚類。在例子中,我們見到的是一個回歸分析的問題 - 從數據中預測持續性的趨勢。存在著幾種核心的方法去訓練系統,或者說給系統提供經驗去學習,這些方法包括:有監督學習,無監督學習和強化學習。在我們的例子中展示的是有監督學習,在這個例子中,所有用來訓練的數據的輸入和輸入都是已知的。我們給出一個歷史日期(輸入)就可以知道當天多倫多的天氣(輸出)。定義問題和訓練模型讓決定使用什麼樣的方法去訓練機器學習算法變的更加簡單。

到了這裡,你已經決定要預測天氣(或者解決一個不同的機器學習問題)而且你已經使用上面的清單確定了這是一個真實有意義的問題。但是應該是從哪裡入手哪?下面是一個關於解決機器學習問題步驟的簡便指南:

  1. 定義有意義的數據

  2. 定義問題

  3. 定義解決問題的方法

  4. 產出訓練和測試數據 - 從經驗來講,應該保持70%的訓練數據量,30%的測試數據量

  5. 訓練和測試算法

讓我們用我們天氣預測的問題來實踐一下上面提到的步驟:

第一步是定義有意義的數據。什麼樣的屬性是有意義的,怎麼樣去定義一個「好」的數據點和「壞」的數據點?我們可以拿幾個我們例子中的屬性來解釋一下,比如讓我們取溫度,降雨量和風速這三個屬性,把這三個屬性放在一起,我們可以基本了解到特定的一天天氣如何。如果同時有像特定一天多倫多人年齡中位數這樣的屬性,我們就應該把這樣的屬性排除在有效數據之外,因為這樣的屬性跟我們要解決的問題並沒有關係,而且有可能會影響最終的結果。

第二步,我們已經確定問題是一個回歸分析的問題,並且應該使用有監督學習的方法。第三步需要選擇一個真正的機器學習方法,在這我們不會討論太多細節,簡單來說讓我們選擇線性回歸。第四步是取得訓練數據(留下30%的數據做測試之用)。第五步就是  實際的訓練和測試。

也許你已經從上面的步驟中發現了,實際去訓練算法是最後也只是最不重要的一步。創造一個強大的機器學習的重要的一步是在編程之前,就確保你擁有有意義的數據,一個定義清晰、明確的問題和解決方案。

即使你有了定義清晰、分類準確的解決方案,有意義的數據,正確的測試數據,在數據趨勢中包括了異常值,仍然有很多地方可能出錯。在很多機器方案背後,最常見也是最致命的錯誤是低度擬合/過度擬合。低度擬合,或者也叫過高偏差,意味著最終的近似函數太過簡單,不能很好地代表數據的趨勢。想像一下我們試圖畫一條直線穿過多倫多一年溫度的圖表,這條直線很難撞到任何一個數據點。在低度擬合和過度擬合兩者中,更常見也更危險的是過度擬合,或者也叫過高方差。在這個情況中,最後的近似函數會太過複雜,也不能很好地表現數據趨勢。過度擬合經常產生比低度擬合更差的結果,大家也很容易落入這樣的陷阱。

這篇文章只是一個關於機器學習的基本介紹,更多的學習資料正變的更加普遍,在很多語言和GUIs中(目前一些最好的機器學習的資料是用Python寫就的),已經出現非常多即用型的機器學習算法和測試數據可以被用來做實驗,其中包括Theano, Tensorflow, Weka甚至包括Octave和Matlab。

附加資源連結:Theano,TensorFlow,Affine Layer Demo。

廣告:想知道你到底需不需要機器學習嗎?想了解到底如何應用人工智慧到產品中?由雷鋒網(公眾號:雷鋒網)聯合承辦的 CCF-GAIR 2017 全球人工智慧與機器人大會將於 7 月 7 日 - 9 日在深圳舉辦,現 6 折優惠購票中,還不來搶購,購票地址:https://gair.leiphone.com/。

via:symbilitysolutions,雷鋒網編譯。

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 機器學習頂會 NIPS 要改名了?真的嗎?
    雷鋒網 AI 科技評論按:機器學習頂會 NIPS 要改名?今天不是 4 月 1 日吧?NIPS ( Conference and Workshop on Neural Information Processing Systems ) 是人工智慧 & 機器學習領域歷史十分悠久的學術會議了,從 1987 年創立,以固定每年一次的頻率一直開到了 2018 年。
  • 你的數據真的安全嗎?黑客利用機器學習竊取數據的7種方式
    機器學習是人工智慧的一個子集,以其分析大數據和識別模式的能力而聞名。機器學習使用的算法利用了先前的數據集和統計分析以作出假設並進行行為判斷。機器學習的最佳特性是由機器學習算法驅動的軟體或計算機能夠操作尚未被編程執行的功能。
  • 機器學習中所需要的數學知識介紹
    接著,我會大致敘述在機器學習領域不同類型所需要的具體背景知識,大致涵蓋了高中的統計學和微積分,到最近的概率圖形模型(PGM)。最後,我希望你能找到自己所在領域所需要的數學知識。希望這篇文章對你有用! 關於被數學支配的恐懼 數學可以說是很多人的噩夢,包括工程師們。在開始之前,我想談談那些「數學好的人」到底有什麼秘訣。
  • 遍地都是百萬年薪機器學習專家?真的假的?
    CMU 的機器學習助理教授 Zachary Chase Lipton 發文自曝了真實情況,雷鋒網 AI 科技評論編譯如下。在馬斯克位於火星平原的星際動物保護區裡,AI 超級英雄、新晉百萬富翁 Zachary Chase Lipton 正給袋鼠餵比特幣吃(誤)Zachary Chase Lipton:在卡德梅茨爆料之後的幾小時內,我收到了不少電子郵件,父母的、朋友的、老同學的、女朋友的,這些郵件都在問「你看過這篇文章了嗎
  • 僅需10分鐘:開啟你的機器學習之路
    Scikit-Learn   這是用 Python 實現機器學習的終極工具。所謂用 Python 實現機器學習指的就是這個——Scikit-Learn。所有你需要的從算法到提升的內容都能在這裡找到。
  • 機器學習開發者的現代化路徑:不需要從統計學微積分開始
    我們也有像Codecademy這種給你學習編寫程序的資源了……沒錯,其實就是編程。如果一個開發者想「做」機器學習,他真的必須花幾年時間和幾十甚至成百上千的美元,來獲取必要的數學知識和更高的學位麼?答案當然是不!還有一個更好的方法。
  • 學習機器學習,你需要了解這5點
    想要了解機器學習你需要知道以下幾點:從實際的應用場景出發,要訓練出來一個能夠適應某場景的模型需要經過以下幾步:場景解析就是將業務邏輯,抽象成為通過算法能夠解決的問題。特徵工程是機器學習中最重要的一部分,因為根據已有的訓練數據,可選用的算法是有限的;那麼在同樣的算法下特徵的選取是不同的,100個人對一件事情會有100種看法,也就有100種特徵,最後特徵的質量決定模型的好壞。
  • 想了解機器學習?你需要知道的十個基礎算法
    關於機器學習,你需要知道的十個基礎算法毫無疑問,作為人工智慧的子領域—機器學習在過去的幾年中越來越受歡迎。由於大數據是目前科技行業最熱門的趨勢,基於大量的數據機器學習在提前預測和做出建議方面有巨大的潛力。一些有關機器學習常見的例子有:Netflix基於你以前看過的電影再給你做出影片的推薦,或者亞馬遜根據你以前買過的書籍再給你進行圖書推薦。如果想了解更多有關機器學習的知識,要從哪裡開始呢?作者第一次入門是在哥本哈根海外交流時選了一門有關人工智慧的課程。
  • 機器學習論文復現,你需要注意的五大問題
    論文復現一直是機器學習領域的難題,雖然最近多個學術會議提倡大家提交代碼,但解決論文復現問題仍然任重而道遠。在試圖復現機器學習論文時,我們經常遇到哪些問題呢?新加坡機器學習工程師 Derek Chia 對此進行了總結。我最初接觸機器學習時,花費了大量時間來閱讀論文,並嘗試實現。當然,我不是天才。實現它意味著要執行 git clone 並嘗試運行論文作者的代碼。
  • 乾貨 | 如何用Python開啟你的機器學習之路
    (真的!)我將在下文中介紹幾個基於 Python 的庫。作為數據分析師和數據科學家,我們可以利用他們的傑作來幫助我們完成任務。這些不可思議的庫是用 Python 實現機器學習的必備工具。NumPy這是一個非常有名的數據分析庫。從計算數據分布的中位數,到處理多維數組,NumPy 都可以幫你完成。
  • 機器學習論文復現,這五大問題你需要注意
    論文復現一直是機器學習領域的難題,雖然最近多個學術會議提倡大家提交代碼,但解決論文復現問題仍然任重而道遠。在試圖復現機器學習論文時,我們經常遇到哪些問題呢?新加坡機器學習工程師 Derek Chia 對此進行了總結。我最初接觸機器學習時,花費了大量時間來閱讀論文,並嘗試實現。當然,我不是天才。實現它意味著要執行 git clone 並嘗試運行論文作者的代碼。
  • 論文中的準確率指標靠譜嗎?5個機器學習悖論改變你對數據的看法
    曉查 編譯自 Medium量子位 報導 | 公眾號 QbitAI道路越多越擁堵、越智能的算法需要的計算力越少。這些反常識的機器學習悖論你知道是怎麼回事嗎?AI就是重構人類的認知方法,所以機器學習也會產生一些悖論。最近,數據科學家Jesus Rodriguez總結了機器學習解決方案中最著名的5個悖論,或許能幫助你更深刻地理解AI中的數據,避免在處理數據的時候出現一些低級錯誤。
  • 無處不在的機器學習
    一切都需要提前準備計劃,否則可能會搞砸。所以,你告訴你的虛擬助手:定一個明天早上7點的鬧鐘預約8:30的Uber直接去面試地點估算乘車費在Google地圖上預估可能需要的時間最後,整理在面試前需要的資源清單所有這一切您都無需移動或花時間輸入。
  • 人工智慧、機器學習和神經網絡 你真的知道它是什麼意思嗎(1)
    但是,AI(人工智慧)、機器學習、神經網絡,這些詞看著潮,究竟是指什麼呢?別慌,我們試著舉幾個簡單的例子來解釋一下。 人工智慧「科技潮人」小明愛玩各種數碼產品,生活裡也經常使用打車和訂餐軟體。
  • 機器學習太難?一文帶你掌握機器學習的必備基礎知識
    你是否用垃圾郵件過濾器來處理垃圾郵件?你是否訂閱Netflix,並通過其精確的推薦系統來發現新電影呢?如果你符合以上任何一條,那麼恭喜你,你已經很好地用到了機器學習!雖然機器學習聽起來很複雜,但實際上是相當簡單的概念。為了更好地理解它,讓我們在文本中解讀這幾個概念:機器學習是什麼、發展歷程、內部原理和重要性。
  • 自學成才的機器學習工程師
    需要澄清的是,如果你的先進模型需要47倍的時間才能提高1%的準確率,那麼它是否提供了最好的體驗?3. 不要被三大項給騙了無論你多麼崇拜這三大項,你都不應該被你的愛蒙蔽。自學成才的機器學習工程師是他們自己的最大的懷疑者。
  • 等你在2118:探索機器學習算法生命周期
    你認為哪個機器學習算法會在2118年繼續使用? 你的腦海會浮現什麼答案呢? 隨機森林(Random forest),SVM,K-means,KNN甚至深度學習的其他變種?一些人可能會笑了,問:「你到底能如何預測的,預測未來100年的事情是很瘋狂的事?」
  • 大數據給機器學習帶來了什麼影響?
    它還能成為機器學習的研究對象嗎?它是否將繼續在統計學習的陰影裡生活並苟延殘喘?  對這個問題有三種可能的回答:一是告訴符號學習:「你就是該退出歷史舞臺,認命吧!」二是告訴統計學習:「你的一言堂應該關門了!」單純的統計學習已經走到了盡頭,再想往前走就要把統計學習和符號學習結合起來。三是事物發展總會有「三十年河東,三十年河西」的現象,符號學習還有「翻身」的日子。
  • 學習機器學習,一定要會高等數學嗎?
    機器學習和深度學習需要高等數學知識嗎?有人說不需要,其他人說需要很多。兩者都是正確的,取決於要實現的目標。
  • Feedly創始人是如何入門機器學習的
    我真的很享受幾乎每一門參加的CS課程。實際上,只有一門例外:機器學習入門!我對這門課程很感興趣,不幸的是,看起來這門課的教授對教授這門課程的不感興趣程度和我的感興趣程度差不多,教得也不好。所以長期以來機器學習不在我的關注範圍之內。不過,幾年前,我注意到機器學習真的吸引了很多注意力,這再次激起了我的好奇心。這次我從吳恩達的MOOC開始,吳是一個很棒的教授。