griffin
2010-07-28 18:32:33 UTC
離線學習和在線學習有什麼區別?僅僅是學習整個數據集(離線)還是逐步學習(一次實例)?兩者都使用哪些算法示例?
在線學習意味著您在輸入數據時就在做。離線意味著您有一個靜態數據集。
因此,對於在線學習,您(通常)擁有更多數據,但是您擁有時間限制。可能影響在線學習的另一個問題是您的概念可能會隨著時間而改變。
假設您要建立一個分類器來識別垃圾郵件。您可以獲取大量的電子郵件,對其進行標記,然後在其上訓練分類器。這將是離線學習。或者,您可以接收所有進入系統的電子郵件,並不斷更新分類器(標籤可能有點棘手)。這將是在線學習。
“在線”一詞過載,因此在機器學習領域引起混亂。
“在線”的反義詞是批量學習。在批處理學習中,學習算法在消耗了整個批處理之後更新其參數,而在在線學習中,該算法在從1個訓練實例學習後更新了其參數。迷你批處理學習是從一端進行批處理學習到另一端進行在線學習之間的中間點。與在線或批處理學習正交。
與批處理學習相比,在線學習被認為收斂於最小值的速度較慢。但是,如果整個數據集都無法容納在內存中,那麼使用在線學習是可以接受的折衷方案。
在線學習(也稱為“ 增量學習”):我們考慮對示例進行單個介紹。在這種情況下,將按照學習算法規定的方式依次使用每個示例,然後將其丟棄。在給定階段進行的權重更改特別取決於only取決於所呈現的(當前)示例,並且可能取決於模型的當前狀態。這是時變規則的自然過程,其中的示例可能一次都無法使用。
離線學習:權重變化取決於整個(訓練)數據集,從而定義了全局成本函數。重複使用這些示例,直到將此成本函數最小化為止。