人工智能中小樣本問題引起的多個系列模型演變及學習筆記(含元學習/小樣本學習/生成對抗網絡/遷移學習等)

【說在前面】本人博客新手一枚,象牙塔的老白,職業場的小白。如下內容僅爲我的看法,歡迎批評指正,不喜勿噴![握手][握手]html

【再囉嗦一下】原本只想記一下GAN的筆記,沒想到發現了一個大宇宙,不少我的並不擅長,主要是整理概括!python

1、Meta Learning 元學習綜述

Meta Learning,又稱爲 learning to learn,已經成爲繼 Reinforcement Learning 以後又一個重要的研究分支。git

元學習區別於機器學習的是:機器學習一般是在擬合一個數據的分佈,而元學習是在擬合一系列類似任務的分佈。github

本節主要參考了大佬的知乎專欄:https://zhuanlan.zhihu.com/p/28639662面試

推薦Stanford助理教授Chelsea Finn開設的CS330 multitask and meta learning課程算法

  • 在 Machine Learning 機器學習時代,對於複雜一點的分類問題,模型效果就很差了。
  • Deep Learning 深度學習解決了一對一映射問題,但若是輸出對下一個輸入有影響,也就是sequential decision making問題,單一的深度學習就解決不了了。
  • Deep Reinforcement Learning 深度強化學習對序列決策取得成效,但深度強化學習太依賴於巨量的訓練,而且須要精確的Reward。
  • 人類之因此可以快速學習的關鍵是人類具有學會學習的能力,可以充分利用以往的知識經驗來指導新任務的學習,所以 Meta Learning 成爲新的攻克方向。

1. 基本概念

元學習是要去學習任務中的特徵表示,從而在新的任務上泛化。舉個例子,如下圖的圖像分類來講,元學習的訓練過程是在task1和task2上訓練模型(更新模型參數),而在訓練樣本中的訓練集通常稱做support set,訓練樣本中的測試集通常叫作query set。測試過程是在測試任務上評估模型好壞,從圖中能夠看出,測試任務和訓練任務內容徹底不一樣。網絡

元學習解決的是學習如何學習的問題,元學習的思想是學習「學習(訓練)」過程。元學習主要包括Zero-Shot/One-Shot/Few-Shot 學習、模型無關元學習(Model Agnostic Meta Learning)和元強化學習(Meta Reinforcement Learning)等。數據結構

  • Zero-shot Learing 就是訓練樣本里沒有這個類別的樣本,可是若是咱們能夠學到一個牛逼的映射,這個映射好到咱們即便在訓練的時候沒看到這個類,可是咱們在遇到的時候依然能經過這個映射獲得這個新類的特徵。
  • One-shot Learing 就是類別下訓練樣本只有一個或者不多,咱們依然能夠進行分類。好比咱們能夠在一個更大的數據集上或者利用knowledge graph、domain-knowledge 等方法,學到一個通常化的映射,而後再到小數據集上進行更新升級映射。
  • Few-Shot Learing 的綜述將在下一節重點整理,這裏暫時不展開介紹。

元學習的主要方法包括基於記憶Memory的方法、基於預測梯度的方法、利用Attention注意力機制的方法、借鑑LSTM的方法、面向RL的Meta Learning方法、利用WaveNet的方法、預測Loss的方法等。架構

2. 基於記憶Memory的方法

基本思路:既然要經過以往的經驗來學習,那麼是否是能夠經過在神經網絡上添加Memory來實現呢?框架

表明方法包括:Meta-learning with memory-augmented neural networks、Meta Networks等。

能夠看到,網絡的輸入把上一次的y label也做爲輸入,而且添加了external memory存儲上一次的x輸入,這使得下一次輸入後進行反向傳播時,可讓y label和x創建聯繫,使得以後的x可以經過外部記憶獲取相關圖像進行比對來實現更好的預測。

3. 基於預測梯度的方法

基本思路:既然Meta Learning的目的是實現快速學習,而快速學習的關鍵一點是神經網絡的梯度降低要準,要快,那麼是否是可讓神經網絡利用以往的任務學習如何預測梯度,這樣面對新的任務,只要梯度預測得準,那麼學習得就會更快了?

表明方法包括:Learning to learn by gradient descent by gradient descent 等。

該方法訓練一個通用的神經網絡來預測梯度,用一次二次方程的迴歸問題來訓練,優化器效果比Adam、RMSProp好,顯然就加快了訓練。

4. 利用Attention注意力機制的方法

基本思路:人的注意力是能夠利用以往的經驗來實現提高的,好比咱們看一個性感圖片,咱們會很天然的把注意力集中在關鍵位置。那麼,能不能利用以往的任務來訓練一個Attention模型,從而面對新的任務,可以直接關注最重要的部分。

表明方法包括:Matching networks for one shot learning 等。

這篇文章構造一個attention機制,也就是最後的label判斷是經過attention的疊加獲得的:

[公式]

attention a 則經過 g 和 f 獲得。基本目的就是利用已有任務訓練出一個好的attention model。

5. 借鑑LSTM的方法

基本思路:LSTM內部的更新很是相似於梯度降低的更新,那麼,可否利用LSTM的結構訓練出一個神經網絡的更新機制,輸入當前網絡參數,直接輸出新的更新參數?

表明方法包括:Optimization as a model for few-shot learning 等。

這篇文章的核心思想是下面這一段:

怎麼把LSTM的更新和梯度降低聯繫起來纔是更值得思考的問題吧。

6. 面向RL的Meta Learning方法

基本思路:Meta Learning能夠用在監督學習,那麼加強學習上怎麼作呢?可否經過增長一些外部信息好比reward,以前的action來實現?

表明方法包括:Learning to reinforcement learn、Rl2: Fast reinforcement learning via slow reinforcement learning 等。

兩篇文章思路一致,就是額外增長reward和以前action的輸入,從而強制讓神經網絡學習一些任務級別的信息:

7. 經過訓練一個好的base model的方法,而且同時應用到監督學習和強化學習

基本思路:以前的方法都只能侷限在監督學習或強化學習上,能搞個更通用的?是否是相比finetune學習一個更好的base model就能work?

主要方法包括:Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks 等。

這篇文章的基本思路是同時啓動多個任務,而後獲取不一樣任務學習的合成梯度方向來更新,從而學習一個共同的最佳base。

8. 利用WaveNet的方法

基本思路:WaveNet的網絡每次都利用了以前的數據,是否能夠照搬WaveNet的方式來實現Meta Learning呢?就是充分利用以往的數據呀?

主要方法包括:Meta-Learning with Temporal Convolutions 等。

