當前位置:
首頁 > 最新 > 關於機器學習,那些前輩們不會輕易告訴你的12條經驗

關於機器學習,那些前輩們不會輕易告訴你的12條經驗

機器學習是人工智慧的核心,而機器學習的演算法是其最重要的武器。機器學習演算法可以從例子中歸納出執行重要任務的重要方法,這種方法不僅可行還可節約成本,隨著可用的數據越來越多,我們就可以利用其解決更多的問題,因此,機器學習在計算機科學和其他領域中都得到了廣泛的運用。

儘管如此,開發出成功的機器學習應用程序還需要大量的「黑科技」,而這些是在課本中找不到的。華盛頓大學的Pedro Domingos教授發表的一篇題為《關於機器學習你需要知道的一些事兒》的科技論文,總結了機器學習研究人員和實踐者所學習到的12個重要的經驗教訓,包括要避免的陷阱、要關注的重要問題以及常見問題的答案等。

1. 學習=表示+評價+優化

所有的機器學習的演算法通常包括三個組成部分:

表示:一個分類器必須用計算機能夠處理的一些正式語言來表示。相反,為學習者選擇一種表示方式就等同於選擇一組可以學習的分類器。這個集合被稱為學習者的假設空間。如果一個分類器不在假設空間中,它就不能被學習。一個相關的問題是:如何表示輸入,比如使用哪種特徵。

評價:要區分好的分類器和壞的分類器,需要一個評價函數。演算法內部使用的評估函數與分類器外部使用的評價函數可能不同,其主要是為了便於優化,以及下一節中我們要討論的問題。

優化:最後,我們需要在語言的分類器中找到得分最高的一種方法。優化技術的選擇是提高學習者效率的關鍵,同時也有助於確定分類器的評價函數是否具有多個最優值。初學者開始的時候使用現成的優化器是很常見的,不過這些優化器會被專門設計的優化器取代。

2?. 泛化起著舉足輕重的作用

機器學習的基本目標是泛化訓練集中的例子。這是因為,無論我們有多少數據,我們都不太可能在測試時再次遇到一模一樣的例子。在訓練集上做得很好很容易,機器學習初學者最常見的錯誤是,對訓練數據進行測試之後以為自己成功了。之後把選擇的分類器放在新數據上測試,發現還沒有隨機猜測的準確。

所以,如果你雇了一個人來構建一個分類器,一定要保留一些數據用來測試他們給你的分類器。

相反,如果你已經被僱傭來構建一個分類器,那麼在開始的時候將一些數據放在一邊,最後用它來測試你選擇的分類器,也就是最後在全部數據的基礎上學習你的最終分類器。

3. 只有數據是不夠的

把泛化當成目標還有另一個重要的後果:不管你有多少數據,只有數據本身是不夠的。

這似乎是一個令人沮喪的消息。那麼我們怎麼能學到東西呢?幸運的是,我們想要在現實世界中學習的函數並不是由所有數學上可能的函數集合而來。

事實上,一般的假設(比如平滑、具有相似的類(class)的相似例子、有限的依賴關係,或者有限的複雜性)通常都能很好地完成,這也是為什麼機器學習如此成功的一個重要原因。像演繹法一樣,歸納法(學習者所做的)是一個知識槓桿:它將少量的輸入知識轉化為大量的輸出知識。歸納是一種比演繹更強大的槓桿,用較少的輸入知識來產生有用的結果,但它仍然需要輸入知識大於零才能工作。和任何槓桿一樣,我們投入的越多,我們就能得到更多。

現在回想起來,學習知識的必要性並不令人驚訝。機器學習並不是魔法,它不能無中生有。它所做的是從很少的東西中學到更多。和所有的工程一樣,編程也有很多工作要做:我們必須從頭開始構建一切。

學習更像是一種耕作,它可以讓大自然完成大部分的工作。農民把種子和營養結合起來種植作物。學習者將知識與數據結合起來,以發展項目。

4?. 過擬合有多樣性

