0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

機(jī)器學(xué)習(xí)實(shí)用指南:訓(xùn)練和損失函數(shù)

lviY_AI_shequ ? 來(lái)源:未知 ? 作者:李倩 ? 2018-06-29 15:02 ? 次閱讀

彈性網(wǎng)絡(luò)(ElasticNet)

彈性網(wǎng)絡(luò)介于 Ridge 回歸和 Lasso 回歸之間。它的正則項(xiàng)是 Ridge 回歸和 Lasso 回歸正則項(xiàng)的簡(jiǎn)單混合,同時(shí)你可以控制它們的混合率 $r$,當(dāng) $r=0$ 時(shí),彈性網(wǎng)絡(luò)就是 Ridge 回歸,當(dāng) $r=1$ 時(shí),其就是 Lasso 回歸。具體表示如公式 4-12。

公式 4-12:彈性網(wǎng)絡(luò)損失函數(shù)

$$ J( heta)=MSE( heta)+ralphasumlimits_{i=1}^nleft| heta_i ight|+frac{1-r}{2}alphasumlimits_{i=1}^n heta_i^2 $$

那么我們?cè)撊绾芜x擇線性回歸,嶺回歸,Lasso 回歸,彈性網(wǎng)絡(luò)呢?一般來(lái)說(shuō)有一點(diǎn)正則項(xiàng)的表現(xiàn)更好,因此通常你應(yīng)該避免使用簡(jiǎn)單的線性回歸。嶺回歸是一個(gè)很好的首選項(xiàng),但是如果你的特征僅有少數(shù)是真正有用的,你應(yīng)該選擇 Lasso 和彈性網(wǎng)絡(luò)。就像我們討論的那樣,它兩能夠?qū)o(wú)用特征的權(quán)重降為零。一般來(lái)說(shuō),彈性網(wǎng)絡(luò)的表現(xiàn)要比 Lasso 好,因?yàn)楫?dāng)特征數(shù)量比樣本的數(shù)量大的時(shí)候,或者特征之間有很強(qiáng)的相關(guān)性時(shí),Lasso 可能會(huì)表現(xiàn)的不規(guī)律。下面是一個(gè)使用 Scikit-Learn ElasticNet(l1_ratio指的就是混合率 $r$)的簡(jiǎn)單樣本:

>>> from sklearn.linear_model import ElasticNet >>> elastic_net = ElasticNet(alpha=0.1, l1_ratio=0.5) >>> elastic_net.fit(X, y) >>> elastic_net.predict([[1.5]]) array([ 1.54333232])

早期停止法(Early Stopping)

對(duì)于迭代學(xué)習(xí)算法,有一種非常特殊的正則化方法,就像梯度下降在驗(yàn)證錯(cuò)誤達(dá)到最小值時(shí)立即停止訓(xùn)練那樣。我們稱為早期停止法。圖 4-20 表示使用批量梯度下降來(lái)訓(xùn)練一個(gè)非常復(fù)雜的模型(一個(gè)高階多項(xiàng)式回歸模型)。隨著訓(xùn)練的進(jìn)行,算法一直學(xué)習(xí),它在訓(xùn)練集上的預(yù)測(cè)誤差(RMSE)自然而然的下降。然而一段時(shí)間后,驗(yàn)證誤差停止下降,并開(kāi)始上升。這意味著模型在訓(xùn)練集上開(kāi)始出現(xiàn)過(guò)擬合。一旦驗(yàn)證錯(cuò)誤達(dá)到最小值,便提早停止訓(xùn)練。這種簡(jiǎn)單有效的正則化方法被 Geoffrey Hinton 稱為“完美的免費(fèi)午餐”

圖 4-20:早期停止法

提示

隨機(jī)梯度和小批量梯度下降不是平滑曲線,你可能很難知道它是否達(dá)到最小值。 一種解決方案是,只有在驗(yàn)證誤差高于最小值一段時(shí)間后(你確信該模型不會(huì)變得更好了),才停止,之后將模型參數(shù)回滾到驗(yàn)證誤差最小值。

下面是一個(gè)早期停止法的基礎(chǔ)應(yīng)用:

