Machine-Learning

什麼時候不使用交叉驗證?

  • December 23, 2017

當我閱讀該網站時,大多數答案都表明應該在機器學習算法中進行交叉驗證。然而,當我閱讀“理解機器學習”一書時,我看到有一個練習,有時最好不要使用交叉驗證。我真的很困惑。當整個數據的訓練算法優於交叉驗證?它發生在真實的數據集中嗎?

讓 $ H_1,…,H_k $ 是 k 個假設類。假設給你 $ m $ iid 培訓示例,您想學習該課程 $ H=\cup^k_{i=1}H_i $ . 考慮兩種替代方法:

  1. 學習 $ H $ 在 $ m $ 使用 ERM 規則的示例
  2. 將 m 個樣本分成一個大小為的訓練集 $ (1−\alpha)m $ 和一個大小的驗證集 $ \alpha m $ , 對於一些 $ \alpha\in(0,1) $ . 然後,應用使用驗證的模型選擇方法。也就是先訓練每個類 $ H_i $ 在 $ (1−\alpha)m $ 使用 ERM 規則訓練示例 $ H_i $ ,然後讓 $ \hat{h}_1,\ldots,\hat{h}_k $ 是由此產生的假設。其次,將 ERM 規則應用於有限類 { $ \hat{h}_1,\ldots,\hat{h}_k $ } 上 $ \alpha m $ 驗證示例。

描述第一種方法優於第二種方法的場景,反之亦然。

問題的圖像

帶回家的消息:

  • 練習應該告訴您,有時(取決於您的領域:經常甚至幾乎總是)最好不要進行數據驅動的模型優化/調整/選擇。
  • 在某些情況下,交叉驗證不是不同驗證選項中的最佳選擇,但這些考慮因素與您在此處的練習上下文無關。
  • 並且不驗證(驗證、測試)您的模型絕不是一個好的選擇。

不幸的是,您引用的文本在方法 1 和 2 之間改變了兩件事:

  • 方法 2 執行交叉驗證數據驅動的模型選擇/調整/優化
  • 方法 1 既不使用交叉驗證,也不使用數據驅動的模型選擇/調整/優化。
  • 在此處討論的上下文中,沒有數據驅動的模型選擇/調整/優化的方法 3 交叉驗證是完全可行的(恕我直言,恕我直言)
  • 方法 4,沒有交叉驗證,但數據驅動的模型選擇/調整/優化也是可能的,但構建起來更複雜。

恕我直言,交叉驗證和數據驅動優化是設置建模策略的兩個完全不同(並且很大程度上獨立)的決策。唯一的聯繫是您可以使用交叉驗證估計作為優化的目標函數。但是還有其他可以使用的目標函數,交叉驗證估計還有其他用途(重要的是,您可以使用它們來驗證您的模型,也就是驗證或測試)

不幸的是,機器學習術語目前在恕我直言是一團糟,這表明這裡存在錯誤的連接/原因/依賴關係。

  • 當您查看方法 3 時(交叉驗證不是為了優化,而是為了測量模型性能),您會發現“決策”交叉驗證與對整個數據集的訓練在這種情況下是錯誤的二分法:當使用交叉驗證時為了衡量分類器的性能,交叉驗證品質因數被用作對在整個數據集上訓練的模型的估計。即方法3包括方法1。
  • 現在,讓我們看看第二個決定:數據驅動模型優化與否。這是恕我直言,這裡的關鍵點。是的,在現實世界中,進行數據驅動模型優化會更好。數據驅動的模型優化是有代價的。你可以這樣想:數據集中的信息不僅用於估計模型的參數/係數,但優化所做的是估計更多參數,即所謂的超參數。如果您將模型擬合和優化/調整過程描述為對模型參數的搜索,那麼這種超參數優化意味著要考慮更大的搜索空間。換句話說,在方法 1(和 3)中,您通過指定這些超參數來限制搜索空間。您的真實世界數據集可能足夠大(包含足夠的信息)以允許在該受限搜索空間內進行擬合,但不足以在方法 2(和 4)的較大搜索空間中充分修復所有參數。

事實上,在我的領域中,我經常不得不處理太小而無法考慮數據驅動優化的數據集。那麼我該怎麼做:我使用我關於數據和數據生成過程的領域知識來決定哪個模型與數據和應用程序的物理性質匹配得很好。在這些範圍內,我仍然必須限制我的模型複雜性。

引用自:https://stats.stackexchange.com/questions/320154

comments powered by Disqus