如果我們所擁有的知識和數據不足以完全確定正確的分類器,那該怎麼辦?那樣我們就會冒著產生幻覺的風險(或者一部分),這不是基於現實的,只是在數據中隨機編碼。這個問題被稱為「過擬合」,是機器學習的難題。

當學習者輸出的分類器在訓練數據上能達到100%準確度,但在測試數據上卻只有50%的準確率,而實際上它在兩個數據集上的輸出結果都能達到75%的準確率,這就是我們所說的過擬合。

機器學習中的每個人都知道過擬合,但它的形式多種多樣,而且也不會立即變得明顯。理解過擬合的一種方法是將泛化誤差分解為偏差和方差。偏差是一種學習者傾向於不斷地學習同樣的錯誤;方差是不管實際信號是什麼,學習隨機事物的傾向。線性學習者有很高的偏差,因為當兩個類之間的邊界不是一個超平面的時候,學習者就無法歸納它。決策樹不存在這個問題,因為它們可以表示任何布爾函數,但另一方面,它們可能會受到高方差的影響:由相同現象產生的不同訓練集的決策樹通常是非常不同的,實際上它們應該是一樣的。

交叉驗證可以幫助對抗過擬合,例如通過使用它來選擇決策樹的最佳大小來學習。它不是萬金油,因為如果我們用它來做太多的參數選擇,它本身就會開始過擬合。

除了交叉驗證,還有很多方法可以對抗過度擬合。最受歡迎的是在評價函數中添加一個正則化項。

例如,它可以對具有更大結構的分類器進行懲罰,從而傾向於較小的結構,進而避免過擬合。另一種選擇是,在添加新結構之前執行像卡方這樣的統計顯著性測試,以確定這個類的分布是否真的不同於這種結構。當數據非常稀缺時,這些技術尤其有用。

雖然如此,你應該對某種技術能解決所有過度擬合問題的說法表示懷疑。想要避免過擬合(方差)很簡單,我們可能會掉入另一個極端也就是欠擬合(偏差)。想要同時躲開這個兩個錯誤需要我們學習一個完美的分類器,並且在事先不知道它的情況下沒有任何一種方法總是能做到最好(世上沒有免費的午餐)。

5?. 高維度中直覺不再好用

說完過擬合的問題,接下來要談的是機器學習中的最大的問題——維度的詛咒。這一表達是1961年Bellman提出的,指的是許多在低維度上工作正常的演算法在輸入是高維度的時候變得難用。但在機器學習中,這裡包含的更多。

隨著示例的維度數(特徵數量)的增長,泛化變得更加困難,因為固定大小的訓練集覆蓋了輸入空間的一小部分。

高維的普遍問題是,我們的直覺是來自於三維世界,通常並不適用於高維的情況。在高維的情況下,一個多變數高斯分布的質量並不在平均值附近,而是在一個越來越遠的「殼」周圍。高維度的橙色的體積大部分是在皮膚上,而不是在果肉上。

如果一個常數的例子在高維超級立方體里均勻地分布,在多維度的情況下,大多數例子更接近於超立方體的一個面而不是它們最近的鄰居。如果我們用一個超立方體來近似一個超球體,在高維度中幾乎所有的超立方體的體積都在超球面之外。這對機器學習來說是個壞消息,其中一種類型的形狀通常被另一種類型的形狀所近似。

在二維或三維空間中構建一個分類器很容易:通過視覺檢查我們可以找到一個不同類別的例子之間的合理的界限。但在高維度中,很難理解發生了什麼。這就使得設計一個好的分類器變得困難。

有些人可能會天真地認為收集更多的特性並沒有壞處,他們認為即使是最壞的情況,他們沒有提供關於這個類的新信息而已。但事實上,它們的好處可能被維度的詛咒所抵消。

6?. 理論保證通常與實際情況不一樣

機器學習的論文充滿了理論保證。最常見的類型是為了確保良好的泛化所需要的示例數量。如何去看待這些理論保證呢?