直接利用以前的歷史數據,思路極其簡單,效果極其之好,是目前omniglot,mini imagenet圖像識別的state-of-the-art。

9. 預測Loss的方法

基本思路:要讓學習的速度更快,除了更好的梯度,若是有更好的loss,那麼學習的速度也會更快,所以,是否是能夠構造一個模型利用以往的任務來學習如何預測Loss呢?

主要方法包括:Learning to Learn: Meta-Critic Networks for Sample Efficient Learning 等。

本文構造了一個Meta-Critic Network(包含Meta Value Network和Task-Actor Encoder)來學習預測Actor Network的Loss。對於Reinforcement Learning而言,這個Loss就是Q Value。

10. 小結

這是兩年前的綜述了,可是感受質量很高。固然,後續又有了一些新進展。在應用上,元學習應用到了更普遍的問題上,例如小樣本圖像分類、視覺導航、機器翻譯和語音識別等。在算法上,最值得一提的應該就是元強化學習,由於這樣的結合將有望使智能體可以更快速地學習新的任務,這個能力對於部署在複雜和不斷變化的世界中的智能體來講是相當重要的。

具體的,以上關於元學習的論文已經介紹了在策略梯度(policy gradient)和密集獎勵(dense rewards)的有限環境中將元學習應用於強化學習的初步結果。此後,不少學者對這個方法產生了濃厚的興趣,也有更多論文展現了將元學習理念應用到更普遍的環境中,好比:從人類演示中學習、模仿學習以及基於模型的強化學習。除了元學習模型參數外,還考慮了超參數和損失函數。爲了解決稀疏獎勵設置問題,也有了一種利用元學習來探索策略的方法。

儘管取得了這些進展,樣本效率仍然是一項挑戰。當考慮將 meta-RL 應用於實際中更復雜的任務時,快速適應這些任務則須要更有效的探索策略。所以在實際學習任務中,須要考慮如何解決元訓練樣本效率低下的問題。所以,伯克利 AI 研究院基於這些問題進行了深刻研究,並開發了一種旨在解決這兩個問題的算法。

最後分享看到的元學習 meta learning 的2020綜述論文。提出了一個新的分類法,對元學習方法的空間進行了更全面的細分:[認真看圖]

論文標題:Meta-Learning in Neural Networks: A Survey

論文連接:https://arxiv.org/abs/2004.05439

2、Few-shot Learning 小樣本學習綜述

Few-shot Learning 能夠說是 元學習 Meta Learning 在監督學習領域的一個應用,固然也有它本身研究領域的東西。

本節來自香港科技大學和第四範式的綜述:Generalizing from a Few Examples: A Survey on Few-Shot Learning

該綜述已被 ACM Computing Surveys 接收,還創建了 GitHub repo,持續更新:https://github.com/tata1661/FewShotPapers

1. 基本概念

機器學習在數據密集型應用中很是成功,但當數據集很小時,它經常受到阻礙。爲了解決這一問題,近年來提出了小樣本學習(FSL)。利用先驗知識,FSL能夠快速地泛化到只包含少許有監督信息的樣本的新任務中。

大多數人認爲FSL就是 meta learning,其實不是。FSL能夠是各類形式的學習(例如監督、半監督、強化學習、遷移學習等),本質上的定義取決於可用的數據。但如今大多數時候在解決FSL任務時,採用的都是 meta Learning 的一些方法。

基於各個方法利用先驗知識處理核心問題的方式,該綜述將 FSL 方法分爲三大類:

  • 數據:利用先驗知識加強監督信號
  • 模型:利用先驗知識縮小假設空間的大小
  • 算法:利用先驗知識更改給定假設空間中對最優假設的搜索

基於此,該綜述將現有的 FSL 方法歸入此框架,獲得以下分類體系:

2. DATA

數據加強的方式有不少種,平時也被使用的比較多,在這裏做者將數據加強的方法歸納成三類:

總之,數據加強沒有什麼神祕感,能夠是手動在數據上修改(例如圖片的旋轉、句子中的同義詞替換等),也能夠是複雜的生成模型(生成和真實數據相近的數據)。數據加強的方式有不少種,大量合適的加強必定程度上能夠緩解FSL問題,但其能力仍是有限的。

3. MODEL

和模型剪枝中的理念相似,你一開始給一個小的模型,這個模型空間離真實假設太遠了。而你給一個大的模型空間,它離真實假設近的機率比較大,而後經過先驗知識去掉哪些離真實假設遠的假設。

做者根據使用不一樣的先驗知識將MODEL的方法分紅4類:

3.1 Multitask Learning

對於多個共享信息的任務(例如數據相同任務不一樣、數據和任務都不一樣等),均可以用多任務學習來訓練。

多任務分爲硬參數共享和軟參數共享兩種模式:

  • 硬參數共享認爲任務之間的假設空間是有部分重疊的,體如今模型上就是有部分參數是共享的。而共享的參數能夠是模型的前面一些層,表徵任務的低階信息。也能夠是在嵌入層以後,不一樣的嵌入層將不一樣任務嵌入到同一不變任務空間,而後共享模型參數等。
  • 軟參數共享再也不顯示的共享模型參數,而是讓不一樣的任務的參數類似。這就能夠經過不一樣任務的參數正則,或者經過損失來影響參數的類似,以此讓不一樣任務的假設空間相似。

多任務經過多個任務來限制模型的假設空間:

  • 對於硬參數共享,多個任務會有一個共享的假設空間,而後每一個任務還有本身特定的假設空間。
  • 對於軟參數共享也相似,軟參數更靈活,但也須要精心設計。

3.2 Embedding Learning

嵌入學習很好理解,將訓練集中全部的樣本經過一個函數 f 嵌入到一個低維可分的空間Z,而後將測試集中的樣本經過一個函數 g 嵌入到這個低維空間Z,而後計算測試樣本和全部訓練樣本的類似度,選擇類似度最高的樣本的標籤做爲測試樣本的標籤。

根據task-specific和task-invariant,以及二者的結合能夠分爲三種,嵌入學習以下:

  • Task-specific是在任務自身的訓練集上訓練的,經過構造同類樣本相同,不一樣類樣本不一樣的樣本對做爲數據集,這樣數據集會有一個爆炸式的擴充,能夠提升樣本的複雜度,而後能夠用如siamese network等來訓練。
  • Task-invariant是在一個大的且和任務類似的source數據集上訓練一個嵌入模型,而後直接用於當前任務的訓練集和測試集嵌入。
  • 實際上如今用的比較多的仍是二者的結合,既能夠利用大的通用數據集學習通用特徵,又能夠在特定任務上學習特定的特徵,而如今經常使用的訓練模式是meta learning中的metric-based的方式,此類常見的模型有match network、prototypical network、relation network等。

