機器學習中的 Epoch 是什麼?
介紹
機器學習領域的核心確實是人工智慧 (AI) 的學習元件。該學習元件是使用表示一組資料的演算法建立的。某些資料集被髮送到演算法中以訓練機器學習模型。
本文將定義機器學習中使用的術語“Epoch”,以及迭代、隨機梯度下降等相關主題。任何學習深度學習和機器學習或試圖在該行業尋求職業發展的人員都必須熟悉這些術語。
ML 中的 Epoch
在機器學習中,Epoch 是模型訓練過程中對資料集的一次完整迭代。它用於衡量模型學習的進度,隨著 Epoch 數量的增加,模型的準確性和效能通常會提高。
在訓練過程中,模型會收到一組輸入資料,稱為訓練資料集,模型的目標是學習一組權重和偏差,以便能夠準確地預測看不見資料的輸出。訓練過程是透過根據模型在訓練資料集上產生的誤差調整模型的權重和偏差來完成的。
Epoch 是對整個訓練資料集的一次遍歷,其中所有示例都用於調整模型的權重和偏差。經過一個 Epoch 後,模型的權重和偏差將被更新,模型將能夠在訓練資料上做出更好的預測。此過程會重複多次,重複次數稱為 Epoch 數。
Epoch 數是一個超引數,這意味著它是由使用者設定的值,而不是由模型學習的值。Epoch 數會對模型的效能產生重大影響。如果 Epoch 數太低,模型將沒有足夠的時間來學習資料中的模式,其效能將會很差。另一方面,如果 Epoch 數太高,模型可能會過度擬合數據,這意味著它在訓練資料上表現良好,但在看不見的資料上表現不佳。
Epoch 的確定
確定最佳 Epoch 數的一種方法是使用稱為提前停止的技術。這涉及監控模型在驗證資料集上的效能,驗證資料集是模型以前從未見過的一組資料。如果模型在驗證資料集上的效能在一定數量的 Epoch 後停止改進,則訓練過程將停止,並儲存模型的權重和偏差。這可以防止模型過度擬合訓練資料。
確定最佳 Epoch 數的另一種方法是使用稱為學習率排程技術。這涉及隨著 Epoch 數的增加降低學習率,學習率是模型權重和偏差更新的速度。較高的學習率會導致模型超過最佳解決方案,而較低的學習率會導致模型收斂速度太慢。
通常,訓練模型所需的 Epoch 數將取決於資料的複雜性和模型。在小型資料集上訓練的簡單模型可能只需要幾個 Epoch,而在大型資料集上訓練的更復雜模型可能需要數百甚至數千個 Epoch。
Epoch 的示例
讓我們使用一個示例來說明 Epoch。假設一個數據集有 200 個樣本。這些樣本需要資料集透過模型 1000 次,或 1000 個 Epoch。批次大小為 5。這意味著模型權重在每個包含 5 個樣本的 40 個批次中的每個批次之後都會更新。因此,模型將進行 40 次更新。
隨機梯度下降
隨機梯度下降 (SGD) 是一種最佳化演算法。它用於深度學習神經網路中訓練機器學習演算法。這種最佳化演算法的工作是找到一組內部模型引數,使其比其他效能指標(如均方誤差或對數損失)表現更好。
最佳化過程可以比作基於學習的搜尋。這裡使用的最佳化演算法稱為梯度下降。術語“梯度”和“下降”分別指沿所需最小誤差水平方向向下移動斜坡。“梯度”描述了誤差梯度或誤差斜率的計算。
該演算法允許搜尋過程在不同的步驟中重複進行。這樣做的目的是在每個階段略微改進模型引數。由於此屬性,該演算法是迭代的。
每個階段都會使用樣本和現有的內部引數進行預測。然後,將預測與實際預期結果進行比較。計算誤差後,將修改內部模型引數。不同的演算法使用不同的更新技術。當涉及人工神經網路時,該演算法使用反向傳播方法。
迭代
迭代是完成一個 Epoch 所需的批次總數。一個 Epoch 的總收斂率等於批次數量。
以下是一個有助於解釋迭代的示例。
假設訓練機器學習模型需要 5000 個訓練例項。可以將此大型資料集劃分為稱為批次的較小單元。
如果批次大小為 500,則將生成 10 個批次。完成一個 Epoch 需要 10 次迭代。
結論
總之,Epoch 是模型訓練過程中對整個訓練資料集的一次遍歷。它用於衡量模型學習的進度,並且 Epoch 數會對模型的效能產生重大影響。確定最佳 Epoch 數需要使用提前停止和學習率排程等技術。訓練模型所需的 Epoch 數將取決於資料的複雜性和模型。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP