有關機器學習的 12 個經驗教訓

2021-08-19 23:26:33 字數 1830 閱讀 6273

這篇文章講述了機器學習研究人員和從業人員總結的 12 個關鍵經驗教訓,包括如何避免陷阱,重點問題以及常見問題的答案。

機器學習可以通過一些例子,然後從中歸納出規律來解決重要問題。在手動程式設計(硬編碼)不使用的情況下,這種方法通常是非常有效的,而且非常經濟。隨著更多的資料可以使用,我們可以解決更多雄心勃勃的問題。因此,機器學習被廣泛的應用到計算機等領域。然而,開發乙個成功的機器學習應用程式需要大量難以從教科書上面找到的「黑色藝術」。

我最近讀了華盛頓大學 pedro domingos 寫的一篇非常好的** a few useful things to know about machine learning 。這篇文章總結了機器學習研究人員和從業人員學到的 12 個關鍵經驗教訓,包括如何避免陷阱,重點問題已經常見問題的答案。我想在本文中將這些經驗分享出來,因為當我們在解決乙個機器學習問題時,這 12 條經驗是非常有用的。

所有機器學習的演算法通常都是由 3 個元件組成的:

表示:分類器必須用計算機可以處理的一些變成語言來表示。同理,我們也需要為我們的機器學習模型選擇乙個合適的表示集合,這個集合稱為學習者的假設控制項。如果分類器不在這個假設空間內,則無法學習。乙個相關的問題是如何來表示輸入,也就是說我們用到了哪些特徵。

評估:我們還需要乙個評估函式,來區分乙個分類器是屬於好的分類器還是壞的分類器。演算法內部使用的評估函式可能不同於我們所說的分類器優化的外部評估函式,優化問題我們將在下面一節討論。

優化:最後,我們需要乙個方法在各種分類器中搜尋得分最高的分類器。優化技術的選擇對於演算法的學習效率是至關重要的,並且還有助於確定評估函式具有多餘乙個最佳值時產生的分類器。如果你是乙個新的學習者,你可以使用現成的優化器,這是非常常用的乙個策略。

機器學習的基本目標是推廣到訓練集之外的資料上面。這是因為,無論我們有多少的資料,我們都不太可能在測試的時候再看到完全一樣的資料。在訓練集上面取得好的成績非常容易,機器學習初學者最常犯的乙個錯誤是在訓練集上面取得了很好的成績,就覺得在別的資料集上面也能取得很好的成績。這種情況下,如果選擇的分類器在新的資料集上面進行測試,通常會去得非常不理想的成績。因此,如果你想外包你的機器學習專案,那麼你最好保留一點資料給自己,可以在最後測試對方提供給你的模型。

我們追求泛化還有另外乙個原因是,我們的資料量不夠。

這似乎是乙個令人沮喪的訊息,那麼我們還能希望學到什麼呢?幸運的是,我想要在顯示世界中學習的函式並不是從所有數學上可能的數學函式集合中同意得出來的!事實上,非常普通的假設 —— 比如平滑性,相似性的例子 —— 通常我們都能做的很好,這就是機器學習如此陳宮的很大一部分原因。就像演繹一樣,歸納就是知識槓桿:它將少量的輸入知識轉化為大量的輸出知識。歸納法是一種比演繹更加強大的槓桿,需要更少的輸入知識來產生有用的結果。而且,就像任何槓桿一樣,我們投入的越多,我們就越能得到產出。

這樣說起來,我們不應該對機器學習模型太過於驚訝。機器學習不是魔術,它無法從無到有。他所作的就是從乙個小資料上面學習到乙個模型,然後去撬動更多的資料。像所有的工程一樣,機器學習也有很多任務作要做:我們必須從頭開始構建所有的東西。其實,這個更像是農業,我們讓大自然來完成大部分的工作。農民只需要將種子和化肥進行播種就行了。學習者就是將知識和資料結合起來,來開發我們的機器學習專案。

12年程式設計師得到的12個經驗教訓

我已經在thoughtworks工作了12年。是不是有點不可思議?回首我的職業生涯,我想寫一寫我在這些年中經歷的困難,以及總結得到的12個非常重要.我已經在thoughtworks工作了12年。是不是有點不可思議?回首我的職業生涯,我想寫一寫我在這些年中經歷的困難,以及總結得到的12個非常重要的經驗...

12年程式設計師得到的12個經驗教訓

我已經在thoughtworks工作了12年。是不是有點不可思議?回首我的職業生涯,我想寫一寫我在這些年中經歷的困難,以及總結得到的12個非常重要.我已經在thoughtworks工作了12年。是不是有點不可思議?回首我的職業生涯,我想寫一寫我在這些年中經歷的困難,以及總結得到的12個非常重要的經驗...

林達華推薦有關機器學習的數學書籍

我想國內的大學生都會學過這門課程,但是,未必每一位老師都能貫徹它的精要。這門學科對於learning是必備的基礎,對它的透徹掌握是必不可少的。我在科大一年級的時候就學習了這門課,後來到了香港後,又重新把線性代數讀了一遍,所讀的是 introduction to linear algebra 3rd ...