11.3晚更新問題描述:

反思了一下提問的原因,發現我主要的疑惑在於「為什麼需要對不同數據重新訓練模型?」那麼是否可能有一種可以學習一切數據的通用程序呢?假如真的有這樣一種程序的話,似乎可以說「數據沒有這種程序重要」了。

機器學習的外行一枚。目前看到一些新聞,大多是「某方面放出某珍貴數據」,之後才會有相應的大量該領域的ai出現,據此產生上述問題。


這問題就像是在問,一個長跑運動員的左腿和右腿哪個更有價值……


先附上Scikit-learn中文文檔:

scikit-learn中文社區

在百度中輸入「什麼是機器學習?」並進行搜索後,就彷彿打開了一個潘多拉的魔盒,裡面有各種網站,論壇,百度知道,視頻,學術性研究等,當然還會這篇文章要講的,那就是什麼是機器學習等一系列相關的認知文章,和相關視頻的推薦。而這篇文章的目的也就是為了簡化機器學習的定義和方便人們理解什麼是機器學習。

除了瞭解什麼是機器學習(ML),機器學習的定義之外,我們還旨在簡要概述機器學習的基本原理,讓機器「思考」的挑戰和侷限性,以及今天深入瞭解的一些問題學習(機器學習的「前沿」),以及開發機器學習應用程序的關鍵要點。

本文將分為以下幾個部分:

  • 什麼是機器學習?
  • 我們是如何得出我們的定義的(也就是:專家研究人員的觀點)
  • 機器學習的基本概念
  • ML模型的可視化表示
  • 我們如何讓機器學習
  • ML的挑戰和侷限概述
  • 深度學習簡介

無論你對機器學習是否有興趣,我們都將把這些資源整合在一起,以幫助你解決有關機器學習的問題 - 所以你可以查看任何你感興趣的話題,或者按照順序閱讀這篇文章都可以,那麼我們就從下面的機器學習定義開始:

什麼是機器學習?

「機器學習是讓計算機像人類一樣學習和行動的科學,通過以觀察和與現實世界進行互動的形式向他們提供數據和信息,隨著時間的推移,以自主的方式提高計算機的學習能力。」

上述定義包含了機器學習的理想目標或最終目標,正如該領域的許多研究人員所表達的那樣。本文的目的是為具有商業頭腦的讀者提供有關機器學習的定義及其工作原理的專家觀點。 機器學習和人工智慧在許多人的腦海中具有相同的定義,但讀者也應該認識到他們其中的一些明顯的差異。

我們是如何得出我們的定義的:

(我們的整理的機器學習定義可以在本文開頭找到)

與任何概念一樣,機器學習的定義可能略有不同,具體取決於你向誰問機器學習的概念。我們梳理了在互聯網中對機器學習的定義,從一些著名的來源中找到五個實用的定義:

  1. 「最基本的機器學習是使用演算法解析數據,從中學習,然後對世界上的一些事情做出決定或者是預測。」 - Nvidia
  2. 「機器學習是一門不需要明確編程就能讓計算機運行的科學。」 - 斯坦福大學
  3. 「機器學習基於演算法,可以從數據中進行學習而不依賴於基於規則的編程。」 - 麥肯錫公司
  4. 「機器學習演算法可以通過例子從中挑選出執行最重要任務的方法。」 - 華盛頓大學
  5. 「機器學習領域旨在回答這樣一個問題:」我們如何建立能夠根據經驗自動改進的計算機系統,以及管理所有學習過程的基本法則是什麼?「 - 卡內基梅隆大學

我們將這些定義發送給我們採訪過和/或包含在我們之前的研究共識中的專家,並要求他們回答他們最喜歡的定義或提供他們自己的定義。我們的介紹性定義旨在反映不同的反應。以下是他們的一些回復:

蒙特利爾大學Yoshua Bengio博士:

ML不應由否定來定義(因此判定2和3)。而我的定義如下:

機器學習研究是人工智慧研究的一部分,旨在通過數據,觀察和與世界的互動為計算機提供知識。獲得的知識允許計算機能夠正確地推廣到新設置。

Danko Nikolic博士,CSC和Max-Planck研究所:

(選擇上面的數字2):「機器學習是讓計算機在沒有明確編程的情況下採取行動的科學,而是讓他們自己學習一些技巧。」

路易斯維爾大學Roman Yampolskiy博士:

機器學習是一門讓計算機學習和人類做得更好或更好的科學。

華盛頓大學Emily Fox博士:

我最喜歡的定義是第五個。

機器學的習基本概念