from sklearn.base import clone sgd_reg = SGDRegressor(n_iter=1, warm_start=True, penalty=None,learning_rate="constant", eta0=0.0005) minimum_val_error = float("inf") best_epoch = None best_model = None for epoch in range(1000): sgd_reg.fit(X_train_poly_scaled, y_train) y_val_predict = sgd_reg.predict(X_val_poly_scaled) val_error = mean_squared_error(y_val_predict, y_val) if val_error < minimum_val_error: ? ? ? ?minimum_val_error = val_error ? ? ? ?best_epoch = epoch ? ? ? ?best_model = clone(sgd_reg)

注意:當(dāng)warm_start=True時(shí),調(diào)用fit()方法后,訓(xùn)練會(huì)從停下來(lái)的地方繼續(xù),而不是從頭重新開(kāi)始。

邏輯回歸

正如我們?cè)诘?章中討論的那樣,一些回歸算法也可以用于分類(反之亦然)。 Logistic 回歸(也稱為 Logit 回歸)通常用于估計(jì)一個(gè)實(shí)例屬于某個(gè)特定類別的概率(例如,這電子郵件是垃圾郵件的概率是多少?)。 如果估計(jì)的概率大于 50%,那么模型預(yù)測(cè)這個(gè)實(shí)例屬于當(dāng)前類(稱為正類,標(biāo)記為“1”),反之預(yù)測(cè)它不屬于當(dāng)前類(即它屬于負(fù)類 ,標(biāo)記為“0”)。 這樣便成為了一個(gè)二元分類器。

概率估計(jì)

那么它是怎樣工作的? 就像線性回歸模型一樣,Logistic 回歸模型計(jì)算輸入特征的加權(quán)和(加上偏差項(xiàng)),但它不像線性回歸模型那樣直接輸出結(jié)果,而是把結(jié)果輸入logistic()函數(shù)進(jìn)行二次加工后進(jìn)行輸出(詳見(jiàn)公式 4-13)。

公式 4-13:邏輯回歸模型的概率估計(jì)(向量形式)

$$ hat{p}=h_ heta(mathbf{x})=sigma( heta^T cdot mathbf{x}) $$

Logistic 函數(shù)(也稱為 logit),用 $sigma()$ 表示,其是一個(gè) sigmoid 函數(shù)(圖像呈 S 型),它的輸出是一個(gè)介于 0 和 1 之間的數(shù)字。其定義如公式 4-14 和圖 4-21 所示。

公式 4-14:邏輯函數(shù)

$$ sigma(t)=frac{1}{1+exp(-t)} $$

圖4-21:邏輯函數(shù)

一旦 Logistic 回歸模型估計(jì)得到了 $mathbf{x}$ 屬于正類的概率 $hat{p}=h_ heta(mathbf{x})$,那它很容易得到預(yù)測(cè)結(jié)果 $hat{y}$(見(jiàn)公式 4-15)。

公式 4-15:邏輯回歸預(yù)測(cè)模型

$$ hat{y}= egin{cases} 0, &hat{p}<0.5 1,&hat{p}geq0.5 end{cases} $$

注意當(dāng) $t<0$ 時(shí) $sigma(t)<0.5$,當(dāng) $tgeq0$時(shí)$sigma(t)geq0.5$,因此當(dāng)$ heta^T ?cdot mathbf{x}$ 是正數(shù)的話,邏輯回歸模型輸出 1,如果它是負(fù)數(shù)的話,則輸出 0。

訓(xùn)練和損失函數(shù)

好,現(xiàn)在你知道了 Logistic 回歸模型如何估計(jì)概率并進(jìn)行預(yù)測(cè)。 但是它是如何訓(xùn)練的? 訓(xùn)練的目的是設(shè)置參數(shù)向量 $ heta$,使得正例($y=1$)概率增大,負(fù)例($y=0$)的概率減小,其通過(guò)在單個(gè)訓(xùn)練實(shí)例 $mathbf{x}$ 的損失函數(shù)來(lái)實(shí)現(xiàn)(公式 4-16)。

公式 4-16:?jiǎn)蝹€(gè)樣本的損失函數(shù)

$$ c( heta)= egin{cases} -log(hat{p}), &y=1 -log(1-hat{p}),&y=0 end{cases} $$