首先,要注意的是這些都是可能的。歸納法傳統上與演繹法形成鮮明對比,在演繹法中你可以保證結論是正確的。在歸納法中所有的賭注都被取消了,這其實是許多世紀以來的傳統智慧。

近幾十年來最重要的發展之一是我們認識到事實上我們可以保證歸納結果,特別是如果我們願意接受概率擔保。

我們要小心這個界限意味著什麼。例如,它並沒有說,如果你的學習者返回了一個與特定訓練集一致的假設,那麼這個假設很可能泛化的很好。

它所說的是,如果有足夠大的訓練集,那麼你的學習者可能會返回一個泛化很好的假設或者無法找到一個與訓練集一致的假設。這個界限也沒有說明如何選擇一個好的假設空間。它只告訴我們,如果假設空間包含真正的分類器,那麼學習者輸出壞分類器的概率就會隨著訓練集的大小而減少。如果我們縮小假設空間,約束就會得到改善,但它包含真正的分類器的可能性也會減小。

另一種常見的理論保證是漸近的:有了無限的數據,學習者就可以輸出正確的分類器。這是讓人安心的,但由於它的漸近保證,在選擇學習者的時候就會顯得輕率。

在實踐中,我們很少處於漸近狀態(也被稱為「不對稱」)。由於前面討論過的偏差-方差權衡,如果給了無限的數據之後,學習者A比B更好,那麼在給了有限數據的情況下,通常學習者B比A要更好。

在機器學習中,理論保證的主要作用不是作為實際決策的標準,而是作為演算法設計的理解和驅動力的來源。在這種能力下,它們非常有用,事實上,理論與實踐的密切互動是機器學習多年來取得長足進步的主要原因之一。

不過需要注意的是:學習是一種複雜的現象,僅僅因為學習者既有理論上的依據又在實踐中工作並不意味著前者是後者的原因。

7. 特徵工程是關鍵

最終來看,有些機器學習項目能成功,而有些卻失敗了。那是什麼造成了這樣的差異?顯而易見,最重要的原因應該是使用特徵的方式。如果你有許多獨立的特徵,而其中每一個都和這一類相關聯,這種情況下學習起來很容易。相反,如果這個類是一個關於特徵非常複雜的函數,那就可能無法學習它。

通常情況下,原始數據不是可以直接用於學習的形式,但是可以從中構建特徵。這通常是機器學習項目中需要花費大部分時間的地方。它往往也是最有趣的部分之一,因為可以發現數據直覺、創造力和「黑科技」與純技術性東西是同等重要的。

常常令初學者感到驚訝的是,在機器學習項目中,研究機器學習演算法花費的時間是非常少的。但是,如果你考慮了收集、整合、清理和預處理數據的時間,以及在設計特徵上很多次嘗試和失敗的時間,那你就不會對之前的現象感到驚訝。

另外,機器學習中建立數據集和訓練模型的過程不是一次性的,而是包含訓練模型,分析結果,修改數據和(或)模型並重複迭代的過程。訓練通常是花費時間最少的部分,但那是因為我們已經很好掌握了其中的技巧!而特徵工程就顯得更加困難,因為它具有很強的針對性,而模型在很大程度上是可以通用的。但是,兩者之間沒有明顯的界限,這也是為什麼能促進知識整合的模型才是最有用的模型。

8. 數據比演算法更重要

在大多數計算機科學中,兩種主要的有限資源是時間和內存。在機器學習中,還有第三種:訓練數據。哪一種資源會成為計算機科學發展的瓶頸,年復一年,一直在變化。在20世紀80年代,這種瓶頸往往是數據。而在今天,卻是時間。我們有大量可用的數據,卻沒有足夠的時間來處理它,所以這些成為了沒用的數據。

這產生了一個悖論:即使原則上有更多的數據意味著可以訓練更複雜的分類器,而實際上更簡單的分類器才能被廣泛使用,因為訓練複雜的分類器需要很長的時間。這個悖論的部分答案是想出一種快速訓練複雜分類器的方法,事實上在這個方向的確已經出現了顯著的進展。