有許多不同類型的機器學習演算法,每天都會有新發布數百種的演算法,並且它們通常按學習風格(即監督學習,無監督學習,半監督學習)或通過形式或功能相似性(即分類,回歸,決策樹,聚類,深度學習等)。無論學習風格或功能如何,機器學習演算法的所有組合都包含以下內容:

  • 表示(一組分類器或計算機理解的語言)
  • 評估(又名目標/評分功能)
  • 優化(搜索方法;通常是評分最高的分類器;使用現成的和自定義的優化方法)

圖片來源:華盛頓大學Pedro Domingo博士

機器學習演算法的基本目標是在訓練樣本的基礎上進行泛化,即成功解釋之前從未「見過」的數據。

機器學習模型的可視化表示

到目前為止,概念和要點只能走這麼遠。當人們問「什麼是機器學習?」時,他們經常想看看它是什麼以及它做了什麼。以下是機器學習模型的一些可視化表示。

  • 決策樹模型

  • 高斯混合模型

  • drop神經網路

  • 卷積神經網路合併色度和亮度

我們如何讓機器去學習

有許多不同的方法讓機器學習,從使用基本決策樹到聚類再到人工神經網路層(後者已經讓位於深度學習),這取決於你要完成的任務和類型以及你可用的數據量。這種動力在各種應用中發揮作用,如醫療診斷或自動駕駛汽車。

雖然重點通常放在選擇最佳學習演算法上,但研究人員發現,一些最有趣的問題沒有可用的機器學習演算法的執行標準。大多數情況下,這是訓練數據的問題,但這也發生在使用機器學習在新領域上。

在處理實際應用程序時所做的研究通常會推動該領域的進展,原因有兩個:1.發現現有方法的界限和侷限性的趨勢2.研究人員和開發人員與領域專家合作,利用時間和專業知識來提高系統性能。

有時這也是由「意外」發生的。我們可能會考慮模型集合或許多學習演算法的組合來提高準確性,但有一個例子。2009年Netflix Price的團隊發現,當他們將學習者與其他團隊的學習者結合起來時,他們取得了最好的成績,從而改進了推薦演算法。

在商業和其他領域的應用方面,一個重要的觀點(基於對該領域專家的訪談和對話)是,機器學習不僅僅是一個經常被誤解的概念,甚至與自動化有關,這是一個經常被誤解的概念。如果你這樣想,你一定會錯過機器學習可以提供的寶貴見解和由此產生的機會(重新思考整個商業模式,就像製造業和農業等所做的那樣)。

學習的機器對人類很有用,因為它們具有所有的處理能力,能夠更快地突出顯示或找到人類可能錯過的大數據(或其他)中的模式,否則人類就會錯過這些模式。機器學習是一種工具,可用於增強人類解決問題的能力,並從廣泛的問題中做出明智的推斷,從幫助診斷疾病到提出全球氣候變化的解決方案。

挑戰與侷限

「機器學習無法從無到有......它的作用是從更少的東西中獲得更多。」 - 華盛頓大學Pedro Domingo博士

機器學習中兩個最大的,歷史性的和持續的問題都涉及過度擬合(其中模型表現出對訓練數據的偏見,並且不會推廣到新數據,和/或變化,即在訓練新數據時學習隨機事物)和維度(具有更多特徵的演算法在更高/更多維度上工作,使得理解數據更加困難)。在某些情況下,訪問足夠大的數據集也是主要問題。

機器學習初學者中最常見的錯誤之一是成功地測試訓練數據併產生成功的假象; Domingo(和其他人)強調在測試模型時保持一些數據集獨立的重要性,並且僅使用該保留的數據來測試所選模型,然後對整個數據集進行學習。

當一個學習演算法(即學習者)不起作用時,通常更快的成功之路是為機器提供更多的數據,其可用性現已成為近期機器學習和深度學習演算法進步的主要驅動因素。 然而,這可能導致可擴展性問題,在可擴展性中,我們有更多的數據,但是否有時間瞭解數據仍然是一個問題。

就目的而言,機器學習本身並不是目的或解決方案。此外,嘗試將其用作一攬子解決方案即「BLANK」並不是一項有用的做法; 相反,帶著一個問題或目標來到談判桌上往往最好由一個更具體的問題來驅動 - 「BLANK」。

深度學習與神經網路的現代發展

深度學習涉及機器演算法的研究和設計,用於在多個抽象級別(安排計算機系統的方式)學習數據的良好表示。最近通過DeepMind,Facebook和其他機構進行深度學習進行了宣傳,突顯了它作為機器學習的「下一個前沿」。

機器學習國際會議(ICML)被廣泛認為是世界上最重要的會議之一。該會議在今年6月在紐約市舉行,彙集了來自世界各地的研究人員齊聚一堂,他們致力於解決當前深度學習中的挑戰:

  1. 小數據集中的無監督學習
  2. 基於模擬的學習和對現實世界的可轉移性