這個(gè)損失函數(shù)是合理的,因?yàn)楫?dāng) $t$ 接近 0 時(shí),$-log(t)$ 變得非常大,所以如果模型估計(jì)一個(gè)正例概率接近于 0,那么損失函數(shù)將會(huì)很大,同時(shí)如果模型估計(jì)一個(gè)負(fù)例的概率接近 1,那么損失函數(shù)同樣會(huì)很大。 另一方面,當(dāng) $t$ 接近于 1 時(shí),$-log(t)$ 接近 0,所以如果模型估計(jì)一個(gè)正例概率接近于 0,那么損失函數(shù)接近于 0,同時(shí)如果模型估計(jì)一個(gè)負(fù)例的概率接近 0,那么損失函數(shù)同樣會(huì)接近于 0, 這正是我們想的。

整個(gè)訓(xùn)練集的損失函數(shù)只是所有訓(xùn)練實(shí)例的平均值??梢杂靡粋€(gè)表達(dá)式(你可以很容易證明)來(lái)統(tǒng)一表示,稱為對(duì)數(shù)損失,如公式 4-17 所示。

公式 4-17:邏輯回歸的損失函數(shù)(對(duì)數(shù)損失)

$$ J( heta)=-frac{1}{m}sumlimits_{i=1}^mleft[y^{(i)}logleft(hat{p}^{(i)} ight)+left(1-y^{(i)} ight)logleft(1-hat{p}^{(i)} ight) ight] $$

但是這個(gè)損失函數(shù)對(duì)于求解最小化損失函數(shù)的 $ heta$ 是沒(méi)有公式解的(沒(méi)有等價(jià)的正態(tài)方程)。 但好消息是,這個(gè)損失函數(shù)是凸的,所以梯度下降(或任何其他優(yōu)化算法)一定能夠找到全局最小值(如果學(xué)習(xí)速率不是太大,并且你等待足夠長(zhǎng)的時(shí)間)。公式 4-18 給出了損失函數(shù)關(guān)于第 $j$ 個(gè)模型參數(shù) $ heta_j$ 的偏導(dǎo)數(shù)。

公式 4-18:邏輯回歸損失函數(shù)的偏導(dǎo)數(shù)

$$ frac{partial}{partial heta_j}J( heta_j)=frac{1}{m} sumlimits_{i=1}^m{left(sigmaleft( heta^T cdot mathbf{x}^{(i)} ight)-y^{(i)} ight)}{x_j}^{(i)} $$

這個(gè)公式看起來(lái)非常像公式 4-5:首先計(jì)算每個(gè)樣本的預(yù)測(cè)誤差,然后誤差項(xiàng)乘以第 $j$ 項(xiàng)特征值,最后求出所有訓(xùn)練樣本的平均值。 一旦你有了包含所有的偏導(dǎo)數(shù)的梯度向量,你便可以在梯度向量上使用批量梯度下降算法。 也就是說(shuō):你已經(jīng)知道如何訓(xùn)練 Logistic 回歸模型。 對(duì)于隨機(jī)梯度下降,你當(dāng)然只需要每一次使用一個(gè)實(shí)例,對(duì)于小批量梯度下降,你將每一次使用一個(gè)小型實(shí)例集。

決策邊界

我們使用鳶尾花數(shù)據(jù)集來(lái)分析 Logistic 回歸。 這是一個(gè)著名的數(shù)據(jù)集,其中包含 150 朵三種不同的鳶尾花的萼片和花瓣的長(zhǎng)度和寬度。這三種鳶尾花為:Setosa,Versicolor,Virginica(如圖 4-22)。

圖4-22:三種不同的鳶尾花

讓我們嘗試建立一個(gè)分類器,僅僅使用花瓣的寬度特征來(lái)識(shí)別 Virginica,首先讓我們加載數(shù)據(jù):

>>> from sklearn import datasets >>> iris = datasets.load_iris() >>> list(iris.keys()) ['data', 'target_names', 'feature_names', 'target', 'DESCR'] >>> X = iris["data"][:, 3:] # petal width >>> y = (iris["target"] == 2).astype(np.int)

接下來(lái),我們訓(xùn)練一個(gè)邏輯回歸模型:

from sklearn.linear_model import LogisticRegression log_reg = LogisticRegression() log_reg.fit(X, y)

我們來(lái)看看模型估計(jì)的花瓣寬度從 0 到 3 厘米的概率估計(jì)(如圖 4-23):