3.3 Learning with External Memory

具備外部存儲機制的網絡均可以用來處理這一類問題,其實本質上和遷移學習同樣。只不過這裏不更新模型的參數,只更新外部記憶庫。外部記憶庫通常都是一個矩陣,如神經圖靈機,其外部記憶庫具備讀寫操做。

在這裏就是在一個用大量相似的數據訓練的具備外部存儲機制的網絡上,用具體task的樣原本更新外部記憶庫。這類方法須要精心設計纔能有好的效果,好比外部記憶庫寫入或更新的規則可能就影響模型可以在當前任務上的表現。具體的以下圖所示:

3.4 Generative Modeling

引入了生成式的模型來解FSL問題。

4. ALGORITHM

在機器學習中,一般使用SGD及其變體(例如ADAM、RMSProp等)來尋找最優參數。可是在FSL中,樣本數量不多,這種方法就失效了。

在這一節,咱們再也不限制假設空間。根據使用不一樣的先驗知識,能夠將ALGORITHM分爲下面3類:

4.1 Refine Existing Parameters

本質就是pretrained + fine-tuning的模式,最多見的就是直接在pre-trianed的模型上直接fine-tuning參數,還能夠在一個新的網絡上使用pre-trained的部分參數來初始化等。

4.2 Refine Meta-learned Parameters

該小節是基於 meta learning 的解決方法,利用元學習器學習一個好的初始化參數。以後在新的任務上,只要對這個初始化參數少許迭代更新就能很好的適應新的任務。這種方法最經典的模型就是MAML,MAML的訓練模式以下圖所示:

上面的參數是元學習器的參數,最後用多個任務的梯度矢量和來更新參數。這樣的方式也有一個問題,就是新的任務的特性必需要和元訓練中的任務相近,這樣值才能做爲一個較好的初始化值,不然效果會不好。所以,也就有很多研究在根據新任務的數據集來動態的生成一個適合它的初始化參數。

4.3 Learn Search Steps

上一節使用元學習來得到一個較好的初始化參數,而本節旨在用元學習來學習一個參數更新的策略。針對每個子任務能給定特定的優化方式其實是提升性能的惟一方法,這裏就是設計一個元優化器來爲特定的任務提供特定的優化方法,具體的以下圖所示:

梯度的更新也能夠寫成:

在這裏使用RNN來實現,由於RNN具備時序記憶功能,而梯度迭代的過程當中正好是一個時序操做。具體的訓練以下圖所示:

訓練過程大體以下:

  • 對於每一個任務,一樣劃分訓練集和測試集,訓練集通過meta-learner獲得一系列的梯度,由於RNN每一個時刻都有輸出,所以每一個時刻的梯度都去依次更新learner的參數ϕ。這樣看就至關於一個batch的樣本就更新了T次learner
  • 訓練完一輪以後,用測試集在learner上的到的梯度來更新meta-learner的參數

這和上一節面臨的問題同樣,meta-learner 學到的更新策略是針對這一類任務的,一旦新任務和元訓練中的任務誤差較大時,這種更新策略可能就失效了。

5. FUTURE WORKS

將來的方向可能有:

  • 從使用的先驗數據:例如利用更多的先驗知識、多模態的數據等
  • 從使用的模型方法:用新的網絡結構去替換之前的,例如用transformer替換RNN
  • 從使用的場景:如今FSL在字符識別、圖像識別、小樣本分割等取得效果,在目標檢測、目標跟蹤、NLP中的各項任務上等值得嘗試
  • 理論分析
  • ......

3、生成對抗網絡 GAN 綜述

說到小樣本學習,就想說比較時髦的生成對抗網絡GAN。別誤會,生成對抗網絡並非只針對小樣本生成,還有不少別的豐富應用。

1. GAN

GANs是一種結構化的機率模型,由兩個對立的模型組成:生成模型(G)用於捕獲數據分佈,判別模型(D)用於估計生成數據的機率,以肯定生成的數據是來自真實數據分佈,仍是來自G的分佈。D和G使用基於梯度的優化技術(同時梯度降低)玩一個極小極大零和博弈,直到納什均衡。

GANs在一些實際任務中表現良好,例如圖像生成、視頻生成、域自適應和圖像超分辨率等。傳統的GANs雖然在不少方面都取得了成功,可是因爲D和G訓練的不平衡,使得GANs在訓練中很是不穩定。D利用迅速飽和的邏輯損失。另外,若是D能夠很容易的區分出真假圖像,那麼D的梯度就會消失,當D不能提供梯度時,G就會中止更新。

近年來,對於模式崩潰問題的處理有了許多改進,由於G產生的樣本基於少數模式,而不是整個數據空間。另外一方面,引入了幾個目標(損失)函數來最小化與傳統GANs公式的差別。最後,提出了幾種穩定訓練的方法。

2. DCGAN

顧名思義,DCGAN主要討論CNN與GAN如何結合使用並給出了一系列建議。另外還討論了GAN特徵的可視化、潛在空間插值等問題。

3. ImprovedGAN

Ian Goodfellow等人提供了諸多訓練穩定GAN的建議,包括特徵匹配、mini-batch識別、歷史平均、單邊標籤平滑以及虛擬批標準化等技巧。討論了GAN不穩定性的最佳假設。

4. PACGAN

PACGAN討論的是的如何分析model collapse,以及提出了PAC判別器的方法用於解決model collapse。思想其實就是將判別器的輸入改爲多個樣本,這樣判別器能夠同時看到多個樣本能夠從必定程度上防止model collapse。

5. WGAN

WGAN首先從理論上分析了原始GAN模型存在的訓練不穩定、生成器和判別器的loss沒法只是訓練進程、生成樣本缺少多樣性等問題,並經過改進算法流程針對性的給出了改進要點。

6. CycleGAN 

CycleGAN討論的是image2image的轉換問題,提出了Cycle consistency loss來處理缺少成對訓練樣原本作image2image的轉換問題。Cycle Consistency Loss 背後的主要想法,圖片A轉化獲得圖片B,再從圖片B轉換獲得圖片A',那麼圖片A和圖片A'應該是圖一張圖片。

7. Vid2Vid

Vid2Vid在生成器中加入光流約束,判別器中加入光流信息及對前景和背景分別建模,重點解決視頻轉換過程當中先後幀圖像的不一致性。

8. PGGAN

PGGAN創造性地提出了以一種漸進增大(Progressive growing)的方式訓練GAN,利用逐漸增大的PGGAN網絡實現了效果使人驚歎的生成圖像。「Progressive Growing」 指的是先訓練 4x4 的網絡,而後訓練 8x8,不斷增大,最終達到 1024x1024。這既加快了訓練速度,又大大穩定了訓練速度,而且生成的圖像質量很是高。

