當前位置:
首頁 > 知識 > 入門必讀的機器學習名詞解釋,你都懂了嗎?

入門必讀的機器學習名詞解釋,你都懂了嗎?

AI研習社按:本文作者 filwaline,原載於作者知乎專欄,AI研習社已獲授權。

train? valid? or test?

機器學習最明顯的一個特點是需要大量的數據。特別對監督學習來說,就是需要大量的帶標籤數據(labeled data)。

很多入門的朋友很快就會遇見模型訓練和測試這兩個階段,進而也就了解到帶標籤數據是要被劃分成兩個部分的:訓練集 (training set) 與測試集 (test set)。這兩個概念也很直觀,大部分朋友非常快就能接受。

可是到後面,在我們需要為機器學習模型調參的時候,半路殺出來了個交叉驗證 (cross validation) 階段,這個對應的數據集也有個名字,叫做驗證集 (validation set)。

據我觀察,很多入門機器學習的朋友在這個時候就會感到一頭霧水,並且非常困惑:咋又冒出來了個驗證集啊?我們不是有個測試集了嗎?直接在那上面做實驗不就好了么?又劃分多一個數據集,那就使得能用於訓練和測試的數據都變少了,驗證集是那方神聖啊?...

這裡我給你們來個非常形象的類比!別眨眼!

訓練集 題解大全

驗證集 模擬考試

測試集 高考!

是不是非常形象易懂呢?(得意臉)

呃?搞不懂為什麼是這樣的對應關係?別急我還沒說完呢。

機器學習演算法是個笨學生,他沒法直接從人類教師那裡學會抽象的概念,於是唯一有效的策略就是天賦不足勤來補:玩命刷題! 想想看帶標籤的訓練數據,是不是很像你平時做的習題冊呢? 數據本身是題目,標籤是正確答案。所以機器學習演算法能夠通過大量做題來學會抽象概念(但是這個傻孩子實際上只學會了怎麼解答與特定抽象概念相關的問題)。

你說你學會了東西,但空口無憑啊,你得通過考試來證明自己!於是就有了測試集。測試集相當於考試的原因是,你只能看到題目(數據)而無法得知答案(標籤)。你只能在交卷之後等老師給你打分。

於是就有朋友發問了:「那我一遍一遍考試來證明自己不就好?我大學掛科補考還少么?」。首先心疼你一秒鐘。然後請你思考這個問題,如果那場考試是高考怎麼辦?你耗得起嗎?

所以我們需要模擬考試,也就是驗證集。我們可以獲得驗證集的標籤,但是我們假裝得不到,讓自己以考試的心態去面對,過後也就能通過自己對答案來了解自己到底學會了多少,而這種幾乎沒有成本的考試我們想進行多少次都行!這就是驗證集存在的意義!你的模型只能在測試集上面跑一次,一考定終身!

我們需要驗證集的真正原因是:防止機器學習演算法作弊!我們訓練一個機器學習模型不是為了讓它在那有限的帶標籤數據 high 個夠,而是要將模型應用於真實世界。絕大多數情況下,我們無法直接從真實世界獲得答案,我們能收集到的數據是沒有標籤的裸數據,我們需要高效準確的機器學習模型為我們提供答案。不能直接使用測試集不是因為我們負擔不起在測試集上跑模型的成本(事實上幾乎為 0),而是因為我們不能泄露測試集的信息。試想一下,假如你搞到了真正的高考題和答案,你一遍又一遍地去做這套題目,會發生什麼?也許你會成為高考狀元,可是你真的學會這些知識了嗎?你能夠再去做一套高考題並且拿高分嗎?你能夠去當家教向學弟學妹傳授你的知識和解答他們的問題嗎? 偷窺到了測試集的機器學習模型就是廢品,沒有人需要它,它也做不了任何有用的事情。

切記,你的機器學習模型只能在測試集上跑一次,一考定終身!

切記,你的機器學習模型只能在測試集上跑一次,一考定終身!

切記,你的機器學習模型只能在測試集上跑一次,一考定終身!

切記,你的機器學習模型只能在測試集上跑一次,一考定終身!

切記,你的機器學習模型只能在測試集上跑一次,一考定終身!

超級重要的事情說五次還嫌少,我得加粗了才行。哦還得加大字型大小,我怕你近視眼看不見!

都說到這個地步了,順便借這個類比說說過擬合 (overfit) 和欠擬合 (underfit) 的事吧。過擬合的模型是個真正的書獃子,玩命刷題解大全 (Demidovich),但是只記住了所有的習題和答案,去做模擬考試就直接傻掉了。欠擬合的模型就是個不聽課還懶惰的學渣,連習題冊上的題目都搞不懂,別說模擬考試了。高考?呵呵呵。

