機器學習速成課程MLCC(3) 如何降低損失

2021-08-16 08:35:34 字數 3670 閱讀 6767

迭代方法

預計用時:10 分鐘

在本單元中,您將了解機器學習模型如何以迭代方式降低損失。

迭代學習可能會讓您想到「hot and cold」這種尋找隱藏物品(如頂針)的兒童遊戲。在我們的遊戲中,「隱藏的物品」就是最佳模型。剛開始,您會胡亂猜測(「

w1 的值為 0。」),等待系統告訴您損失是多少。然後,您再嘗試另一種猜測(「

w1 的值為 0.5。」),看看損失是多少。哎呀,這次更接近目標了。實際上,如果您以正確方式玩這個遊戲,通常會越來越接近目標。這個遊戲真正棘手的地方在於盡可能高效地找到最佳模型。

下圖顯示了機器學習演算法用於訓練模型的迭代試錯過程:

計算引數更新計算損失模型(**函式)特徵標籤推理:執行**

圖 1. 用於訓練模型的迭代方法。

我們將在整個機器學習速成課程中使用相同的迭代方法詳細說明各種複雜情況,尤其是處於暴風雨中的藍雲區域。迭代策略在機器學習中的應用非常普遍,這主要是因為它們可以很好地擴充套件到大型資料集。