9. StackGAN

StackGAN是由文本生成圖像,StackGAN模型與PGGAN工做的原理很像,StackGAN 首先輸出分辨率爲64×64 的圖像,而後將其做爲先驗信息生成一個 256×256 分辨率的圖像。

10. BigGAN

BigGAN模型是基於 ImageNet 生成圖像質量最高的模型之一。該模型很難在本地機器上實現,並且 有許多組件,如 Self-Attention、 Spectral Normalization 和帶有投影鑑別器的 cGAN等。

11. StyleGAN 

StyleGAN應該是截至目前最複雜的GAN模型,該模型借鑑了一種稱爲自適應實例標準化 (AdaIN) 的機制來控制潛在空間向量 z。雖然很難本身實現一個StyleGAN,可是它提供了不少有趣的想法。

12. 小結

固然前文有一些方法沒有提到的,例如CGAN、自編碼GAN等。

說到這裏,放一張大佬整理的GAN家族主要模型的概要圖:

  • 左邊部分主要是改進模型解決例如圖片轉換、文本轉圖像、生成圖片、視頻轉換等實際問題。
  • 右邊部分主要是解決GAN框架自己存在的一些問題。

同時,再分享一下生成式對抗網絡(GANs)最新2020綜述,分類更全面更細緻:[認真看圖][認真看圖]

  • 主要包括基於從新設計的網絡結構、新的目標函數和替代優化算法的技術三個大類

GAN 已經在一些特定應用上與其它機器學習算法相結合,例如半監督學習、遷移學習、強化學習和多模態學習等。GAN 在圖像處理與計算機視覺(例如圖像超分辨率、圖像生成、目標檢測和視頻處理等)、天然語言處理(例如文本生成等)、音樂(例如歌詞生成等)、語音與音頻、醫學以及數據科學中的典型應用(例如以前個人隨筆裏提到的數據補全、異常檢測、時間序列預測等)。

同時,GAN 被用於特徵學習領域(例如特徵選擇、哈希和度量學習等)和其它機器學習任務(例如主動學習、在線學習 、零/小樣本學習和多任務學習等)。能夠說,計算機領域的不少研究分支中的算法模型都可以互相遷移、彼此融合,從而在不一樣領域有了拓展性的應用。

4、遷移學習綜述

說到小樣本學習,我也想再說說遷移學習。可是別誤會,遷移學習也並非只針對小樣本學習,還有不少別的豐富應用。

本文主要參考了一篇綜述:A Survey on Transfer Learning

1. 基本概念

在許多機器學習和數據挖掘算法中,一個重要的假設就是目前的訓練數據和未來的訓練數據,必定要在相同的特徵空間而且具備相同的分佈。然而,在許多現實的應用案例中,這個假設可能不會成立。這種狀況下,若是知識的遷移作得成功,咱們將會經過避免花費大量昂貴的標記樣本數據的代價,使得學習性能取得顯著的提高。近年來,爲了解決這類問題,遷移學習做爲一個新的學習框架出如今人們面前。

遷移學習主要有如下三個研究問題:1)遷移什麼,2)如何遷移,3)什麼時候遷移。

  • 「遷移什麼」提出了遷移哪部分知識的問題。 一些知識對單獨的域或任務有用,一些知識對不一樣的領域是通用的,能夠用來提升目標域或目標任務的性能。
  • 「什麼時候遷移」提出了哪一種狀況下運用遷移學習。當源域和目標域無關時,強行遷移可能並不會提升目標域上算法的性能,甚至會損害性能。這種狀況稱爲負遷移。
  • 當前大部分關於遷移學習的工做關注於「遷移什麼」和「如何遷移」,隱含着一個假設:源域和目標域彼此相關。然而,如何避免負遷移是一個很重要的問題

基於遷移學習的定義,咱們概括了傳統機器學習方法和遷移學習的異同見下表:

在這裏插入圖片描述

(1)inductive transfer learning:推導遷移學習,也叫概括遷移學習。其目標任務和源任務不一樣,不管目標域與源域是否相同。這種狀況下,要用目標域中的一些已標註數據生成一個客觀預測模型以應用到目標域中。根據源域中已標註和未標註數據的不一樣狀況,能夠進一步將inductive transfer learning分爲兩種狀況:

  • 源域中大量已標註數據可用。這種狀況下推導遷移學習和多任務學習相似。然而,推導遷移學習只關注於經過從源任務中遷移知識以便在目標任務中得到更高性能,然而多任務學習嘗試同時學習源任務和目標任務。
  • 源域中無已標註數據可用。這種狀況下推導遷移學習和自我學習類似。自我學習中,源域和目標域間的標籤空間可能不一樣,這意味着源域中的邊緣信息不能直接使用。所以當源域中無已標註數據可用時這兩種學習方法類似。

transductive transfer learning:轉導遷移學習,也叫直推式遷移學習。其源任務和目標任務相同,源域和目標域不一樣。這種狀況下,目標域中無已標註數據可用,源域中有大量已標註數據可用。根據源域和目標域中的不一樣情況,能夠進一步將轉導遷移學習分爲兩類:

  • 源域和目標域中的特徵空間不一樣
  • 源域和目標域間的特徵空間相同,但輸入數據的邊緣機率分佈不一樣。這種狀況與自適應學習相關,由於文本分類、樣本選擇誤差和協方差移位中的知識遷移都有類似的假設。

(3)unsupervised transfer learning:無監督遷移學習。與推導遷移學習類似,目標任務與源任務不一樣但相關。然而,無監督遷移學習專一於解決目標域中的無監督學習問題,例如聚類、降維、密度估計等。這種狀況下,訓練中源域和目標域都無已標註數據可用。

2. 遷移學習的分類

上述三種遷移學習能夠基於「遷移什麼」被分爲四種狀況:

(1)Instance-based TL(樣本遷移):能夠被稱爲基於實例的遷移學習。儘管source domain數據不能夠整個直接被用到target domain裏,可是在source domain中仍是找到一些能夠從新被用到target domain中的數據。對它們調整權重,使它能與target domain中的數據匹配以後能夠進行遷移。

instance reweighting(樣本從新調整權重)和importance sampling(重要性採樣)是instance-based TL裏主要用到的兩項技術。

例如在這個例子中就是找到例子3,而後加劇它的權值,這樣在預測的時候它所佔權重較大,預測也能夠更準確。