X_new = np.linspace(0, 3, 1000).reshape(-1, 1) y_proba = log_reg.predict_proba(X_new) plt.plot(X_new, y_proba[:, 1], "g-", label="Iris-Virginica") plt.plot(X_new, y_proba[:, 0], "b--", label="Not Iris-Virginica"

圖 4-23:概率估計(jì)和決策邊界

Virginica 花的花瓣寬度(用三角形表示)在 1.4 厘米到 2.5 厘米之間,而其他種類的花(由正方形表示)通常具有較小的花瓣寬度,范圍從 0.1 厘米到 1.8 厘米。注意,它們之間會(huì)有一些重疊。在大約 2 厘米以上時(shí),分類器非??隙ㄟ@朵花是Virginica花(分類器此時(shí)輸出一個(gè)非常高的概率值),而在1厘米以下時(shí),它非??隙ㄟ@朵花不是 Virginica 花(不是 Virginica 花有非常高的概率)。在這兩個(gè)極端之間,分類器是不確定的。但是,如果你使用它進(jìn)行預(yù)測(cè)(使用predict()方法而不是predict_proba()方法),它將返回一個(gè)最可能的結(jié)果。因此,在 1.6 厘米左右存在一個(gè)決策邊界,這時(shí)兩類情況出現(xiàn)的概率都等于 50%:如果花瓣寬度大于 1.6 厘米,則分類器將預(yù)測(cè)該花是 Virginica,否則預(yù)測(cè)它不是(即使它有可能錯(cuò)了):

>>> log_reg.predict([[1.7], [1.5]]) array([1, 0])

圖 4-24 表示相同的數(shù)據(jù)集,但是這次使用了兩個(gè)特征進(jìn)行判斷:花瓣的寬度和長(zhǎng)度。 一旦訓(xùn)練完畢,Logistic 回歸分類器就可以根據(jù)這兩個(gè)特征來(lái)估計(jì)一朵花是 Virginica 的可能性。 虛線表示這時(shí)兩類情況出現(xiàn)的概率都等于 50%:這是模型的決策邊界。 請(qǐng)注意,它是一個(gè)線性邊界。每條平行線都代表一個(gè)分類標(biāo)準(zhǔn)下的兩兩個(gè)不同類的概率,從 15%(左下角)到 90%(右上角)。越過(guò)右上角分界線的點(diǎn)都有超過(guò) 90% 的概率是 Virginica 花。

圖 4-24:線性決策邊界

就像其他線性模型,邏輯回歸模型也可以 $ell_1$ 或者 $ell_2$ 懲罰使用進(jìn)行正則化。Scikit-Learn 默認(rèn)添加了 $ell_2$ 懲罰。

注意

在 Scikit-Learn 的LogisticRegression模型中控制正則化強(qiáng)度的超參數(shù)不是 $alpha$(與其他線性模型一樣),而是它的逆:$C$。 $C$ 的值越大,模型正則化強(qiáng)度越低。

Softmax 回歸

Logistic 回歸模型可以直接推廣到支持多類別分類,不必組合和訓(xùn)練多個(gè)二分類器(如第 3 章所述), 其稱為 Softmax 回歸或多類別 Logistic 回歸。

這個(gè)想法很簡(jiǎn)單:當(dāng)給定一個(gè)實(shí)例 $mathbf{x}$ 時(shí),Softmax 回歸模型首先計(jì)算 $k$ 類的分?jǐn)?shù) $s_k(mathbf{x})$,然后將分?jǐn)?shù)應(yīng)用在Softmax函數(shù)(也稱為歸一化指數(shù))上,估計(jì)出每類的概率。 計(jì)算 $s_k(mathbf{x})$ 的公式看起來(lái)很熟悉,因?yàn)樗拖窬€性回歸預(yù)測(cè)的公式一樣(見(jiàn)公式 4-19)。

公式 4-19:k類的 Softmax 得分

$$ s_k(mathbf{x})= heta^T cdot mathbf{x} $$

注意,每個(gè)類都有自己獨(dú)一無(wú)二的參數(shù)向量 $ heta_k$。 所有這些向量通常作為行放在參數(shù)矩陣 $Theta$ 中。

