油管最火十分鐘機器學習數學課 超引數優化

2021-09-27 03:20:12 字數 2861 閱讀 7203

你應該選擇什麼樣的超引數去訓練你的模型?機器學習模型只是乙個公式,由需要學習的引數組成的公式,但是同時也有一些引數是無法通過正常的訓練過程來直接學習的。我們叫做超引數。超引數是在訓練資料之前設立的模型值,這可以是隨機森林,也可以是神經網路隱藏層的個數,或是邏輯回歸的學習率 。我們能讓這些引數自己學習得到最優值,是我們要解決的目標。

支援向量機來分類推文sweets,給出包含正負的推文,來進行二元分類。建立乙個支援向量機去學習,接著可以分析新的推文,這叫情感分析。情感分析是在自然語言處理中十分流行的任務。乙個支援向量機可以幫助我們精確畫出乙個決策界限來劃分正負推文。因為是非線性的,削弱支援向量機(rsvm)用了核技巧,不再試圖擬合非線性模型。我們用輸入資料在新的高緯度的特徵空間中畫出,通過核函式或相似函式的非線性轉化,再在特徵空間中用線性模型,如下圖所示。

我們定義推文中的核函式或相似函式為徑向基函式,連個向量作為輸入,輸出基於下面方程的相似度。

兩個推文越是相似,這個方程輸出值會越高。**中有兩個高階引數:方差權衡引數和核函式的寬度引數,可以引導我們的現在畫 c_values=[0.01,0.03,0.1,0.3,1,3,10,30,100] gamma_values=[0.01,0.03,0.1,0.3,1,3,10,30,100]。兩個高階引數選擇需要小心,它們以某種未知的方式相互依存,所以我們不能一次最優化其中乙個引數。如果我們把所有可能高階引數組合都試一遍?這不可能,假設我們建立了乙個支援向量機,我們可以為兩個高階引數選擇一部分可能的值。然後建立乙個變數來儲存我們每個模型的準確度,接著我們為每個方差權衡引數c建立乙個巢狀for迴圈,嘗試每個核函式寬度引數gamma的值。在每次迭代中,通過高階引數的設定重新初始化支援向量機,我們會訓練評分它,再利用分數與最好的分數對比。如果更高,相應更新我們的值,這個過程會執行我們所有的高階引數值。**如下:

for c in c_values:

for  gamma in gamma_values:

# train the model for every hyperparameter value pair

svc=svm.svm(c=c,gamma=gamma)

svc.fit(x,y)

score=svc.score(xval,yval)

#rate accuracy of the model using each hyperparm value pair

if score > best_score:

best_score=score

best_params[『c』]=c

best_params[『gamma』]=gamma

這個技術叫做網格搜尋(grid search)。因為本質上我們製作了乙個搜尋空間的網格,我們為網格中的每個點引入盡可能多維的高階引數組,接著評估每個高階引數組的表現。這個策略的評估規模還是龐大,我們新增越多高階引數或者維度,越容易引發維數災難。我們有比窮舉搜尋更優的方法,我們嘗試每個預先列舉值的高階引數組合,簡單地對引數設定進行固定次數的隨機搜尋,比在窮舉搜尋中的高維空間更有效。 這是因為事實證明,一些超引數不會顯著影響損失。這不能保證我們可以得到如格點搜尋得到的最好高階引數組合。但它會消耗更少的時間。所以如手動搜尋、網格搜尋和隨即搜尋都是很好的方法,但應當有能結合學習的更加機智的方式。

基於梯度的優化,對於特定的學習演算法,可以計算相對於超引數的梯度,然後使用梯度下降優化超引數。 這些技術的第一次使用集中在神經網路,從那時起,這些方法已經擴充套件到其他模型,如支援向量機 或邏輯回歸 。

現在流行的的技術叫做貝葉斯優化,貝葉斯方法在優化過程中學習到模型資訊的優勢。我們關於高階引數將會如何表現,將選擇一些先驗觀點,接著強制搜尋引數空間並在持續測量過程中更新我們的先驗觀點,探索與開發之間的權衡,探索確保我們是否檢查空間的每乙個角落,開發是一旦我們發現有希望的區域,會在其中發現最優值。貝葉斯優化用原本測評的點來計算損失f的後驗期望值,接著它對能效用最大化f期望值新點進行損失值取樣。這個效用函式告訴我們在那個主要f區域最適合取樣。這兩步過程不斷重複直到收斂結合。對於先驗分布,我們假定f可以被描述為高斯過程,乙個高斯分布通常稱為正態分佈。分布是連線統計試驗結果和它發生概率的公式。高斯分布很多情況下都適用,高斯過程是通過函式生成高斯分布,而不是隨機變數。

所以當高斯分布是由平均值和方差定義,高斯過程則由它們的均值方程和協方差方程指定。我們發現最佳取樣點的方式是,選取可以最大化獲取函式的點。

這是關於f的後驗分布函式,它描述了所有高階引數值的效用,有最高效用的值就是用作我們計算損失的值,我們將會用流行的期望改進函式,這個函式的x是當前最佳的高階引數集。通過最大化上述函式,它會給予我們更多增進f最多的點,。所以給定x所觀測的f值,我們通過高斯過程更新f的後驗期望,接著我們發現可以最大化獲取函式的新的x值,得到預期的改進,最終為新的x值計算出f值。最初,這個演算法可以探索引數的空間,很快發現表現最佳的區域,再從這塊區域中取樣。

總而言之,我們可以通過好幾個策略優化我們的高階引數,但是貝葉斯優化看起來是最佳的選擇。貝葉斯是對高階引數的表現,選擇一種先驗觀點,並在這個持續過程中更新對高階引數的先驗觀點來更新我們原先信條的方法在引數空間搜尋。所以貝葉斯學派讓先驗觀點影響我們**,而頻率學派沒有做這一點。

油管最火十分鐘機器學習數學課 降維

降維就是 發現資料中非線性與非區域性的關係,而這些關係在原始的特徵空間中是不明顯的。如果我們能夠減少某些資料的維度,我們就可以將其視覺化,因為在二維和三維中的投影可以繪製出來。在乙個具有多維度的資料集上訓練乙個資料模型,通常很多複雜,而且容易發生過擬合。並非所有的特徵都和我們要解決的問題是相關的。如...

課間十分鐘

時間限制 1000 ms 記憶體限制 128 mb 兩人都是數學愛好者,便發明了乙個遊戲。在遊戲開始前,他們先約定乙個正整數n,同時令m 1。遊戲過程中,每個人都可以將m的值擴大2到9中的任意倍數。第乙個使m n的人就是最後的贏家。181818181818和zbt都十分聰明,並且遊戲過程中都使用最佳...

十分鐘的代價

2008年9月15日上午10 00,擁有158年歷史的美國第四大投資銀行 雷曼兄弟公司向法院申請破產保護,訊息轉瞬間通過電視 廣播和網路傳遍地球的各個角落。令人匪夷所思的是,在如此重大的情況下,德國國家發展銀行在十分鐘後,居然按照外匯掉期協議的交易,通過計算機自動付款系統,向雷曼兄弟公司即將凍結的銀...