(2)Feature-representation-transfer(特徵遷移):能夠被稱爲基於特徵表示的遷移學習。找到一些好的有表明性的特徵,經過特徵變換把source domain和target domain的特徵變換到一樣的空間,使得這個空間中source domain和target domain的數據具備相同的分佈,而後進行傳統的機器學習就能夠了。

特徵變換這一塊能夠舉個栗子:好比評論男生的時候,你會說「好帥!好有男人味!好有擔當!」,評論女生的時候,你會說「好漂亮!好有女人味!好溫柔!」能夠看出共同的特徵就是「好看」。把「好帥」映射到「好看」,把「好漂亮」映射到「好看」,「好看」即是它們的共同特徵。

(3)Parameter-transfer(參數/模型遷移):能夠被稱爲基於參數的遷移學習。假設source tasks和target tasks之間共享一些參數,或者共享模型hyperparameters(超參數)的先驗分佈。這樣把原來的模型遷移到新的domain時,也能夠達到不錯的精度。

(4)Relational-knowledge-transfer(關係遷移):能夠被稱爲基於關係知識的遷移學習。把類似的關係進行遷移,好比生物病毒傳播到計算機病毒傳播的遷移,好比師生關係到上司下屬關係的遷移。最近,統計關係學習技術主導了這一領域。

3. 小結

綜合第1小節和第2小節的內容,下圖展現了不一樣遷移學習分類中不一樣方法的使用狀況:

與生成對抗網絡GAN同樣,遷移學習一樣能夠在不少領域使用,同時,能夠與很其餘機器學習算法相結合,道理是相通的。

說到這裏,前面各類方法中的統計學習實現實在是太恐怖了,我只想接下來重點介紹一下深度遷移學習的內容,即深度學習+遷移學習

4. 「小王愛遷移」系列學習內容:含深度遷移學習!

本小節主要分享一下大佬的知乎專欄的學習內容,主要包括遷移學習領域經典的各大方法,用於輔助對上文的理解:

(1)遷移成分分析(TCA):Domain adaptation via transfer component analysis,2009-2011

主要思想是:屬於基於特徵的遷移學習方法。PCA是一個大矩陣進去,一個小矩陣出來,TCA是兩個大矩陣進去,兩個小矩陣出來。從學術角度講,TCA針對domain adaptation問題中,源域和目標域處於不一樣數據分佈時,將兩個領域的數據一塊兒映射到一個高維的再生核希爾伯特空間。在此空間中,最小化源和目標的數據距離,同時最大程度地保留它們各自的內部屬性。直觀地理解就是,在如今這個維度上很差最小化它們的距離,那麼就找個映射,在映射後的空間上讓它們最接近,那麼不就能夠進行分類了嗎?

主要步驟爲:輸入是兩個特徵矩陣,首先計算L和H矩陣,而後選擇一些經常使用的核函數進行映射(好比線性核、高斯核)計算K,接着求[公式]的前m個特徵值。而後,獲得的就是源域和目標域的降維後的數據,就能夠在上面用傳統機器學習方法了。

(2)測地線流式核方法(GFK):Geodesic flow kernel for unsupervised domain adaptation,2011-2012

SGF方法的主要思想:把source和target分別當作高維空間(Grassmann流形)中的兩個點,在這兩個點的測地線距離上取d箇中間點,而後依次鏈接起來。這樣,由source和target就構成了一條測地線的路徑。只須要找到合適的每一步的變換,就能從source變換到target了。

SGF方法的主要貢獻在於:提出了這種變換的計算及實現了相應的算法。可是它有很明顯的缺點:到底須要找幾個中間點?就是說這個參數d是無法估計的。

GFK方法解決了SGF的問題:

  • 如何肯定source和target路徑上中間點的個數。它經過提出一種kernel方法,利用路徑上的全部點的積分,把這個問題解決了。
  • 當有多個source的時候,咱們如何決定使用哪一個source跟target進行遷移?GFK提出Rank of Domain度量,度量出跟target最近的source來解決這個問題。

GFK方法有如下幾個步驟:選擇最優的子空間維度進行變換、構建測地線、計算測地線流式核、以及構建分類器。

(3)聯合分佈適配(JDA):Transfer feature learning with joint distribution adaptation,2013

主要思想是:屬於基於特徵的遷移學習方法。是一個機率分佈適配的方法,並且適配的是聯合機率。JDA方法同時適配兩個分佈,而後很是精巧地規到了一個優化目標裏。用弱分類器迭代,最後達到了很好的效果。

和TCA的主要區別有兩點:

  • 1)TCA是無監督的(邊緣分佈適配不須要label),JDA須要源域有label。
  • 2)TCA不須要迭代,JDA須要迭代。

-------------------------------------------------------------------------------------------

(4)在線遷移學習:A framework of online transfer learning,2010-2014

這是在線遷移學習研究的第一篇文章,做者分別對同構OTL和異構OTL提出了相應的方法,就是基於SVM以及集成學習進行組合。

基本思想是:先針對可用的源域數據創建一個分類器,而後,每來一個目標域數據,就對這個新數據創建一個分類器,而後與在源域上創建的這個分類器進行組合。

核心問題是:肯定源域和新數據分類器各自應該以怎麼樣的權重進行組合。

(5)負遷移:提出「傳遞遷移學習」的解決思路,2015-2017

若是兩個領域之間基本不類似,那麼就會大大損害遷移學習的效果。仍是拿騎自行車來講,拿騎自行車的經驗來學習開汽車,這顯然是不太可能的。由於自行車和汽車之間基本不存在什麼類似性。因此,這個任務基本上完不成。這時候,能夠說出現了負遷移(negative transfer)

產生負遷移的緣由主要有:

  • 源域和目標域壓根不類似,談何遷移?------數據問題
  • 源域和目標域是類似的,可是,遷移學習方法不夠好,沒找到可遷移的成分。 ------方法問題

所以,在實際應用中,找到合理的類似性,而且選擇或開發合理的遷移學習方法,可以避免負遷移現象。

隨着研究的深刻,已經有新的研究成果在逐漸克服負遷移的影響:

  • 楊強教授團隊2015在數據挖掘領悟頂級會議KDD上發表了傳遞遷移學習文章《Transitive transfer learning》,提出了傳遞遷移學習的思想。
  • 楊強教授團隊在2017年人工智能領域頂級會議AAAI上發表了遠領域遷移學習文章《Distant domain transfer learning》,能夠用人臉來識別飛機。

這些研究的意義在於,傳統遷移學習只有兩個領域足夠類似才能夠完成,而當兩個領域不類似時,傳遞遷移學習卻能夠利用處於這兩個領域之間的若干領域,將知識傳遞式的完成遷移。這個是頗有意義的工做,能夠視爲解決負遷移的有效思想和方法。