一旦你計(jì)算了樣本 $mathbf{x}$ 的每一類的得分,你便可以通過(guò)Softmax函數(shù)(公式 4-20)估計(jì)出樣本屬于第 $k$ 類的概率 $hat{p}_k$:通過(guò)計(jì)算 $e$ 的 $s_k(mathbf{x})$ 次方,然后對(duì)它們進(jìn)行歸一化(除以所有分子的總和)。

公式 4-20:Softmax 函數(shù)

$$ hat{p_k}=sigma{(mathbf{s}(mathbf{x}))}k= frac{expleft(s_k(mathbf{x}) ight)} {sum_{j=1}^{K}expleft(s_j(mathbf{x}) ight)} $$

$K$ 表示有多少類

$mathbf{s}(mathbf{x})$ 表示包含樣本 $mathbf{x}$ 每一類得分的向量

$sigma{(mathbf{s}(mathbf{x}))_k}$ 表示給定每一類分?jǐn)?shù)之后,實(shí)例 $mathbf{x}$ 屬于第 $k$ 類的概率

和 Logistic 回歸分類器一樣,Softmax 回歸分類器將估計(jì)概率最高(它只是得分最高的類)的那類作為預(yù)測(cè)結(jié)果,如公式 4-21 所示。

公式 4-21:Softmax 回歸模型分類器預(yù)測(cè)結(jié)果

$$ hat{y}=argmax sigma{(mathbf{s}(mathbf{x}))_k}=argmax s_k(mathbf{x})=argmax left( heta_k^T cdot mathbf{x} ight) $$

argmax運(yùn)算返回一個(gè)函數(shù)取到最大值的變量值。 在這個(gè)等式,它返回使 $sigma{(mathbf{s}(mathbf{x}))_k}$ 最大時(shí)的 $k$ 的值

注意

Softmax 回歸分類器一次只能預(yù)測(cè)一個(gè)類(即它是多類的,但不是多輸出的),因此它只能用于判斷互斥的類別,如不同類型的植物。 你不能用它來(lái)識(shí)別一張照片中的多個(gè)人。

現(xiàn)在我們知道這個(gè)模型如何估計(jì)概率并進(jìn)行預(yù)測(cè),接下來(lái)將介紹如何訓(xùn)練。我們的目標(biāo)是建立一個(gè)模型在目標(biāo)類別上有著較高的概率(因此其他類別的概率較低),最小化公式 4-22 可以達(dá)到這個(gè)目標(biāo),其表示了當(dāng)前模型的損失函數(shù),稱為交叉熵,當(dāng)模型對(duì)目標(biāo)類得出了一個(gè)較低的概率,其會(huì)懲罰這個(gè)模型。 交叉熵通常用于衡量待測(cè)類別與目標(biāo)類別的匹配程度(我們將在后面的章節(jié)中多次使用它)

公式 4-22:交叉熵

$$ J(Theta)=-frac{1}{m}sumlimits_{i=1}^msumlimits_{k=1}^Ky_k^{(i)}logleft(hat{p}_k^{(i)} ight) $$

如果對(duì)于第 $i$ 個(gè)實(shí)例的目標(biāo)類是 $k$,那么 $y_k^{(i)}=1$,反之 $y_k^{(i)}=0$。

可以看出,當(dāng)只有兩個(gè)類($K=2$)時(shí),此損失函數(shù)等同于 Logistic 回歸的損失函數(shù)(對(duì)數(shù)損失;請(qǐng)參閱公式 4-17)。

交叉熵

交叉熵源于信息論。假設(shè)你想要高效地傳輸每天的天氣信息。如果有八個(gè)選項(xiàng)(晴天,雨天等),則可以使用3位對(duì)每個(gè)選項(xiàng)進(jìn)行編碼,因?yàn)?$2^3=8$。但是,如果你認(rèn)為幾乎每天都是晴天,更高效的編碼“晴天”的方式是:只用一位(0)。剩下的七項(xiàng)使用四位(從 1 開(kāi)始)。交叉熵度量每個(gè)選項(xiàng)實(shí)際發(fā)送的平均比特?cái)?shù)。 如果你對(duì)天氣的假設(shè)是完美的,交叉熵就等于天氣本身的熵(即其內(nèi)部的不確定性)。 但是,如果你的假設(shè)是錯(cuò)誤的(例如,如果經(jīng)常下雨)交叉熵將會(huì)更大,稱為 Kullback-Leibler 散度(KL 散度)。