使用那些比期望回報更小的智能演算法的部分原因是為了更加擬合數據,而所有的智能演算法都做同樣的事情。當你認為表徵規則集和神經網路不同時,會令人感到驚訝。

但事實上,規則項很容易被編碼為神經網路,而在其他表徵之間也存在類似的關係。所有的模型演算法本質上的工作都是通過將近似的樣例分組到同一個類,他們之間關鍵的區別在於如何定義「近似」。

在數據是非均勻分布的狀態下,模型會產生大量不同的邊界,同時在重要的區域(即具有大量訓練樣例的那些區域,也是大多數測試樣例可能會出現的區域)中也做出相同的預測。這也有助於解釋為什麼強有力的訓練可能是不穩定的,但結果仍然準確。

通常,首先嘗試最簡單的學習模型(例如,樸素貝葉斯,k-最近鄰)是值得的。雖然更複雜的模型更具誘惑力,但他們通常難以使用,因為如果你想獲得好的結果,你需要踩更多的坑,而且這類模型的演算法細節通常是不透明的。

模型可以分為兩大類:具有固定大小的表徵,如線性分類器;以及可以隨數據一起增長的表徵,如決策樹。固定大小的學習器只能利用一定的數據。原則上可變大小的學習器可以在給定足夠數據的情況下擬合任何函數,但實際上由於演算法或計算成本的限制,他們可能達不到這一效果。而且,由於數據維度帶來的災難,現有的數據量根本還不夠。

出於這些原因,如果你願意付出努力的話,那些能充分利用數據和計算資源的智能演算法,往往會得到相應的回報。設計學習器和學習分類器之間沒有明顯的界限,相反,任何給定的知識都可以編碼在學習器中或從數據中學到。所以在機器學習項目中,設計學習器往往會成為其中重要的部分,而從業者需要具備一定的專業知識。

9. 訓練不止一個模型

在機器學習發展的早期階段,每個研究者都有自己最喜歡的學習模型,並有一些先驗的理由去相信它的優越性。在嘗試很多不同方法上做了大量的努力,並選擇了結果最好的一個。

然而系統的經驗比較表明,應用對象不同,最好的學習模型也是有所不同,而且包含許多不同學習器的系統開始出現。現在努力嘗試許多學習器的許多變體,選擇結果最好的一個。但隨後研究人員注意到,如果不是選擇去找到最佳變體,而是融合許多變體,結果通常是要好得多。而且對研究人員來說沒有額外的工作量。

現在,創建這樣的模型融合是機器學習標準化流程。最簡單的融合技術,稱為套袋(bagging),我們通過重新採樣簡單地生成訓練集的隨機變化,分別學習一個分類器,並通過投票策略來融合結果。這種方法是有效的,因為它大大降低了模型的方差,而只是稍微增加了偏差。

在Boosting演算法中,訓練樣例有權重,而且這些都是不同的,所以每個新的分類器都集中於前面那些往往會出錯的樣例上。在stacking演算法中,單個分類器的輸出是「更高級」學習器的輸入,這個學習器需要計算出如何最好地組合它們。

也存在許多其他的技術,而總體趨勢是越來越大的模型融合。在Netflix prize比賽中,來自世界各地的團隊爭相構建最佳視頻推薦系統。

隨著比賽的進行,參數團隊發現把他們自己的學習器和其他小組的結合起來,並且再與其他組合併為更大的模型,能取得最好的成績。冠軍和亞軍都是融合了100多個學習器,而將兩隻隊伍的學習模型再一融合,能進一步提高成績。毫無疑問,將來我們會看到更大的學習模型。

10 . 簡單並不意味著準確

奧卡姆剃刀定律闡明,如無必要,無增實體。在機器學習中,這通常意味著,給定兩個具有相同訓練錯誤的分類器,兩者中較簡單的可能具有最低的測試錯誤。有關這一說法的證據在文獻中經常出現,但事實上有很多反例,「天底下沒有免費的午餐」定理也暗示它不可能是真的。