(6)開放集遷移學習:Open Set Domain Adaptation,2017

現有的domain adaptation都針對的是一個「封閉」的任務,就是說,source和target中的類別是徹底同樣的,source有幾類,target就有幾類。這些方法都只是理想狀態下的domain adaptation。而真正的環境中,source和target每每只會共享一些類的信息,而不是所有。

整個文章的解決思路大體是這樣的:

  • 利用source和target的關係,給target的樣本打上標籤
  • 並將source轉換到和target同一個空間中

二者依次迭代,直到收斂。做者根據target domain是否有label,把問題分紅了unsupervised和semi-supervised domain adaptation,而後分開解決。

(7)張量遷移學習:When Unsupervised Domain Adaptation Meets Tensor Representations,2017

現有的那些domain adaptation方法都只是針對向量(vector)的。而這種表示所帶來的問題就是,當把這些數據應用於高維度表示(如卷積)時,數據首先要通過向量化(vectorization)。此時,沒法精準完備地保留一些統計屬性。因此做者提出,不通過向量化來進行domain adaptation的方法,很天然地用到了tensor(張量)

(8)從經驗中學習遷移:Learning To Transfer,2018

提出了一個新穎的研究問題:相似於增量學習,如何最大限度地利用已有的遷移學習經驗,使得其對新問題的泛化能力很好?同時也能夠避免一出現新問題就從頭進行學習。

在解決問題的方法上,雖然用的都是老方法,可是可以想到新已有方法很好地應用於這個問題。引來的拓展思考:在深度網絡中如何持續學習?

(9)探祕任務遷移:Taskonomy: Disentangling Task Transfer Learning,2018

諸如物體識別、深度估計、邊緣檢測等一些常見的計算機視覺任務,彼此之間都或多或少地有一些聯繫。好比,咱們很清楚地知道曲面的法線和深度是相關的:它們是彼此的梯度。但與此同時,另外一些任務咱們卻不清楚,例如,一個房間中的關鍵點檢測和陰影是如何協同工做完成姿態估計的?

已有的相關工做均忽略了這些任務的關聯性,而是單獨地對各個任務進行建模。不利用任務之間的相關性,無疑是十分耗時和複雜的。即便是要在不一樣的任務之間進行遷移,因爲不一樣任務的不一樣任務空間之間的聯繫尚不清楚,也沒法實現簡單有效的任務遷移。

(10)選擇性對抗遷移學習:Partial Transfer Learning with Selective Adversarial Networks,2018

傳統的遷移學習問題情境都是,源域和目標域的類別空間同樣。在大數據時代,一般咱們會有大量的源域數據。這些源域數據比目標域數據,在類別上一般都是豐富的。好比基於ImageNet訓練的圖像分類器,必然是針對幾千個類別進行的分類。咱們實際用的時候,目標域每每只是其中的一部分類別。

所以,就要求相應的遷移學習方法可以對目標域,選擇類似的源域樣本(類別),同時也要避免負遷移。可是目標域一般是沒有標籤的,不知道和源域中哪一個類別更類似。做者指出這個問題叫作partial transfer learning(部分遷移學習)。

(11)聯邦遷移學習:2018

事實上,Google在2017年的一篇論文裏進行了去中心化的推薦系統建模研究。其核心是,手機在本地進行模型訓練,而後僅將模型更新的部分加密上傳到雲端,並與其餘用戶的進行整合。一些研究者也提出了CryptoDL深度學習框架、可擴展的加密深度方法、針對於邏輯迴歸方法的隱私保護等。可是,它們或只能針對於特定模型,或沒法處理不一樣分佈數據。

正是爲了解決上述這些挑戰,香港科技大學楊強教授和微衆銀行AI團隊,最近提出了聯邦遷移學習 (Federated Transfer Learning, FTL)。FTL將聯邦學習的概念加以推廣,強調在任何數據分佈、任何實體上,都可以進行協同建模學習。

這項工做在國內,是楊教授與微衆銀行AI團隊主導,目的是創建數據聯邦,以解決大數據沒法聚合的問題。在國外,目前是Google在進行相關的研究。兩者的區別:微衆銀行AI團隊的作法是,用戶維度部分重疊,特徵維度不重疊;而Google則是反過來:特徵重疊,用戶不重疊。

聯邦遷移學習 vs 遷移學習 vs 多任務學習

  • 多任務學習和FTL都注重多個任務的協同窗習,最終目標都是要把全部的模型變得更強。可是,多任務學習強調不一樣任務之間能夠共享訓練數據,破壞了隱私規則。而FTL則能夠在不共享隱私數據的狀況下,進行協同的訓練。
  • 遷移學習注重知識從一個源領域到另外一個目標領域的單向遷移。而這種單向的知識遷移,每每伴有必定的信息損失,由於一般只會關注遷移學習在目標領域上的效果,而忽略了在源領域上的效果。FTL則從目標上就很好地考慮了這一點,多個任務之間協同。
  • 遷移學習和多任務學習均可以解決模型和數據漂移的問題,這一點在FTL中也獲得了繼承。

-------------------------------------------------------------------------------------------

(12)深度神經網絡的可遷移性:How transferable are features in deep neural networks,2014

深度網絡的一個事實:前面幾層都學習到的是通用的特徵(general feature),後面的網絡更偏重於學習特定的特徵(specific feature)。

雖然該論文並無提出一個創新方法,可是經過實驗獲得瞭如下幾個結論,對之後的深度學習和深度遷移學習都有着很是高的指導意義:

  • 神經網絡的前3層基本都是general feature,進行遷移的效果會比較好。
  • 深度遷移網絡中加入fine-tune,效果會提高比較大,可能會比原網絡效果還好。
  • Fine-tune能夠比較好地克服數據之間的差別性。
  • 深度遷移網絡要比隨機初始化權重效果好。
  • 網絡層數的遷移能夠加速網絡的學習和優化。

(13)深度遷移學習:例如DaNN、DDC、DAN等,2014-2015

DaNN(Domain Adaptive Neural Network)的結構異常簡單,它僅由兩層神經元組成:特徵層和分類器層。做者的創新工做在於,在特徵層後加入了一項MMD適配層,用來計算源域和目標域的距離,並將其加入網絡的損失中進行訓練。因此,整個網絡的優化目標也相應地由兩部分構成:在有label的源域數據上的分類偏差,以及對兩個領域數據的判別偏差。

可是,因爲網絡太淺,表徵能力有限,故沒法頗有效地解決domain adaptation問題(通俗點說就是精度不高)。所以,後續的研究者大多數都基於其思想進行擴充,例如將淺層網絡改成更深層的AlexNet、ResNet、VGG等,例如將MMD換爲多核的MMD等。

