在線學習on-line learning和增量學習Incremental Learning區別?

我們常用random forests來做在線學習,但是近幾年又提出了增量學習,兩者之間到底有什麼區別?舉例來說,將目前的數據分為n類,之後又有第n+1,n+1,n+3....類出現,這個用之前n類生成的模型來訓練後面n+1,n+2,n+3類的過程就是在線學習,而增量學習就是後面一個類一個類的數據往裡面加對嗎?還有在線學習現在的解決方案是說,按照類的順序輸入然後解決,還是可以直接將k個新類完全輸入進行訓練


從不同角度看機器學習的幾種學習方式:

從不同角度看機器學習的幾種學習方式 - Mr.Scofield - 博客頻道 - CSDN.NET


1、在線學習與離線學習
offline learning and online learning.

In offline learning, the whole training data must be available at the time of model training. Only when training is completed can the model be used for predicting.

In contrast, online algorithms process data sequentially. They produce a model and put it in operation without having the complete training dataset available at the beginning. The model is continuously updated during operation as more training data arrives.

2、增量學習與減量學習
online learning包括了incremental learning和decremental learning

incremental learning增量學習,是指一個學習系統能不斷地從新樣本中學習新的知識,並能保存大部分以前已經學習到的知識。增量學習非常類似於人類自身的學習模式。因為人在成長過程中,每天學習和接收新的事物,學習是逐步進行的,而且,對已經學習到的知識,人類一般是不會遺忘的。Less restrictive than online algorithms are incremental algorithms that process input examples one by one (or batch by batch) and update the decision model after receiving each example. Incremental algorithms may have random access to previous examples or representative/selected examples. In such a case, these algorithms are called in- cremental algorithms with partial memory. Typically, in incremental algorithms, for any new presentation of data, the update operation of the model is based on the previous one. Streaming algorithms are online algorithms for processing high-speed continuous flows of data. In streaming, examples are processed sequentially as well and can be examined in only a few passes (typically just one). These algorithms use limited memory and limited processing time per item.
一個增量學習演算法應同時具有以下特點:
1)可以從新數據中學習新知識;
2)以前已經處理過的數據不需要重複處理;
3)每次只有一個訓練觀測樣本被看到和學習;
4)學習新知識的同時能保存以前學習到的大部分知識;
5)—旦學習完成後訓練觀測樣本被丟棄;
6)學習系統沒有關於整個訓練樣本的先驗知識;
增量式演算法:就是每當新增數據時,並不需要重建所有的知識庫,而是在原有知識庫的基礎上,僅做由於新增數據所引起的更新,這更加符合人的思維原理。

decremental learning遞減學習,即拋棄「價值最低」的保留的訓練樣本。這兩個概念在incremental and decremental svm這篇論文裡面可以看到具體的操作過程。

3、主動學習與直推學習
主動學習(active learning),指的是這樣一種學習方法:
有的時候,有類標的數據比較稀少而沒有類標的數據是相當豐富的,但是對數據進行人工標註又非常昂貴,這時候,學習演算法可以主動地提出一些標註請求,將一些經過篩選的數據提交給專家進行標註。
這個篩選過程也就是主動學習主要研究的地方了,怎麼樣篩選數據才能使得請求標註的次數盡量少而最終的結果又盡量好。
主動學習的過程大致是這樣的,有一個已經標好類標的數據集K(初始時可能為空),和還沒有標記的數據集U,通過K集合的信息,找出一個U的子集C,提出標註請求,待專家將數據集C標註完成後加入到K集合中,進行下一次迭代。
按wiki上所描述的看,主動學習也屬於半監督學習的範疇了,但實際上是不一樣的,半監督學習和直推學習(transductive learning)以及主動學習,都屬於利用未標記數據的學習技術,但基本思想還是有區別的。如上所述,主動學習的「主動」,指的是主動提出標註請求,也就是說,還是需要一個外在的能夠對其請求進行標註的實體(通常就是相關領域人員),即主動學習是交互進行的。
而半監督學習,特指的是學習演算法不需要人工的干預,基於自身對未標記數據加以利用。

直推學習,它與半監督學習一樣不需要人工干預,不同的是,直推學習假設未標記的數據就是最終要用來測試的數據,學習的目的就是在這些數據上取得最佳泛化能力。相對應的,半監督學習在學習時並不知道最終的測試用例是什麼。
也就是說,直推學習其實類似於半監督學習的一個子問題,或者說是一個特殊化的半監督學習,所以也有人將其歸為半監督學習。