我們在前一節看到一個反例:模型融合。即使在訓練誤差已經達到零之後,通過添加分類器,增強融合模型的泛化誤差仍然在不斷提高。因此,與直覺相反,一個模型的參數數量與其過度擬合傾向之間沒有必然的聯繫。

其實,更複雜的觀點是將複雜性等同於假設空間的大小,因為較小的空間允許假設由較短的符號表示。像上面有理論保證的那部分界限就可以被認為是在暗示更短的假設能更好地概括。這可以通過給空間中的假設分配更短的符號來進一步論證,這些空間我們是有先驗偏好的。

但是,把這看作準確性和簡單性之間權衡的「證據」,就會是循環推理:我們做出假設,人們喜歡更簡單的設計,如果它們是準確的,那就是因為我們的偏好是準確的,而不是因為在我們選擇的表徵方式上假設是「簡單的」。

11. 可表徵不意味著可學習

本質上,所有用於可變規模學習器的表徵都與「每個函數都可以用這樣的表徵方式來表示或近似」的定理相關。基於此的理論保證,熱衷於表徵方式的研究者經常忽視所有其他的部分。

但是,僅僅因為一個函數可以表徵並不意味著它可以被學習。例如,標準的決策樹學習器不能比具有訓練樣例的決策樹學習更多。在連續的空間中,使用一組固定的原語來表示簡單的函數通常需要無限數量的內容。

另外,如果假設空間具有許多評價函數的局部最優值,那麼往往是這樣,即使學習器具有表徵能力,也可能找不到真正的函數。對於有限的數據,時間和內存,標準的學習模型只能學習所有可能函數的一小部分,而這些子集對於具有不同表徵能力的學習器是不同的。

因此,關鍵的問題不是「能否表現出來」,這個問題的答案往往是無關緊要的,而是「能否學習它?」,也值得去嘗試不同的學習器(並可能是把它們結合起來)。

12. 相關性並不意味著因果關係

研究人員經常指出一點,相關性並不意味著因果關係,因此這也許是不值得的。但是,儘管我們所討論的那種學習器只能學習相關性,但他們的結果往往被視為可以表示因果關係。這不是錯的嗎?如果是的話,那麼為什麼人們要這樣做呢?

而事實往往是,學習預測模型的目標是用它們作為策略的指南。如果發現啤酒和尿布經常在超市同時被購買,那麼也許把啤酒放在尿布部分旁邊就會增加其銷量。但是實際上很難說清楚相關實驗。

與實驗數據不同的是,機器學習通常應用於預測變數不受學習器控制的觀測數據。雖然一些學習演算法可能會潛在地從觀測數據中提取因果信息,但是它們的適用性會受到限制。

另一方面,相關性是潛在的因果關係的一個標誌,我們可以將它作為進一步研究的指導。

https://towardsdatascience.com/12-useful-things-to-know-about-machine-learning-487d3104e28

(來源:AI科技大本營)

—完—

想知道AI加教育領域有哪些最新研究成果?

想要AI領域更多的乾貨?

想了解更多專家的「智能觀」?

請在對話界面點擊「找找看」,去獲取你想要的內容吧。

有人問:你們為什麼要做智能觀?為什麼關注AI+教育?

我想,這不是一個選擇。

當AI開始顛覆各行各業時,我們首先想到了教育。未來是我們正在為之努力的地方,教育可以影響當下,改變未來。

我們用心觀察和記錄教育在這個時代的蛻變;努力把前沿的動態、最新的進展、先進的觀點帶到你面前,希望與你一起思考和探索。我們相信,長出AI翅膀的教育,會創造出無限可能。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

ClickHouse如何結合自家的GNDT演算法庫CatBoost來做機器學習
機器學習、深度學習、神經網路、深度神經網路之間有何區別?

TAG:機器學習 |