兩個(gè)概率分布 $p$ 和 $q$ 之間的交叉熵定義為:$H(p,q)=-sum_xp(x)log q(x)$(分布至少是離散的)

這個(gè)損失函數(shù)關(guān)于 $ heta_k$ 的梯度向量為公式 4-23:

公式 4-23:k類交叉熵的梯度向量

$$ abla_{ heta_k}J(Theta)=frac{1}{m}sumlimits_{i=1}^mleft(hat{p}_k^{(i)}-y_k^{(i)} ight)mathbf{x}^{(i)} $$

現(xiàn)在你可以計(jì)算每一類的梯度向量,然后使用梯度下降(或者其他的優(yōu)化算法)找到使得損失函數(shù)達(dá)到最小值的參數(shù)矩陣 $Theta$。

讓我們使用 Softmax 回歸對(duì)三種鳶尾花進(jìn)行分類。當(dāng)你使用LogisticRregression對(duì)模型進(jìn)行訓(xùn)練時(shí),Scikit Learn 默認(rèn)使用的是一對(duì)多模型,但是你可以設(shè)置multi_class參數(shù)為“multinomial”來(lái)把它改變?yōu)?Softmax 回歸。你還必須指定一個(gè)支持 Softmax 回歸的求解器,例如“l(fā)bfgs”求解器(有關(guān)更多詳細(xì)信息,請(qǐng)參閱 Scikit-Learn 的文檔)。其默認(rèn)使用 $ell_12$ 正則化,你可以使用超參數(shù) $C$ 控制它。

X = iris["data"][:, (2, 3)] # petal length, petal width y = iris["target"] softmax_reg = LogisticRegression(multi_class="multinomial",solver="lbfgs", C=10) softmax_reg.fit(X, y)

所以下次你發(fā)現(xiàn)一個(gè)花瓣長(zhǎng)為 5 厘米,寬為 2 厘米的鳶尾花時(shí),你可以問(wèn)你的模型你它是哪一類鳶尾花,它會(huì)回答 94.2% 是 Virginica 花(第二類),或者 5.8% 是其他鳶尾花。

>>> softmax_reg.predict([[5, 2]]) array([2]) >>> softmax_reg.predict_proba([[5, 2]]) array([[ 6.33134078e-07, 5.75276067e-02, 9.42471760e-01]])

圖 4-25:Softmax 回歸的決策邊界

圖 4-25 用不同背景色表示了結(jié)果的決策邊界。注意,任何兩個(gè)類之間的決策邊界是線性的。 該圖的曲線表示 Versicolor 類的概率(例如,用 0.450 標(biāo)記的曲線表示 45% 的概率邊界)。注意模型也可以預(yù)測(cè)一個(gè)概率低于 50% 的類。 例如,在所有決策邊界相遇的地方,所有類的估計(jì)概率相等,分別為 33%。

練習(xí)

如果你有一個(gè)數(shù)百萬(wàn)特征的訓(xùn)練集,你應(yīng)該選擇哪種線性回歸訓(xùn)練算法?

假設(shè)你訓(xùn)練集中特征的數(shù)值尺度(scale)有著非常大的差異,哪種算法會(huì)受到影響?有多大的影響?對(duì)于這些影響你可以做什么?

訓(xùn)練 Logistic 回歸模型時(shí),梯度下降是否會(huì)陷入局部最低點(diǎn)?

在有足夠的訓(xùn)練時(shí)間下,是否所有的梯度下降都會(huì)得到相同的模型參數(shù)?

假設(shè)你使用批量梯度下降法,畫出每一代的驗(yàn)證誤差。當(dāng)你發(fā)現(xiàn)驗(yàn)證誤差一直增大,接下來(lái)會(huì)發(fā)生什么?你怎么解決這個(gè)問(wèn)題?

當(dāng)驗(yàn)證誤差升高時(shí),立即停止小批量梯度下降是否是一個(gè)好主意?

哪個(gè)梯度下降算法(在我們討論的那些算法中)可以最快到達(dá)解的附近?哪個(gè)的確實(shí)會(huì)收斂?怎么使其他算法也收斂?

