1. 程式人生 > >超引數的選擇與交叉驗證

超引數的選擇與交叉驗證

1. 超引數有哪些

  與超引數對應的是引數。引數是可以在模型中通過BP(反向傳播)進行更新學習的引數,例如各種權值矩陣,偏移量等等。超引數是需要進行程式設計師自己選擇的引數,無法學習獲得。
  常見的超引數有模型(SVM,Softmax,Multi-layer Neural Network,…),迭代演算法(Adam,SGD,…),學習率(learning rate)(不同的迭代演算法還有各種不同的超引數,如beta1,beta2等等,但常見的做法是使用預設值,不進行調參),正則化方程的選擇(L0,L1,L2),正則化係數,dropout的概率等等。

2. 確定調節範圍

  超引數的種類多,調節範圍大,需要先進行簡單的測試確定調參範圍。

2.1. 模型

  模型的選擇很大程度上取決於具體的實際問題,但必須通過幾項基本測試。
  首先,模型必須可以正常執行,即程式碼編寫正確。可以通過第一個epoch的loss估計,即估算第一個epoch的loss,並與實際結果比較。注意此過程需要設定正則項係數為0,因為正則項引入的loss難以估算。
  其次,模型必須可以對於小資料集過擬合,即得到loss接近於0,accuracy接近於1的模型。否則應該嘗試其他或者更復雜的模型。
  最後,如果val_acc與acc相差很小,可能是因為模型複雜度不夠,需要嘗試更為複雜的模型。

2.2. 學習率

loss基本不變:學習率過低
loss震動明顯或者溢位:學習率過高
根據以上兩條原則,可以得到學習率的大致範圍。

2.3. 正則項係數

val_acc與acc相差較大:正則項係數過小
loss逐漸增大:正則項係數過大
根據以上兩條原則,可以得到正則項係數的大致範圍。

3. 交叉驗證

  對於訓練集再次進行切分,得到訓練集以及驗證集。通過訓練集訓練得到的模型,在驗證集驗證,從而確定超引數。(選取在驗證集結果最好的超引數)
  交叉驗證的具體例項詳見CS231n作業筆記1.7:基於特徵的影象分類之調參和CS231n作業筆記1.2: KNN的交叉驗證。

3.1. 先粗調,再細調

  先通過數量少,間距大的粗調確定細調的大致範圍。然後在小範圍內部進行間距小,數量大的細調。

3.2. 嘗試在對數空間內進行調節

  即在對數空間內部隨機生成測試引數,而不是在原空間生成,通常用於學習率以及正則項係數等的調節。出發點是該超引數的指數項對於模型的結果影響更顯著;而同階的資料之間即便原域相差較大,對於模型結果的影響反而不如不同階的資料差距大。

3.3. 隨機搜尋引數值,而不是格點搜尋

random layout

通過隨機搜尋,可以更好的發現趨勢。圖中所示的是通過隨機搜尋可以發現數據在某一維上的變化更加明顯,得到明顯的趨勢。

相關推薦

引數選擇交叉驗證

1. 超引數有哪些   與超引數對應的是引數。引數是可以在模型中通過BP(反向傳播)進行更新學習的引數,例如各種權值矩陣,偏移量等等。超引數是需要進行程式設計師自己選擇的引數,無法學習獲得。   常見的超引數有模型(SVM,Softmax,Multi-layer Neural Network,…),迭代

引數選擇、格點搜尋交叉驗證

