1. 程式人生 > >Online Transfer Learning 線上遷移學習

Online Transfer Learning 線上遷移學習

簡介

現存的很多遷移學習演算法都是一種離線學習(Offline learning)演算法,即源域資料和目標域資料都是已經存在固定了的,然而在現實當中,經常會遇到線上資料的情況,即資料並不是固定存在的,而是一個或多個產生“流進”目標域中,比如工業上數控機床產生的資料是根據時間一條一條產生的,那麼在這種情況下很大程度上要求線上學習,這樣才能夠提供更好的實時性效果。

Online Transfer Learning(OTL)的應用場景:源域是已存在的現有帶標籤資料集,目標域則是一個樣本序列,分類器首先收的是目標域資料x2tx_2t,然後可以得到該資料的標籤y2ty_2t。線上學習的目標則是尋找一個表現好的預測函式,使得類別預測s

ign(ft(x2t))sign(f_t(x_2t))與真實標籤y2ty_2t儘可能的匹配。而線上遷移學習的挑戰則是如何有效地從源域中遷移知識到目標域中以提高線上學習能力,並且如何在同構(特徵空間相同)和異構(特徵空間不同)的情況下仍然表現好。Online Transfer Learning(OTL)也將從同構的情景和異構的情景分別分析。

同構域下的OTL

在同構的情景下,假設源域和目標域的特徵空間相同(X1=X2\mathcal{X}_1=\mathcal{X}_2),並且標籤空間也相同(Y1=Y2\mathcal{Y}_1=\mathcal{Y}_2

),這也是大部分遷移學習的應用場景,而在這樣的條件下最大的問題就是解決“概念漂移”問題。那麼如何得到線上學習的類別預測sign(ft(x))sign(f_t(x))呢?

與很多現有的遷移學習方法不同,在OTL中,作者分別構造了兩個預測函式hhff,其分別只在源域和目標域上進行,其中在源域上的h分類器為:

h(x)=s=1SαSy1SK1(x1s,x)h(x)=\sum_{s=1}^S \alpha_Sy_{1_S}\mathcal{K}_1(x_{1_s},x)

其中αS\alpha_S

為支援向量係數,(x1s,y1sx_{1_s},y_{1_s})為源域訓練資料集中的一組支援向量。K1(,)\mathcal{K}_1(\centerdot,\centerdot)為核函式。h(x)可以通過SVM獲得。

另外,f(x)f(x)則是則在目標域上通過線上方式進行的預測函式。ft(x)f_t(x)表示為第t次線上學習函式。通過結合兩個預測函式h(x)h(x)ft(x)f_t(x)對目標資料的預測,以得出sign(ft(x2t))sign(f_t(x_2t))

y=sign(w1,tΠ(h(xt))+w2,tΠ(ft(xt))12)y'=sign(w_{1,t}\Pi(h(x_t))+w_{2,t}\Pi(f_t(x_t))-\frac{1}{2})

其中w1,tw2,tw_{1,t}、w{2,t}為兩個權重引數,這個式子的思想就是通過權重引數來衡量兩個預測函式的預測可行度,而優化也主要是優化這兩個權重引數,儘可能讓兩個預測函式結果的結合與真實標籤相匹配。而Π(x)\Pi(x)則是一個標準化函式,比如Π(x)=max(0,min(1,x+12))\Pi(x)=max(0,min(1,\frac{x+1}{2}))。在OTL中,一般都將w1,tw2,tw_{1,t}、w{2,t}初始化為1/2。那如何優化權重引數呢?如下:

其中st(g)=exp(ηl(Π(g(xt)),Πyt))s_t(g)=exp(-\eta \mathcal{l}^{*} (\Pi(g(x_t)), \Pi{y_t})),g(x)為函式表示,用於表示h(x)或者f(x),l(z,y)\mathcal{l}^*(z,y)為損失函式設定為l(z,y)=(zy)2\mathcal{l}^*(z,y)=(z-y)^2。該優化公式可以大概理解為t+1時刻的權重由上一時刻的預測函式損失值佔全部損失值的比重來決定。

那麼同構域下的OTL演算法流程如下:

剛開始初始化權重為1/2,且目標域上的預測函式為0。分類器先收到目標域上的輸入資料為一個x2tx_{2t},接下來通過上面的y’可以得出預測標籤,然後收到資料的真實標籤,接著更新權值引數,然後根據真實標籤和f的預測標籤計算f的損失值,接著根據損失值更新f,當損失值<=0的時候,則演算法結束,還是很好理解的。