深度學習系統在過去十年中在諸如對象檢測和識別,文本到語音,信息檢索等領域取得了巨大的進步。研究現在專註於開發數據高效的機器學習,也就是在個性化醫療、機器人強化學習、情緒分析等前沿領域,開發更搞笑的深度學習系統,在更短的時間和更少的數據下,以同樣的性能進行跟高效的學習。

應用機器學習的關鍵

下面是一系列應用機器學習的最佳實踐和概念,我們已經從我們對播客系列的採訪以及本文末尾引用的選擇來源進行了整理。我們希望這些原則中的一些將闡明如何使用ML,以及如何避免公司和研究人員在啟動ML相關項目時可能容易受到的一些常見陷阱。

  • 可以說,在成功的機器學習項目中最重要的因素是用來描述數據(特定於領域)的特性,並具有足夠的數據來訓練你的模型
  • 大多數情況下,當演算法表現不佳時,這是由於訓練數據存在問題(即數據量不足/數據偏差;數據雜訊較大;或者描述數據的功能不足以做出決策
  • 「簡單並不意味著準確性」 - 根據多明戈的說法,模型的參數數量和過度擬合的趨勢之間沒有特定的聯繫
  • 如果可能的話,應該儘可能的獲得實驗數據(而不是我們無法控制的觀察數據)(例如,從向隨機觀眾進行抽樣發送不同的電子郵件中收集的數據)
  • 無論我們是否標記數據因果關係或相關性,更重要的都是預測我們行為的影響
  • 始終留出一部分訓練數據集進行交叉驗證; 你希望你選擇的分類器或學習演算法在新數據上表現良好


1.建立模型是需要有普遍適用性;

2.你提出的問題通過這些問題可以解釋;

我們面對的問題應該是有規律可循的,或者說有特定的分佈。任何模型通過不同手段,包括現在的深度學習,多層神經網路,它的優勢是能擬合大部分函數,但如果你的問題本身沒有規律可循,或者說根本沒有這樣一個函數,那麼你的數據再多也沒什麼用;

新的數據是為了驗證模型穩定性的,如果模型在新的數據上驗證結果不好,可能是欠或者過擬合再或者根本不能反應這些問題。

第二點,很多問題數據是及其稀缺的,我們遇到的是個例,對於個體差異性的依賴嚴重,所以重這些角度來看,數據確實珍貴,尤其是患者數據,本身特異性導致病情規律的複雜性和多樣性,另外數據並不要收集,收集來的數據由於設備,人員的誤差導致結果差異還是很大的。

所以,好的數據對於模型構建有好處,好的模型建立起來應該對於新的數據有一定的魯棒性,而絕對是不是隨著數據波動,模型就不停地變化。

舉個特例,生物醫療方向的文章,掛了機器學些的基本可重複性很低,原因嗎,作者會定向去除數據,結果就是好!但選擇好的樣本就相當於模型抗擾動行沒有。所以好的數據並不一定是一件好事。


用烹飪來打比方,數據就好比食材,演算法是做菜的步驟。

自然是不同的食材有不同的做法,同樣的食材也可以做成不同的菜,又或者同樣的食材同樣的菜也可以用不同的步驟、方法來做。

至於做出來的菜題主反倒沒有問。請題主對號入座想想哪個更有價值。


就目前的情況來說,數據和演算法同等重要,畢竟很多人都在通過堆砌數據量和計算力以獲得更高的準確率。

但這不是理想的狀態,若是以人工智慧為目標,我們更應該尋求一種在極其有限的數據量和低計算力下也能工作得很好的演算法,這意味著演算法要引入大量的先驗知識,且不能單單侷限於統計學習。

引入先驗知識的一個典例就是卷積神經網路,因為考慮了圖像數據在空間分佈上的關係,取得了其他演算法難以比擬的效果。你在全連接網路上投入再多的數據也很難達到卷積網路的準確率。

至於統計學習以外的學習方式,比如推理學習,一直沒有什麼進展,因為目前的機器學習都是做的相關性分析,並不考慮因果關係,所以才總會有人說機器學習就是把統計學的東西包裝了下。

你所說的換了數據就要從頭學起,基本就相當於每個人都從生命誕生之初重新進化一遍,這無疑是荒唐的,但也沒辦法,現在的演算法還太稚嫩,做不到在原先的基礎上拓展,所以先前學習到的經驗難以利用,只能從頭來一遍。

若想做出一個通用的演算法,需要投入大量的資源和精力去建立一個普適的認知框架,然後在這基礎上再去訓練個體模型。

推薦閱讀一下朱松純教授的一篇文章《淺談人工智慧:現狀、任務、構架與統一》


推薦閱讀:
相關文章