4、遷移學習
Less restrictive than online algorithms are incremental algorithms that process input examples one by one (or batch by batch) and update the decision model after receiving each example. Incremental algorithms may have random access to previous examples or representative/selected examples. In such a case, these algorithms are called in- cremental algorithms with partial memory. Typically, in incremental algorithms, for any new presentation of data, the update operation of the model is based on the previous one. Streaming algorithms are online algorithms for processing high-speed continuous flows of data. In streaming, examples are processed sequentially as well and can be examined in only a few passes (typically just one). These algorithms use limited memory and limited processing time per item.
在傳統的機器學習的框架下,學習的任務就是在給定充分訓練數據的基礎上來學習一個分類模型;然後利用這個學習到的模型來對測試文檔進行分類與預測。然而,我們看到機器學習演算法在當前的Web挖掘研究中存在著一個關鍵的問題:一些新出現的領域中的大量訓練數據非常難得到。我們看到Web應用領域的發展非常快速。大量新的領域不斷湧現,從傳統的新聞,到網頁,到圖片,再到博客、播客等等。傳統的機器學習需要對每個領域都標定大量訓練數據,這將會耗費大量的人力與物力。而沒有大量的標註數據,會使得很多與學習相關研究與應用無法開展。其次,傳統的機器學習假設訓練數據與測試數據服從相同的數據分布。然而,在許多情況下,這種同分布假設並不滿足。通常可能發生的情況如訓練數據過期。這往往需要我們去重新標註大量的訓練數據以滿足我們訓練的需要,但標註新數據是非常昂貴的,需要大量的人力與物力。從另外一個角度上看,如果我們有了大量的、在不同分布下的訓練數據,完全丟棄這些數據也是非常浪費的。如何合理的利用這些數據就是遷移學習主要解決的問題。遷移學習可以從現有的數據中遷移知識,用來幫助將來的學習。遷移學習(Transfer Learning)的目標就是將從一個環境中學到的知識用來幫助新環境中的學習任務。因此,遷移學習不會像傳統機器學習那樣作同分布假設。舉一個通俗的例子,一個會下象棋的人可以更容易的學會下圍棋;一個認識桌子的人可以更加容易的認識椅子;
在遷移學習方面的工作目前可以分為以下三個部分:同構空間下基於實例的遷移學習,同構空間下基於特徵的遷移學習與異構空間下的遷移學習。基於實例的遷移學習有更強的知識遷移能力,基於特徵的遷移學習具有更廣泛的知識遷移能力,而異構空間的遷移具有廣泛的學習與擴展能力。
遷移學習即一種學習對另一種學習的影響,它廣泛地存在於知識、技能、態度和行為規範的學習中。任何一種學習都要受到學習者已有知識經驗、技能、態度等的影響,只要有學習,就有遷移。遷移是學習的繼續和鞏固,又是提高和深化學習的條件,學習與遷移不可分割。

refs:
http://m.blog.csdn.net/article/details?id=51942135


剛好讀到一段,感覺應該是基本一樣的做法,從不同的角度取名而已,原文如下:

We can distinguish two learning modes: offline learning and online learning. In offline learning, the whole training data must be available at the time of model training. Only when training is completed can the model be used for predicting. In contrast, online algorithms process data sequentially. They produce a model and put it in operation without having the complete training dataset available at the beginning. The model is continuously updated during operation as more training data arrives.

Less restrictive than online algorithms are incremental algorithms that process input examples one by one (or batch by batch) and update the decision model after receiving each example. Incremental algorithms may have random access to previous examples or representative/selected examples. In such a case, these algorithms are called in- cremental algorithms with partial memory. Typically, in incremental algorithms, for any new presentation of data, the update operation of the model is based on the previous one. Streaming algorithms are online algorithms for processing high-speed continuous flows of data. In streaming, examples are processed sequentially as well and can be examined in only a few passes (typically just one). These algorithms use limited memory and limited processing time per item.

文獻出處:

Gama, Jo?o, et al. "A survey on concept drift adaptation." ACM Computing Surveys (CSUR) 46.4 (2014): 44.


研究方向incremental learning相關,談談我個人的理解:

online learning包括了incremental learning和decremental learning等情況,描述的是一個動態學習的過程。前者是增量學習,每次學習一個或多個樣本,這些訓練樣本可以全部保留、部分保留或不保留;後者是遞減學習,即拋棄「價值最低」的保留的訓練樣本。這兩個概念在incremental and decremental svm這篇論文裡面可以看到具體的操作過程。


題主您好,您提到的可以根據當前的n個類別來在線學習第n+1,n+2……等新的類別,這個怎麼實現?現在我找到的都是可以增加數據,但是分類類別不能改變?希望給點方向,謝謝!


題主提到可以根據當前的n個類別來在線學習第n+1,n+2……等新的類別,能否推薦幾篇這方面的文章或者分享一下這方面的資料?謝謝!


最近也在看相關的文獻,剛好在scikit-learn官網上看到這個

Strategies to scale computationally: bigger data

Finally, for 3. we have a number of options inside scikit-learn. Although all algorithms cannot learn incrementally (i.e. without seeing all the instances at once), all estimators implementing the partial_fit API are candidates. Actually, the ability to learn incrementally from a mini-batch of instances (sometimes called 「online learning」) is key to out-of-core learning as it guarantees that at any given time there will be only a small amount of instances in the main memory. Choosing a good size for the mini-batch that balances relevancy and memory footprint could involve some tuning

6. Strategies to scale computationally: bigger data

本質上應該沒區別


並沒有嚴格區別。都是接收新數據,更新演算法參數。


推薦閱讀:

BAT機器學習面試1000題系列(211-215)

TAG:在線學習 | 在線機器學習 |