異構域下的OTL

異構域下的OTL和同構域下的OTL類似,因為條件變了,所以在上面方法的基礎上做了一些調整。異構和同構的不同之處在於,同構中源域和目標域的特徵空間(即資料的維度)是相同的,而在異構中,源域和目標域的特徵空間不同,這就給遷移學習增加了難度。在文中的異構場景中,作者假設源域的特徵空間為目標域特徵空間的一個子集,即XsXt\mathcal{X}_s \subset \mathcal{X}_t,因此,可以將目標域資料分為兩部分xt1x_t^1xt2x_t^2,其中xt1x_t^1的維度與源域對齊,而剩餘的那部分維度則是xt2x_t^2,即xt1Xsxt2Xs/Xtx_t^1 \in \mathcal{X}_s、x_t^2 \in \mathcal{X}_s / \mathcal{X}_t。然後上面同構中的預測函式y’變為了:

y=sign(12ft(1)(xt1)+ft(2)(xt2))y&#x27; = sign(\frac{1}{2}f_t^{(1)}(x_t^1)+f_t^{(2)}(x_t^2))

其中ft(1)f_t^{(1)}的初始化為h,ft(2)f_t^{(2)}的初始化為0,這和上面同構是不是很像了,只不過這裡沒有用權重引數來衡量兩個分類器的權重了,因為ft(1)f_t^{(1)}ft(2)f_t^{(2)}本身都是基於目標域資料進行訓練的,然後把同構中y’的h函式改為了ft(1)f_t^{(1)},而ft(1)f_t^{(1)}的初始化本身又是h,另外上面同構中只要優化f,而這裡除了優化ft(2)f_t^{(2)}外。還有優化ft(1)f_t^{(1)},最大的區別就是這啦。

我們來看一看演算法流程:

是不是和同構的演算法流程很類似?只不過上面同構只優化了

相關推薦

Online Transfer Learning 線上遷移學習

簡介 現存的很多遷移學習演算法都是一種離線學習(Offline learning)演算法,即源域資料和目標域資料都是已經存在固定了的,然而在現實當中,經常會遇到線上資料的情況,即資料並不是固定存在的,而是一個或多個產生“流進”目標域中,比如工業上數控機床產生的

Transfer Learning遷移學習

Transfer Learning In practice, very few people train an entire Convolutional Network from scratch (with random initialization), because it is relativ

Deep Learning遷移學習