超引數的選擇 1. 超引數有哪些   與超引數對應的是引數。引數是可以在模型中通過BP(反向傳播)進行更新學習的引數,例如各種權值矩陣,偏移量等等。超引數是需要進行程式設計師自己選擇的引數,無法學習獲得。   常見的超引數有模型(SVM,Softmax,Multi-lay

【模型評估選擇交叉驗證Cross-validation: evaluating estimator performance

Learning the parameters of a prediction function and testing it on the same data is a methodological mistake: a model that would ju

機器學習:驗證數據集交叉驗證

問題: 很好 oss 時有 相對 循環 val 超參數 mage # 問題:如果將所有的數據集都作為訓練數據集,則對於訓練出的模型是否發生了過擬合會不自知,因為過擬合情況下,模型在訓練數據集上的誤差非常的小,使人覺得模型效果很好,但實際上可能泛化能力不足; # 方案:將

機器學習系列之偏差、方差交叉驗證

一、偏差與方差 在機器學習中,我們用訓練資料集去訓練(學習)一個model(模型),通常的做法是定義一個Loss function(誤差函式),通過將這個Loss(或者叫error)的最小化過程,來提高模型的效能(performance)。然而我們學習一個模型的目的是為了解決實際的問題(或者說是

文字分類 - 樣本不平衡的解決思路交叉驗證CV的有效性

現實情況中,很多機器學習訓練集會遇到樣本不均衡的情況,應對的方案也有很多種。 筆者把看到的一些內容進行簡單羅列,此處還想分享的是交叉驗證對不平衡資料訓練極為重要。 文章目錄 1 樣本不平衡的解決思路 1.2 將不平衡樣本當作離群點

機器學習基礎:(Python)訓練集測試集分割交叉驗證

在上一篇關於Python中的線性迴歸的文章之後,我想再寫一篇關於訓練測試分割和交叉驗證的文章。在資料科學和資料分析領域中,這兩個概念經常被用作防止或最小化過度擬合的工具。我會解釋當使用統計模型時,通常將模型擬合在訓練集上,以便對未被訓練的資料進行預測。 在統計學和機器學習領域中,我們通常把資料分成兩個子集:

引數momentumweight-decay的作用

一、weight decay(權值衰減)使用的目的是防止過擬合。在損失函式中,weight decay是放在正則項(regularization)前面的一個係數,正則項一般指示模型的複雜度,所以weight decay的作用是調節模型複雜度對損失函式的影響,若weight d

模型選擇交叉驗證

在機器學習的模型訓練中,我們通常需要比較多個模型,從中選出一個最優的模型作為我們的最終模型。我們知道,超引數(hyper parameter)經常會作為模型的一個組成部分出現,比如說,在正則化後的logistic regression中,正則項和損失函式之間的引數t就是一

機器學習中資料訓練集,測試集劃分交叉驗證的聯絡區別(含程式)

因為一個模型僅僅重複了剛剛訓練過的樣本的標籤,這種情況下得分會很高,但是遇到沒有訓練過的樣本就無法預測了。這種情況叫做過擬合。為了避免過擬合,一個常見的做法就是在進行一個(有監督的)機器學習實驗時,保留

python迴歸模型的評估交叉驗證

1、評估模型 評估模型分為三類,MAE,MSE,R-square; 2、實現 2.1 Mae平均絕對誤差實現 # 建立資料集,其中矩陣X表示特徵值,向量y表示所屬類目標記值 import numpy as np X=np.random.rando

Python機器學習庫sklearn網格搜尋交叉驗證

網格搜尋一般是針對引數進行尋優,交叉驗證是為了驗證訓練模型擬合程度。sklearn中的相關API如下: (1)交叉驗證的首要工作:切分資料集train/validation/test A.)沒指定資料切分方式,直接選用cross_val_scor

機器學習之模型選擇(K折交叉驗證引數選擇

來源: https://www.cnblogs.com/jerrylead/archive/2011/03/27/1996799.html   對於解決同一個問題,如怎麼選擇模型去擬合線性迴歸中只有一個特徵時房價預測問題,如可能有不同的模型去解決,如: 1、d = 1,h(

泛化能力、訓練集、測試集、K折交叉驗證、假設空間、欠擬合過擬合、正則化(L1正則化、L2正則化)、引數

泛化能力(generalization): 機器學習模型。在先前未觀測到的輸入資料上表現良好的能力叫做泛化能力(generalization)。 訓練集(training set)與訓練錯誤(training error): 訓練機器學習模型使用的資料集稱為訓練集(tr

Spark2.0機器學習系列之1:基於Pipeline、交叉驗證、ParamMap的模型選擇引數調優

Spark中的CrossValidation Spark中採用是k折交叉驗證 (k-fold cross validation)。舉個例子,例如10折交叉驗證(10-fold cross validation),將資料集分成10份,輪流將其中9份

sklearn中的交叉驗證引數選擇

大家可能看到交叉驗證想到最多的就是sklearn裡面資料集的劃分方法train_test_split,實際上這只是資料交叉驗證的資料方法,對模型的進行評分。這裡我們將對仔細講解sklearn中交叉驗證如何判斷模型是否過擬合,並進行引數選擇。主要涉及一下方法:

libsvm交叉驗證網格搜尋(引數選擇

首先說交叉驗證。 交叉驗證(Cross validation)是一種評估統計分析、機器學習演算法對獨立於訓練資料的資料集的泛化能力(generalize), 能夠避免過擬合問題。 交叉驗證一般要儘量滿足: 1)訓練集的比例要足夠多,一般大於一半 2)訓練集和測試集要均勻抽樣

機器學習實踐(八)—sklearn之交叉驗證引數調優

一、交叉驗證與引數調優 交叉驗證(cross validation) 交叉驗證:將拿到的訓練資料,分為訓練集、驗證集和測試集。 訓練集:訓練集+驗證集 測試集:測試集

Sklearn流水線交叉驗證以及引數網格交叉評估基礎案例實戰-大資料ML樣本集案例實戰

版權宣告:本套技術專欄是作者(秦凱新)平時工作的總結和昇華,通過從真實商業環境抽取案例進行總結和分享,並給出商業應用的調優建議和叢集環境容量規劃等內容,請持續關注本套部落格。QQ郵箱地址:[email protected],如有任何技術交流,可隨時聯絡。 1 基本資料探索 import pand