DDC(Deep Domain Confusion)針對預訓練的AlexNet(8層)網絡,在第7層(也就是feature層,softmax的上一層)加入了MMD距離來減少source和target之間的差別。這個方法簡稱爲DDC。下圖是DDC的算法插圖。

從上圖能夠很明顯地看出,DDC的思想很是簡單:在原有的AlexNet網絡的基礎上,對網絡的fc7層(分類器前一層)後加一層適配層(adaptation layer)適配層的做用是,單獨考察網絡對源域和目標域的判別能力。若是這個判別能力不好,那麼咱們就認爲,網絡學到的特徵不足以將兩個領域數據區分開,於是有助於學習到對領域不敏感的特徵表示。

DAN(Deep Adaptation Network)是在DDC的基礎上發展起來的,它很好地解決了DDC的兩個問題:

  • 一是DDC只適配了一層網絡,可能仍是不夠,由於Jason的工做中已經明確指出不一樣層都是能夠遷移的,因此DAN就多適配幾層。
  • 二是DDC是用了單一核的MMD,單一固定的核可能不是最優的核。DAN用了多核的MMD(MK-MMD),效果比DDC更好。

DAN的創新點是多層適配和多核MMD。下圖是DAN的網絡結構示意圖。

DDC和DAN做爲深度遷移學習的表明性方法,充分利用了深度網絡的可遷移特性,而後又把統計學習中的MK-MMD距離引入,取得了很好的效果。DAN的做者在2017年又進一步對其進行了延伸,作出了Joint Adaptation Network (JAN),進一步把feature和label的聯合機率分佈考慮了進來,能夠視做以前JDA(joint distribution adaptation)的深度版。

(14)深度遷移學習文章解讀:Simultaneous Deep Transfer Across Domains and Tasks,2015

針對狀況:target的部分class有少許label,剩下的class無label。文章最大的創新點是:現有的方法都是domain classifier加上一個domain confusion,就是適配。做者提出這些是不夠的,因此提出了還要再加一個soft label loss。意思就是在source和target進行適配的時候,也要根據source的類別分佈狀況來進行調整target的。其實本意和JDA差很少。

網絡結構以下圖所示。網絡由AlexNet修改而來,前面的幾層都同樣,區別只是在第fc7層後面加入了一個domain classifier,也就是進行domain adaptation的一層,在fc8後計算網絡的loss和soft label的loss。就如今的研究成果看來,絕大多數也都是在深度網絡後加一些相關的loss層,以之來提升網絡的適配性。本質並無很大的創新性。

(15)深度遷移度量學習:Deep Transfer Metric Learning,2015

已有的metric learning研究大多數集中在傳統方法和深度方法中,它們已經取得了長足的進步。可是這些單純的度量研究,每每只是在數據分佈一致的狀況下有效。若是數據分佈發生了變化,已有的研究則不能很好地進行處理。所以,遷移學習就能夠做爲一種工具,綜合學習不一樣數據分佈下的度量,使得度量更穩定。

另外一方面,已有的遷移學習工做大多都是基於固定的距離,例如MMD,所以沒法學習到更好的距離表達。雖然近年來有一些遷移度量學習的工做,但它們都只考慮在數據層面將特徵分佈差別減少,而忽略了在源領域中的監督信息。於是,做者提出要在深度遷移網絡中對度量進行學習,有效利用源領域中的監督信息,學習到更泛化的距離表達。

(16)用於部分遷移學習的深度加權對抗網絡:Importance Weighted Adversarial Nets for Partial Domain Adaptation,2018

做者提出了一個深度加權對抗網絡,以下圖所示。網絡的主要部分是:分別做用於源域和目標域的兩個特徵提取器(分別叫作 [公式] [公式] ),以及兩個領域分類器(分別叫作 [公式][公式] )。第一個領域分類器用來篩選出源域中與目標域類似的那部分樣本(或者源域中與目標領域共享的那部分類別),第二個領域分類器進行正常的domain adaptation。

本文核心創新點是,從任務出發,直觀地構造出兩階段式對抗網絡,對源域中與目標域共享的類別樣本進行有效篩選。另外一個與已有工做不一樣的地方是,做者分別對源域和目標域採用了不一樣的特徵提取器。

(17)基於條件對抗網絡的領域自適應:Conditional Adversarial Domain Adaptation,2018

Domain adaptation問題一直以來是遷移學習和計算機視覺領域等的研究熱點。從傳統方法,到深度方法,再到最近的對抗方法,都在嘗試解決此問題。做者在本文中提出,如今的對抗方法面臨兩個挑戰:

  • 一是當數據特徵具備很是複雜的模態結構時,對抗方法沒法捕獲多模態的數據結構,容易形成負遷移。
  • 二是當上面的問題存在時,domain classifier就很容易出錯,因此形成遷移效果很差。

本文提出了基於條件對抗網絡的領域自適應方法,主要由Condition + Adversarial + Adaptation這三部分構成。進行condition的時候,用到了一個叫作multilinear map的數學工具,主要是來刻畫多個特徵和類別之間的關係。

(18)深度遷移學習用於時間序列分類:Transfer learning for time series classification,2018

基本方法與在圖像上進行深度遷移一致,先在一個源領域上進行pre-train,而後在目標領域上進行fine-tune。

網絡的結構以下圖所示。網絡由3個卷積層、1個全局池化層、和1個全鏈接層構成。使用全鏈接層的好處是,在進行不一樣輸入長度序列的fine-tune時,不須要再額外設計池內化層。

與圖像的區別就是,輸入由圖片換成了時間序列。注意到,圖片每每具備必定的通道數(如常見的R、G、B三通道)。時間序列也有通道,即不一樣維的時間序列數據。最簡單的便是1維序列,能夠認爲是1個通道。多維時間序列則能夠認爲是多個通道。

 (19)最大分類器差別的領域自適應:Maximum Classifier Discrepancy for Unsupervised Domain Adaptation,2018

方法的主要思想很是簡單:用源域訓練的網絡若是用到目標域上,確定由於目標域與源域的不一樣,效果也會有所不一樣。效果好的咱們就無論了,重點關注效果很差的,由於這才能體現出領域的差別性。爲了找到這些效果差的樣本,做者引入了兩個獨立的分類器 [公式][公式] ,用兩者的分歧表示樣本的置信度不高,須要從新訓練。

 (20)異構網絡的遷移:Learn What-Where to Transfer,2019

本文另闢蹊徑,從根源上研究不一樣架構的深度網絡如何進行遷移,並提供了行之有效的解決方案。