accuracy? precision? recall?

accuracy 就是百分制的考試分數,我是想不到要怎麼解釋了。(摳鼻)

precision 和 recall 倒是有兩個非常好的意象。

這裡先說一下 precision 和 recall 哪來的。想像你在做一套全都是判斷題的考試題,你的答案總會跟正確答案有些出入(學神,學霸和 overfit 的書獃子一邊去)。

真陽性、假陽性、假陰性和真陰性

對比上面的表格很容易看出,你做對的題會對應著 真 (True) 這個前綴,對了就對了,不管啦。而你做錯的題則帶了 假 (False) 的前綴,做錯的題分兩種:你回答真但答案是假,這是假陽性;你回答為假但是答案為真,則為假陰性。很明顯,陽性陰性是對應著你的回答。

那我們為啥需要這亂七八糟的東西?直接用 accuracy 來衡量不就好了?

假設你有一個大小為 1000 的帶布爾標籤數據集, 裡面的 「真」 樣本只有 100 個不到,剩下的都是 「假」 樣本。你說這沒什麼啊? 別急,想像你訓練了一個模型,不管輸入什麼數據,它都只給出 「假」 的預測。這顯然是個失敗模型,也就比停了的鐘好一點(哦不對,是五十步笑百步),但是它在你這個數據上可能能拿到 90 分以上哦? 很明顯,這個時候 accuracy 已經失去它的作用了。是時候讓亂七八糟的概念上場了。

precision:嚴謹認真的普通日本人

多做多錯 少做少錯 不做不錯 precision 和 recall 一般只在有傾斜數據集的時候出來玩。我們一般把數量較少的樣本叫陽性樣本,一般情況下我們也只關心陽性樣本的預測結果。最常見的傾斜數據例子是癌症檢查,得了癌症的不幸的人就是陽性樣本,相對於健康的大眾,他們是稀少的存在。

精確率等於真陽性與所有被預測為陽性的樣本之比。

為什麼說多做多錯少做少錯的理由很明顯了吧? 如果模型預測為陽性的樣本越少,那麼它犯錯的可能性也就越小,也就是說精確率越高了。

思考題:一個精確率超級高的模型有什麼問題?

recall:威武霸氣的川普移民禁令

寧可錯殺,不能放過

召回率等於真陽性與所有真正的陽性樣本之比

冤枉你就冤枉你咯,不服來咬我啊? —— 川普

川普爸爸近來又搞了個大新聞,多國移民禁止入境。理由當然是防止恐怖分子混入美利堅大地啦,你們這些國家的人素質太差動不動搞恐怖襲擊,我實在沒精力去一個個查,所以你們通通別來了,我樂得輕鬆。

recall 的公式里並沒有假陽項,這說明它不關心自己冤枉了多少人,只要假陰的數量越少越好,恐怖分子一定不能漏了。

思考題:召回率與精確率是如何互相掣肘的?

wiki 的配圖也很棒,對比看看吧:

learning rate?

原本計劃弄兩個動圖出來,可是 matplotlib 和 moviepy 死活導出不了 gif(而且知乎文章也不支持),想玩的自己複製代碼吧。Github Gist 很簡陋,不過這種東西也沒必要做複雜是不是 2333

點擊展開全文

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

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


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

Elasticsearch 5.4 beta 新功能:機器學習官方支持來了!
搞日租房的Airbnb,如何用機器學習對接上百萬的房東和租客?
機器學習進入「時尚圈」,利用社交媒體揭秘服飾變化規律
蘋果產品不再讓果粉興奮?iPhone電池用到機器學習
培訓 | Python機器學習與數據挖掘案例實戰

TAG:機器學習 |

您可能感興趣

機器學習:怎樣才能做到從入門到不放棄?
小心!入門機器學習,你可能遇到這些「陷阱」!
我是如何入門機器學習的呢
機器學習:從入門到絕不放棄!
當機器都會「學習」了,你還想不學習么?
可能你需要了解的機器學習?
機器學習怎麼從入門到不放棄!
乾貨 | 機器學習怎麼從入門到不放棄!
機器是如何做閱讀理解的?
機器翻譯已經很厲害了,還需要學外語嗎?
機器學習不能做什麼?
為什麼說每個人都應該了解機器學習?
數學不好,進入機器學習領域還有戲嗎?
關於機器學習,你所知道的,可能都是錯的
這可能是最簡單易懂的機器學習入門(小白必讀)
想了解「機器學習之美」?他們推薦了這些論文
你知道你的職業很快就會被機器人取代嗎?
靈魂拷問:是什麼讓機器學習達不到我們的期待呢?
還糾結選機器學習還是深度學習?看完你就有數了
機器人都能做主播了?它們怕是要崛起了!