遷移學習 遷移學習引出的原因:實際上學習模型的訓練是很依賴於1.資料集,包括資料本身以及資料的標註2.訓練的時間成本,很多模型很大引數很多,同時擁有足夠多的資料集,這樣對於模型本身的訓練也是很耗費時間和計算成本的 所謂遷移學習,就是將在某一個問題上已經訓練好了的模型(針對某個問題進行模型的訓

遷移學習(Transfer Learning)

style 多任務 部分 容易 完全 In bubuko 出現 很快 深度學習中在計算機視覺任務和自然語言處理任務中將預訓練的模型作為新模型的起點是一種常用的方法,通常這些預訓練的模型在開發神經網絡的時候已經消耗了巨大的時間資源和計算資源,遷移學習可以將已習得的強大技能遷移

遷移學習簡介(transfer learning

遷移學習簡介(transfer learning) https://blog.csdn.net/qq_33414271/article/details/78756366   一、什麼是遷移學習? 遷移學習將一個場景中學到的知識遷移到另一個場景中 達叔也說將來遷移學習也會

PyTorch之遷移學習Transfer Learning

TRANSFER LEARNING TUTORIAL Finetuning the convnet: Instead of random initializaion, we initialize the network with a pretrained network, l

基於keras.MNIST的遷移學習(Transfer Learning)

       遷移學習用來解決當某一任務A資料量不足時,通過另一相似任務B提供經驗(也就是從任務B遷移到任務A)的問題。此處的情形是,在MNIST資料集中,通過對前5個數字(0~4)的學習遷移到後5個數字(5~9)的任務(在一些paper中似乎也有teacher和studen

遷移學習TRANSFER LEARNING

在本教程中,您將學習如何使用遷移學習來培訓您的網路。 在實踐中,很少有人從頭開始訓練整個卷積網路(使用隨機初始化),因為擁有足夠大小的資料集是相對少見的。相反,在一個非常大的資料集上預先訓練一個卷積神經網路是很常見的(例如,ImageNet,它包含了120萬個有1000個類

遷移學習Transfer Learning

1、簡介 一句話概括:從以前的任務當中去學習知識(knowledge)或經驗,並應用於新的任務當中。 傳統的機器學習方法包括有監督學習、無監督學習和半監督學習,針對不完全資料,有監督和半監督學習還有相應的變形,如處理噪聲分類標籤問題以及代價敏感學習。然而,這些方法的大多數

遷移學習 Transfer Learning

from:http://transferlearning.xyz/ 關於遷移學習的所有資料,包括:介紹、綜述文章、最新文章、代表工作及其程式碼、常用資料集、碩博士論文、比賽等等。(可能是目前最全的遷移學習資料庫?) 歡迎一起貢獻! Everything about Transfer

Partial Transfer Learning 使用選擇性對抗網路的部分遷移學習

論文地址: http://openaccess.thecvf.com/content_cvpr_2018/papers/Cao_Partial_Transfer_Learning_CVPR_2018_paper.pdf 簡介 何為部分遷移學習呢,部分遷移的應用場景又是什麼呢?----

Distant Domain Transfer Learning遠域遷移學習--通過人臉識別飛機!

論文地址: http://www.ntu.edu.sg/home/sinnopan/publications/[AAAI17]Distant Domain Transfer Learning.pdf 從標題就可以看出,這是一個想法很牛掰的方法,當然實際也很牛掰。現今很多遷移學習方法都是假

淺說“遷移學習”(Transfer Learning

—— 原文釋出於本人的微信公眾號“大資料與人工智慧Lab”(BigdataAILab),歡迎關注。 什麼是遷移學習? 遷移學習(Transfer Learning)是一種機器學習方法,是把一個領域(即源領域)的知識,遷移到另外一個領域(即目標領域),使得目標領

《A Survey on Transfer Learning》中文版翻譯《遷移學習研究綜述》

首先感謝(http://blog.csdn.net/magic_leg/article/details/73957331)這篇部落格首次將《A Survey on Transfer Learning》這篇文章翻譯成中文版,給予我們很大的參考。但上述作者翻譯的內容有很多不準確的

遷移學習transfer learning)、多工學習(multi-task learning)、深度學習(deep learning)概念摘抄

本文在寫作過程中參考了諸多前輩的部落格、論文、筆記等。由於人數太多,在此不一一列出,若有侵權,敬請告知,方便我進行刪改,謝謝!!! 遷移學習(Transfer Learning) 遷移學習出現的背景如下:在一些新興領域很難得到我們需要的大量的訓練資料,另外,傳統的機器學習

深度學習模型-13 遷移學習Transfer Learning)技術概述

前一期介紹了表示學習Representation Learning,指出其中比較有趣的一個方向-共享表示學習。今天介紹共享表示學習最相關的機器學習領域-遷移學習(Transfer Learning)。文章內容主要整理自論文《A survey on transfer Le

線上字典學習(Online dictionary learning for sparse coding)-機器學習

稀疏編碼—將資料向量建模為基向量的線性組合,大量地應用於機器學習、神經科學、訊號處理及統計學。這篇文章主要學習基向量也就是字典使之適應特定資料,在聲音、影象處理領域訊號重構與分類是一種近來被證明非常有效的方法。這篇文章基於隨機近似,提出了一種新的,可以很容易推廣至大資料情形

遷移學習transfer learning)和微調(fine-tune)的幾點認識

遷移學習和微調的區別 什麼是遷移學習? 即一種學習對另一種學習的影響,它廣泛地存在於知識、技能、態度和行為規範的學習中。任何一種學習都要受到學習者已有知識經驗、技能、態度等的影響,只要有學習,就有

Microsoft Learning 官方線上免費學習平臺

為了讓更多不同背景的技術人員、架構師、IT管理員能接觸到微軟的前言技術的系統學習,微軟推出Microsoft Learning平臺,涉及Azure、PowerApps、Microsoft Flow、Dynamics 365以及Power BI等超過80多個小時的學習內容,採用分步式教程的方式,進

半監督遷移學習-Deep Asymmetric Transfer Network for Unbalanced Domain Adaptation

來源:AAAI2018 本文是提出半監督遷移學習框架DATN,解決源域和目標域資料不平衡的問題,屬於領域自適應中的第二種正規化:將目標域對映到源域 框架的主要思想是使用源域的豐富資料和標籤幫助解決目標域因資料稀少造成的效能差的問題。 主要分為兩步 第一步:通過自編碼器學習兩個域的特徵表示