機器學習中的世代 迭代和批大小

2021-10-10 13:17:56 字數 1351 閱讀 9512

機器學習(ml)中的一些術語很容易被誤解或混淆。

在這篇短文裡面,我會花時間簡單講解一下ml中的epoch和iteration的主要區別。這裡已經假設各位讀者有人工神經網路的基礎,而且並不針對某一種特殊的ml種類。在我解釋之前,我們用乙個非常相似的場景來作模擬,希望這能幫助你理清頭緒!

假設有乙個很好聽的**,有歌詞並且由6個小節組成。在第一次唱完一首歌(即1個epoch),你也同時唱了了6個小節(即6個iteration)。但是這不能保證你已經能不看歌詞重新唱這首歌了,因此你需要重複練習全曲(即multiple epochs)直到你會唱這首歌或者有自信你已經能獨自唱好這首歌的每個小節(即high learning acuracy)。

說回神經網路,在訓練乙個神經網路之前我們有乙個訓練資料集和乙個用於擬合fit這個資料集的cost function(成本函式)。依據訓練集的特徵數(列)的多少,我們可以選擇低次或高次的多項式作為成本函式去擬合。之後我們可以通過計算梯度下降去優化我們的cost function。這是一種學習率為alpa的迭代優化演算法,用於使學習演算法的代價(cost)最小。在每個完整的訓練週期後,我們嘗試最小化梯度下降,直到我們達到可能的最低梯度下降(全域性最小或學習曲線的最小值)。

在全域性最小值下,我們可以確信,學習演算法已經達到了乙個高水平的準確性,並足以對測試或其他未知資料進行**。

如果我們的訓練資料集有1000條記錄,我們可以決定將它分成10個批(每批100條記錄——batch size為100)。因此,完成乙個學習週期需要10個小節。另外,如果我們決定將1000個訓練集分成100批,那麼每個學習週期需要100個小節(每批次10條記錄——batch size為10)。

大家也都清楚了,這10或100個小節即interation,在第10次或第100次小節訓練完之後,我們可以說完成了1次epoch,也就是完成了一次訓練週期。每次epoch結束之後,學習演算法就會比較和評估真實輸出和訓練集結果的差距,並優化學習引數,進行下一次訓練週期。由於不能保證梯度下降在第乙個優化週期(epoch)結束時會全域性優化或達到最佳優化,因此要達到理想的或較高的模型精度,往往需要幾個epoch,而且epoch的次數在不同的學習演算法中也不是固定的。

僅僅乙個epoch會導致欠擬合。但是,在達到全域性最小值後,如果epoch次數太多,則會導致學習模型過擬合。理想情況下,正確的epoch數量是學習模型達到最高準確度的時候。

雖然epoch的概念仍然是優化學習演算法的基本概念,但它在學習模型(如人工神經網路或強化學習)中的具體應用可能因模型如何在每個週期後被修改以表現得更好而有所不同。

最後總結一下,epoch是乙個神經模型學習的整個訓練資料的完整週期。訓練資料可以分割成批,以增強計算能力。給定1000個資料集,它可以分為10批,即建立10次iterations。每批將包含100個資料集。因此,每個迭代的batch size 將是100。

淺說機器學習中「迭代法」

淺說機器學習中 迭代法 zouxy09 qq.com 利用迭代演算法解決問題,需要做好以下三個方面的工作 一 確定迭代變數。在可以用迭代演算法解決的問題中,至少存在乙個直接或間接地不斷由舊值遞推出新值的變數,這個變數就是迭代變數。二 建立迭代關係式。所謂迭代關係式,指如何從變數的前乙個值推出其下乙個...

淺說機器學習中「迭代法」

是一種不斷用變數的舊值遞推新值的過程 跟迭代法相對應的是 直接法 或者稱為一次解法 即一次性解決問題 迭代演算法是用計算機解決問題的一種基本方法。它利用計算機運算速度快 適合做重複性操作的特點,讓計算機對一組指令 或一定步驟 進行重複執行,在每次執行這組指令 或這些步驟 時,都從變數的原值推出它的乙...

淺說機器學習中「迭代法」

淺說機器學習中 迭代法 zouxy09 qq.com 利用迭代演算法解決問題,需要做好以下三個方面的工作 一 確定迭代變數。在可以用迭代演算法解決的問題中,至少存在乙個直接或間接地不斷由舊值遞推出新值的變數,這個變數就是迭代變數。二 建立迭代關係式。所謂迭代關係式,指如何從變數的前乙個值推出其下乙個...