深度網絡都是對遷移學習最爲友好的學習架構。從最簡單的finetune(微調),到固定網絡的特徵提取層不變在倒數第二層加入可學習的距離,再到經過領域對抗的思想學習隱式分佈距離,深度遷移學習方法大行其道。在諸多圖像分類、分割檢測等任務上取得了不錯的效果。

縱觀這些方法的思路,大多均逃脫不開一個固有的模式:源域和目標域的網絡架構徹底相同,固定前若干層,微調高層或在高層中加入分佈適配距離。然而,在遷移模型變得愈來愈臃腫、特定數據集精度不斷攀升的同時,極少有人想過這樣一個問題:

  • 這種固定+微調的模式是不是惟一的遷移方法?
  • 若是2個網絡結構不一樣(好比),則上述模式直接失效,此時如何作遷移?

本文將這一思路具體表述爲2點:What to transferWhere to transfer

  • What部分解決網絡的可遷移性:源域中哪些層能夠遷移到目標域哪些層?
  • Where部分解決網絡遷移多少:源域中哪些層的知識遷移多少給目標域的哪些層?

簡單來講就是:學習源域網絡中哪些層的知識能夠遷移多少給目標域的哪些層。

5、深度遷移學習綜述

說到遷移學習,我想最時髦的就是深度遷移學習了。有了深度學習的加持,遷移學習在人工智能領域有着豐富的應用。

上一節的內容其實已經包含了深度遷移學習的不少方法,包括很是多的idea,本節就做爲輔助理解用吧!

本文參考了一篇綜述:A Survey on Deep Transfer Learning

這裏強推大佬的知乎專欄和guthub:https://github.com/jindongwang/transferlearning

1. 基本概念

深度遷移學習是經過深度神經網絡研究如何利用其餘領域的知識。隨着深度神經網絡在各個領域的普遍應用,大量的深度遷移學習方法被提出。包括離線/在線、增量學習、生成對抗、同構/異構等,能夠說是很是豐富。

2. 深度遷移學習的分類

本文將深度遷移學習分爲四類:基於實例的深度遷移學習、基於映射的深度遷移學習、基於網絡的深度遷移學習和基於對抗的深度遷移學習。

(1)基於實例的深度遷移學習。與遷移學習分類中的第一類是一致的,這裏再也不贅述。

(2)基於映射的深度遷移學習。與遷移學習分類中的第二類是一致的,這裏再也不贅述。

(3)基於網絡的深度遷移學習。將原領域中預先訓練好的部分網絡,包括其網絡結構和鏈接參數,從新利用,將其轉化爲用於目標領域的深度神經網絡的一部分。

(4)基於對抗的深度遷移學習。在生成對抗網絡 GAN 的啓發下,引入對抗性技術,尋找既適用於源域又適用於目標域的可遷移表達。

負遷移和可遷移性測度是傳統遷移學習中的重要問題。如何利用深度神經網絡在無監督或半監督學習中進行知識的遷移會受到愈來愈多的關注。

補充一點,元學習與遷移學習的區別聯繫是什麼?

  • 元學習關注的是一組任務T~p(T),元學習的目標是從T1,T2...中不斷學習,從中學到更通用的知識,從而具備適應新任務Ti的能力,它關注的是任務T到Ti這個過程。
  • 遷移學習一般只有一個源域A(固然能夠有多個),一個目標域B,目標是學習A到B的遷移,更關注的是A到B的這個過程。

固然,二者有不少重疊之處,要結合着看,互相補充,互相學習。

6、其餘概念介紹:知識蒸餾、增量學習

1. 知識蒸餾

知識蒸餾被普遍的用於模型壓縮和遷移學習當中。

知識蒸餾能夠將一個網絡的知識轉移到另外一個網絡,兩個網絡能夠是同構或者異構。作法是先訓練一個teacher網絡,而後使用這個teacher網絡的輸出和數據的真實標籤去訓練student網絡。

  • 能夠用來將網絡從大網絡轉化成一個小網絡,並保留接近於大網絡的性能。
  • 能夠將多個網絡的學到的知識轉移到一個網絡中,使得單個網絡的性能接近emsemble的結果。

2. 增量學習

主要關注的是災難性遺忘,平衡新知識與舊知識之間的關係。即如何在學習新知識的狀況下不忘記舊知識。

引用Robipolikar對增量學習算法的定義,即一個增量學習算法應同時具備如下特色:

  • 能夠重新數據中學習新知識
  • 之前已經處理過的數據不須要重複處理
  • 每次只有一個訓練觀測樣本被看到和學習
  • 學習新知識的同時能保持之前學習到的大部分知識
  • 一旦學習完成後訓練觀測樣本被丟棄
  • 學習系統沒有關於整個訓練樣本的先驗知識

在概念上,增量學習與遷移學習最大的區別就是對待舊知識的處理

  • 增量學習在學習新知識的同時須要儘量保持舊知識,無論它們類別相關仍是不相關的。
  • 遷移學習只是藉助舊知識來學習新知識,學習完成後只關注在新知識上的性能,再也不考慮在舊知識上的性能。

 

若是您對異常檢測感興趣,歡迎瀏覽個人另外一篇博客:異常檢測算法演變及學習筆記

若是您對智能推薦感興趣,歡迎瀏覽個人另外一篇博客:智能推薦算法演變及學習筆記 CTR預估模型演變及學習筆記

若是您對知識圖譜感興趣,歡迎瀏覽個人另外一篇博客:行業知識圖譜的構建及應用基於圖模型的智能推薦算法學習筆記

若是您對時間序列分析感興趣,歡迎瀏覽個人另外一篇博客:時間序列分析中預測類問題下的建模方案 深度學習中的序列模型演變及學習筆記

若是您對數據挖掘感興趣,歡迎瀏覽個人另外一篇博客:數據挖掘比賽/項目全流程介紹 機器學習中的聚類算法演變及學習筆記

若是您對人工智能算法感興趣,歡迎瀏覽個人另外一篇博客:人工智能新手入門學習路線和學習資源合集(含AI綜述/python/機器學習/深度學習/tensorflow)人工智能領域經常使用的開源框架和庫(含機器學習/深度學習/強化學習/知識圖譜/圖神經網絡)

若是你是計算機專業的應屆畢業生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的應屆生,你如何準備求職面試?

若是你是計算機專業的本科生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的本科生,你能夠選擇學習什麼?

若是你是計算機專業的研究生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的研究生,你能夠選擇學習什麼?

若是你對金融科技感興趣,歡迎瀏覽個人另外一篇博客:若是你想了解金融科技,不妨先了解金融科技有哪些可能?

以後博主將持續分享各大算法的學習思路和學習筆記:hello world: 個人博客寫做思路

相關文章
相關標籤/搜索