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

2021-10-02 12:06:50 字數 1145 閱讀 4254

下圖是機器學習過程中常見的迭代流程圖

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

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

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

了解了梯度下降法,那麼接下來就好介紹什麼是學習速率了。正如之前所述,梯度向量具有方向和大小。梯度下降法演算法用梯度乘以乙個稱為學習速率(有時也稱為步長)的標量,以確定下乙個點的位置。例如,如果梯度大小為 2.5,學習速率為 0.01,則梯度下降法演算法會選擇距離前乙個點 0.025 的位置作為下乙個點。但是,學習速率的設定是乙個難以抉擇的問題。因為速率設定太大了,可能步子邁大了,一步邁過了目標。但是設定太小了,就容易耗費太長的時間。所以這個值的設定是乙個難題。

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

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

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

機器學習學習記錄 持續更新 pandas

pandas訪問資料的方法 pandas操控資料的方法 pandas 是一種列存資料分析 api。它是用於處理和分析輸入資料的強大工具,很多機器學習框架都支援將 pandas 資料結構作為輸入。可以將它想象成乙個關係型資料 其中包含多個行和已命名的列。建立dataframe的方法可以是將對映 str...

機器學習學習記錄 持續更新 pandas

pandas訪問資料的方法 pandas操控資料的方法 pandas 是一種列存資料分析 api。它是用於處理和分析輸入資料的強大工具,很多機器學習框架都支援將 pandas 資料結構作為輸入。可以將它想象成乙個關係型資料 其中包含多個行和已命名的列。建立dataframe的方法可以是將對映 str...

機器學習學習記錄 持續更新 特徵組合

在之前的機器學習過程中,基本上都是在研究一些線性模型,如下圖,用一條直線將不同顏色的點分割開來 但是,當你遇到下面這樣的圖形,請問你還可以用一條直線將不同顏色的點分割開來嗎?顯然是不行的!難道這說明我們之前費勁時間學習的線性模型其實沒有什麼廣泛的用途嗎?no!線性模型是目前用的最多 計算速度最快的模...