「模型」部分將乙個或多個特徵作為輸入,然後返回乙個** (y') 作為輸出。為了進行簡化,不妨考慮一種採用乙個特徵並返回乙個**的模型:

y′=b+w1x1

我們應該為 

b 和 

w1 設定哪些初始值?對於線性回歸問題,事實證明初始值並不重要。我們可以隨機選擇值,不過我們還是選擇採用以下這些無關緊要的值:

假設第乙個特徵值是 10。將該特徵值代入**函式會得到以下結果:

y' = 0 + 0(10)y'=

0圖中的「計算損失」部分是模型將要使用的損失函式。假設我們使用平方損失函式。損失函式將採用兩個輸入值:

最後,我們來看圖的「計算引數更新」部分。機器學習系統就是在此部分檢查損失函式的值,並為 

b 和 

w1生成新值。現在,假設這個神秘的綠色框會產生新值,然後機器學習系統將根據所有標籤重新評估所有特徵,為損失函式生成乙個新值,而該值又產生新的引數值。這種學習過程會持續迭代,直到該演算法發現損失可能最低的模型引數。通常,您可以不斷迭代,直到總體損失不再變化或至少變化極其緩慢為止。這時候,我們可以說該模型已收斂。

梯度下降法

預計用時:10 分鐘

迭代方法圖(圖 1)包含乙個標題為「計算引數更新」的華而不實的綠框。現在,我們將用更實質的方法代替這種華而不實的演算法。

假設我們有時間和計算資源來計算 

w1 的所有可能值的損失。對於我們一直在研究的回歸問題,所產生的損失與 

w1 的圖形始終是凸形。換言之,圖形始終是碗狀圖,如下所示:

權重值 (wi)損失

圖 2. 回歸問題產生的損失與權重圖為凸形。

凸形問題只有乙個最低點;即只存在乙個斜率正好為 0 的位置。這個最小值就是損失函式收斂之處。

通過計算整個資料集中 

w1 每個可能值的損失函式來找到收斂點這種方法效率太低。我們來研究一種更好的機制,這種機制在機器學習領域非常熱門,稱為梯度下降法。

梯度下降法的第乙個階段是為 

w1 選擇乙個起始值(起點)。起點並不重要;因此很多演算法就直接將 

w1設為 0 或隨機選擇乙個值。下圖顯示的是我們選擇了乙個稍大於 0 的起點:

起點權重值 (wi)損失

圖 3. 梯度下降法的起點。

然後,梯度下降法演算法會計算損失曲線在起點處的梯度。簡而言之,梯度是偏導數的向量;它可以讓您了解哪個方向距離目標「更近」或「更遠」。請注意,損失相對於單個權重的梯度(如圖 3 所示)就等於導數。

請注意,梯度是乙個向量,因此具有以下兩個特徵:

梯度始終指向損失函式中增長最為迅猛的方向。梯度下降法演算法會沿著負梯度的方向走一步,以便盡快降低損失。

起點權重值 (wi)損失(負) 梯㡯

圖 4. 梯度下降法依賴於負梯度。

為了確定損失函式曲線上的下乙個點,梯度下降法演算法會將梯度大小的一部分與起點相加,如下圖所示:

起點權重值 (wi)損失(負) 梯㡯下乙個點

圖 5. 乙個梯度步長將我們移動到損失曲線上的下乙個點。

然後,梯度下降法會重複此過程,逐漸接近最低點。

學習速率

預計用時:5 分鐘

正如之前所述,梯度向量具有方向和大小。梯度下降法演算法用梯度乘以乙個稱為學習速率(有時也稱為步長)的標量,以確定下乙個點的位置。例如,如果梯度大小為 2.5,學習速率為 0.01,則梯度下降法演算法會選擇距離前乙個點 0.025 的位置作為下乙個點。

圖 6. 學習速率過小。

相反,如果您指定的學習速率過大,下乙個點將永遠在 u 形曲線的底部隨意彈跳,就好像量子力學實驗出現了嚴重錯誤一樣:

權重值 (wi)損失越過了最低點!起點

圖 7. 學習速率過大。

每個回歸問題都存在乙個學習速率。「金髮姑娘」值與損失函式的平坦程度相關。如果您知道損失函式的梯度較小,則可以放心地試著採用更大的學習速率,以補償較小的梯度並獲得更大的步長。

起點權重值 (wi)損失我們將高效地到達最低點。

圖 8. 學習速率恰恰好。

隨機梯度下降

預計用時:3 分鐘

在梯度下降法中,批量指的是用於在單次迭代中計算梯度的樣本總數。到目前為止,我們一直假定批量是指整個資料集。就 google 的規模而言,資料集通常包含數十億甚至數千億個樣本。此外,google 資料集通常包含海量特徵。因此,乙個批量可能相當巨大。如果是超大批量,則單次迭代就可能要花費很長時間進行計算。

包含隨機抽樣樣本的大型資料集可能包含冗餘資料。實際上,批量大小越大,出現冗餘的可能性就越高。一些冗餘可能有助於消除雜亂的梯度,但超大批量所具備的**價值往往並不比大型批量高。

如果我們可以通過更少的計算量得出正確的平均梯度,會怎麼樣?通過從我們的資料集中隨機選擇樣本,我們可以通過小得多的資料集估算(儘管過程非常雜亂)出較大的平均值。 隨機梯度下降法 (sgd) 將這種想法運用到極致,它每次迭代只使用乙個樣本(批量大小為 1)。如果進行足夠的迭代,sgd 也可以發揮作用,但過程會非常雜亂。「隨機」這一術語表示構成各個批量的乙個樣本都是隨機選擇的。

小批量隨機梯度下降法(小批量 sgd)是介於全批量迭代與 sgd 之間的折衷方案。小批量通常包含 10-1000 個隨機選擇的樣本。小批量 sgd 可以減少 sgd 中的雜亂樣本數量,但仍然比全批量更高效。

為了簡化說明,我們只針對單個特徵重點介紹了梯度下降法。請放心,梯度下降法也適用於包含多個特徵的特徵集。

機器學習速成課程MLCC(9) 神經網路簡介

神經網路簡介 預計用時 7 分鐘 您會發現以下分類問題屬於非線性問題 圖 1.非線性分類問題。非線性 意味著您無法使用形式為 b w1x1 w2x2 的模型準確 標籤。也就是說,決策面 不是直線。之前,我們了解了對非線性問題進行建模的一種可行方法 特徵組合。現在,請考慮以下資料集 圖 2.更難的非線...

機器學習速成課程學習講義3

上一單元 介紹了損失的概念。在本單元中,您將了解機器學習模型如何以迭代方式降低損失。迭代學習可能會讓您想到 hot and cold 這種尋找隱藏物品 如頂針 的兒童遊戲。在我們的遊戲中,隱藏的物品 就是最佳模型。剛開始,您會胡亂猜測 w1 的值為 0。等待系統告訴您損失是多少。然後,您再嘗試另一種...

谷歌機器學習速成課程 3降低損失 迭代方法

迭代學習可能會讓您想到 hot and cold 這種尋找隱藏物品 如頂針 的兒童遊戲。在我們的遊戲中,隱藏的物品 就是最佳模型。剛開始,您會胡亂猜測 w 1 w1 的值為 0。等待系統告訴您損失是多少。然後,您再嘗試另一種猜測 w 1 w1 的值為 0.5。看看損失是多少。哎呀,這次更接近目標了。...