機器學習 降低損失

2021-10-04 19:05:35 字數 2456 閱讀 4117

迭代學習可能會讓您想到「hot and cold」這種尋找隱藏物品(如頂針)的兒童遊戲。在我們的遊戲中,「隱藏的物品」就是最佳模型。剛開始,您會胡亂猜測(「w1 的值為 0。」),等待系統告訴您損失是多少。然後,您再嘗試另一種猜測(「w1 的值為 0.5。」),看看損失是多少。哎呀,這次更接近目標了。實際上,如果您以正確方式玩這個遊戲,通常會越來越接近目標。這個遊戲真正棘手的地方在於盡可能高效地找到最佳模型

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

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

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

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

y' =0+

0(10)

y' =

0

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

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

假設我們有時間和計算資源來計算w1的所有可能值的損失。對於我們一直在研究的回歸問題,所產生的損失與w1的圖形始終是凸形。換言之,圖形始終是碗狀圖,如下所示:

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

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

- 方向

- 大小

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

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

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

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

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

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

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

機器學習學習記錄 持續更新 降低損失

下圖是機器學習過程中常見的迭代流程圖 該圖體現了機器學習過程中,通過迭代來減少損失的基本思路。大致思路如下 首先根據資料集中的訓練集來得到乙個 模型,然後利用該模型來計算乙個特徵對應的輸出,並且計算出損失。通過獲得的損失,來更新 模型的引數,再反覆進行上述過程。直至最後計算出來的損失降低至了可接受的...

學習筆記 降低損失

機器學習模式是以迭代的方式來降低損失,這種方法有點像 hot and cold 這種兒童遊戲,在遊戲中,隱藏的物品就是最佳模型,剛開始我們會胡亂猜測,比如w 0,然後系統告訴我們損失是多少,然後我們再重新猜測乙個值,看看損失是多少,通常我們會越來越接近目標。問題是我們如何盡可能高效的找到最佳的模型。...

降低損失 學習速率

reference 正如之前所述,梯度向量具有方向和大小。梯度下降法演算法用梯度乘以乙個稱為學習速率 有時也稱為步長 的標量,以確定下乙個點的位置。例如,如果梯度大小為 2.5,學習速率為 0.01,則梯度下降法演算法會選擇距離前乙個點 0.025 的位置作為下乙個點。超引數 每個回歸問題都存在乙個...