假設(shè)你使用多項(xiàng)式回歸,畫出學(xué)習(xí)曲線,在圖上發(fā)現(xiàn)學(xué)習(xí)誤差和驗(yàn)證誤差之間有著很大的間隙。這表示發(fā)生了什么?有哪三種方法可以解決這個(gè)問(wèn)題?

假設(shè)你使用嶺回歸,并發(fā)現(xiàn)訓(xùn)練誤差和驗(yàn)證誤差都很高,并且?guī)缀跸嗟?。你的模型表現(xiàn)是高偏差還是高方差?這時(shí)你應(yīng)該增大正則化參數(shù) $alpha$,還是降低它?

你為什么要這樣做:

使用嶺回歸代替線性回歸?

Lasso 回歸代替嶺回歸?

彈性網(wǎng)絡(luò)代替 Lasso 回歸?

假設(shè)你想判斷一副圖片是室內(nèi)還是室外,白天還是晚上。你應(yīng)該選擇二個(gè)邏輯回歸分類器,還是一個(gè) Softmax 分類器?

在 Softmax 回歸上應(yīng)用批量梯度下降的早期停止法(不使用 Scikit-Learn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4333

    瀏覽量

    62721
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8423

    瀏覽量

    132745

原文標(biāo)題:【翻譯】Sklearn 與 TensorFlow 機(jī)器學(xué)習(xí)實(shí)用指南 —— 第4章( 下) 訓(xùn)練模型

文章出處:【微信號(hào):AI_shequ,微信公眾號(hào):人工智能愛(ài)好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    全面總結(jié)機(jī)器學(xué)習(xí)中的優(yōu)化算法

    幾乎所有的機(jī)器學(xué)習(xí)算法最后都?xì)w結(jié)為求一個(gè)目標(biāo)函數(shù)的極值,即最優(yōu)化問(wèn)題,例如對(duì)于有監(jiān)督學(xué)習(xí),我們要找到一個(gè)最佳的映射函數(shù)f (x),使得對(duì)
    發(fā)表于 11-02 10:18 ?423次閱讀
    全面總結(jié)<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>中的優(yōu)化算法

    機(jī)器學(xué)習(xí)訓(xùn)練秘籍——吳恩達(dá)

    書的內(nèi)容對(duì)你而言則不難理解。本書假設(shè)你熟悉? 監(jiān) 督學(xué) 習(xí)( (supervised learning) )??概念,即使用標(biāo)注(labeled)的訓(xùn)練樣本(x,y) 來(lái)學(xué)習(xí)一個(gè)從 x 映射到 y 的函數(shù)
    發(fā)表于 11-30 16:45

    Pytorch模型訓(xùn)練實(shí)用PDF教程【中文】

    本教程以實(shí)際應(yīng)用、工程開(kāi)發(fā)為目的,著重介紹模型訓(xùn)練過(guò)程中遇到的實(shí)際問(wèn)題和方法。在機(jī)器學(xué)習(xí)模型開(kāi)發(fā)中,主要涉及三大部分,分別是數(shù)據(jù)、模型和損失函數(shù)
    發(fā)表于 12-21 09:18

    TensorFlow損失函數(shù)(定義和使用)詳解

    的情況下,損失函數(shù)定義為交叉熵。輸出 Y 的維數(shù)等于訓(xùn)練數(shù)據(jù)集中類別的數(shù)量,其中 P 為類別數(shù)量:如果想把 L1 正則化加到損失上,那么代碼如下:對(duì)于 L2 正則化,代碼如下:由此,你
    發(fā)表于 07-28 14:38

    機(jī)器學(xué)習(xí)中,損失函數(shù)一般要怎么選擇?

    機(jī)器學(xué)習(xí)中,損失函數(shù)一般要怎么選擇?
    發(fā)表于 08-25 09:11

    神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)常用的一些損失函數(shù)介紹

    神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)的優(yōu)化首先是對(duì)模型的當(dāng)前狀態(tài)進(jìn)行誤差估計(jì),然后為了減少下一次評(píng)估的誤差,需要使用一個(gè)能夠表示錯(cuò)誤函數(shù)對(duì)權(quán)重進(jìn)行更新,這個(gè)函數(shù)被稱為損失
    發(fā)表于 10-20 17:14

    神經(jīng)網(wǎng)絡(luò)中的損失函數(shù)層和Optimizers圖文解讀

    對(duì)于許多機(jī)器學(xué)習(xí)算法來(lái)說(shuō),最終要解決的問(wèn)題往往是最小化一個(gè)函數(shù),我們通常稱這個(gè)函數(shù)損失函數(shù)。在
    的頭像 發(fā)表于 11-30 16:09 ?8283次閱讀

    機(jī)器學(xué)習(xí)經(jīng)典損失函數(shù)比較

    所有的機(jī)器學(xué)習(xí)算法都或多或少的依賴于對(duì)目標(biāo)函數(shù)最大化或者最小化的過(guò)程。我們常常將最小化的函數(shù)稱為損失函數(shù)
    的頭像 發(fā)表于 06-13 17:53 ?8577次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>經(jīng)典<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>比較

    計(jì)算機(jī)視覺(jué)的損失函數(shù)是什么?

    損失函數(shù)在模型的性能中起著關(guān)鍵作用。選擇正確的損失函數(shù)可以幫助你的模型學(xué)習(xí)如何將注意力集中在數(shù)據(jù)中的正確特征集合上,從而獲得最優(yōu)和更快的收斂
    的頭像 發(fā)表于 03-13 16:30 ?3580次閱讀
    計(jì)算機(jī)視覺(jué)的<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>是什么?

    機(jī)器學(xué)習(xí)模型再訓(xùn)練指南詳細(xì)概述

    機(jī)器學(xué)習(xí)模型的訓(xùn)練,通常是通過(guò)學(xué)習(xí)某一組輸入特征與輸出目標(biāo)之間的映射來(lái)進(jìn)行的。一般來(lái)說(shuō),對(duì)于映射的學(xué)習(xí)是通過(guò)優(yōu)化某些成本
    發(fā)表于 04-10 08:00 ?0次下載

    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中分類與回歸常用的幾種損失函數(shù)

    本文將介紹機(jī)器學(xué)習(xí)、深度學(xué)習(xí)中分類與回歸常用的幾種損失函數(shù),包括均方差損失 Mean Squar
    的頭像 發(fā)表于 10-09 16:36 ?6258次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>和深度<b class='flag-5'>學(xué)習(xí)</b>中分類與回歸常用的幾種<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>

    表示學(xué)習(xí)中7大損失函數(shù)的發(fā)展歷程及設(shè)計(jì)思路

    表示學(xué)習(xí)的目的是將原始數(shù)據(jù)轉(zhuǎn)換成更好的表達(dá),以提升下游任務(wù)的效果。在表示學(xué)習(xí)中,損失函數(shù)的設(shè)計(jì)一直是被研究的熱點(diǎn)。損失指導(dǎo)著整個(gè)表示
    的頭像 發(fā)表于 07-08 14:23 ?2207次閱讀

    訓(xùn)練深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的常用5個(gè)損失函數(shù)

    被稱為損失函數(shù)損失函數(shù)的選擇與神經(jīng)網(wǎng)絡(luò)模型從示例中學(xué)習(xí)的特定預(yù)測(cè)建模問(wèn)題(例如分類或回歸)有關(guān)。在本文中我們將介紹常用的一些
    的頭像 發(fā)表于 10-19 11:17 ?864次閱讀
    <b class='flag-5'>訓(xùn)練</b>深度<b class='flag-5'>學(xué)習(xí)</b>神經(jīng)網(wǎng)絡(luò)的常用5個(gè)<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>

    深度學(xué)習(xí)模型訓(xùn)練過(guò)程詳解

    詳細(xì)介紹深度學(xué)習(xí)模型訓(xùn)練的全過(guò)程,包括數(shù)據(jù)預(yù)處理、模型構(gòu)建、損失函數(shù)定義、優(yōu)化算法選擇、訓(xùn)練過(guò)程以及模型的評(píng)估與調(diào)優(yōu)。
    的頭像 發(fā)表于 07-01 16:13 ?1323次閱讀

    RNN的損失函數(shù)與優(yōu)化算法解析

    RNN的損失函數(shù) RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))在處理序列數(shù)據(jù)的過(guò)程中,損失函數(shù)(Loss Function)扮演著重要的角色,它可以測(cè)量模型在訓(xùn)練
    的頭像 發(fā)表于 11-15 10:16 ?458次閱讀