1. 程式人生 > >深度學習入門 --- 自我學習與半監督學習

深度學習入門 --- 自我學習與半監督學習

該章節參考ufldl

1.什麼是自我學習(Self-Taught Learning)與半監督學習

首先,什麼是半監督學習?當你手頭上擁有在大量未標註資料少量的已標註資料,那這種場景就可以說是半監督學習。自我學習和半監督學習的場景一樣,不過有個細節不一樣。

自學習(self-taught learning) 是更為一般的、更強大的學習方式,它不要求未標註資料 和已標註資料有同樣的分佈。而半監督學習不一樣,它要求未標註資料 和已標註資料服從同樣的分佈。下面通過例子解釋二者的區別。

假定有一個計算機視覺方面的任務,目標是區分汽車和摩托車影象;哪裡可以獲取大量的未標註資料呢?最簡單的方式可能是從網際網路上下載一些隨機的影象資料集,在這些資料上訓練出一個稀疏自編碼器,從中得到有用的特徵。這個例子裡,未標註資料對比已標註資料,是一個完全不同的資料分佈(未標註資料集中,或許其中一些影象包含汽車或者摩托車,但不是所有的影象都如此)。這種情形被稱為自學習。

相反,如果有大量的未標註影象資料,要麼是汽車影象,要麼是摩托車影象,僅僅是缺失了類標號(沒有標註每張圖片到底是汽車還是摩托車)。也可以用這些未標註資料來學習特徵。這種方式,即要求未標註樣本和帶標註樣本服從相同的分佈,有時候被稱為半監督學習。在實踐中,常常無法找到滿足這種要求的未標註資料(到哪裡找到一個每張影象不是汽車就是摩托車,只是丟失了類標號的影象資料庫?)因此,自學習在無標註資料集的特徵學習中應用更廣。

2.自我學習的模型

###2.1 資料預處理

首先對未標記資料和已標記資料進行相同的資料預處理。比如進行相同的歸一化。如果對未標記資料進行PCA,那麼PCA過程得到的特徵向量矩陣U需要保留下來。之後對於已標記資料,應用U

Tx 得到降維後的資料。或者,將已標記,未標記兩部分資料湊起來,一同進行PCA降維。

###2.2未標記資料訓練稀疏自編碼器

不懂稀疏自編碼器的同學,可以參考我這篇部落格

首先我們利用未標記資料訓練一個自編碼器。
這裡寫圖片描述

利用訓練得到的模型引數W(1),b(1),W(2),b(2),給定任意的輸入資料 x,可以計算隱藏單元的啟用量(activations)a。如前所述,相比原始輸入 x 來說,a 可能是一個更好的特徵描述。下圖的神經網路描述了特徵(啟用量 a)的計算。
這裡寫圖片描述

這實際上就是之前得到的稀疏自編碼器,在這裡去掉了最後一層。

###2.3 有標記資料特徵轉換,然後實現監督學習

假定有大小為 m

l 的已標註訓練集
(x(1)l,y(1)),(x(2)l,y(2)),(x(ml)l,y(ml))(下標 l 表示“帶類標”),我們可以為輸入資料找到更好的特徵描述。例如,可以將 x(1)l 輸入到稀疏自編碼器,得到隱藏單元啟用量 a(1)l。接下來,可以直接使用 a(1)l 來代替原始資料 x(1)l (“替代表示”,Replacement Representation)。也可以合二為一,使用新的向量 (x(1)l,a(1)l) 來代替原始資料 x(1)l (“級聯表示”,Concatenation Representation)。

經過變換後,訓練集就變成 (a(1)l,y(1)),(a(2)l,y(2)),(a(ml)l,y(ml))或者是((x(1)l,a(1)l),y(1)),((x(2)l,a(1)l),y(2)),,((x(ml)l,a(1)l),y(ml))(取決於使用 a(1)l替換 x(1)l還是將二者合併)。在實踐中,將 a(1)lx(1)l 合併通常表現的更好。但是考慮到記憶體和計算的成本,也可以使用替換操作。

最終,可以訓練出一個有監督學習演算法(例如 svm, logistic regression 等),得到一個判別函式對 y 值進行預測。預測過程如下:給定一個測試樣本xtest,重複之前的過程,將其送入稀疏自編碼器,得到 atest。然後將 atest (或者 (

相關推薦

深度學習入門 --- 自我學習監督學習

該章節參考ufldl 1.什麼是自我學習(Self-Taught Learning)與半監督學習 首先,什麼是半監督學習?當你手頭上擁有在大量未標註資料和少量的已標註資料,那這種場景就可以說是半監督學習。自我學習和半監督學習的場景一樣,不過有個細節不

概念:監督學習、無監督學習監督學習

(此為機器學習隨筆之一) 機器學習中的演算法,主要有兩種:監督學習;半監督學習。 1 、名詞 監督學習 : supervised learning 無監督學習 : unsupervised learning 半監督學習 : semi-supervise

機器學習深度學習系列連載: 第一部分 機器學習(十三)監督學習(semi-supervised learning)

在實際資料收集的過程中,帶標籤的資料遠遠少於未帶標籤的資料。 我們據需要用帶label 和不帶label的資料一起進行學習,我們稱作半監督學習。 Transductive learning:沒有標籤的資料是測試資料 Inductive learning:沒有標

[深度學習]監督學習、無監督學習之Autoencoders自編碼器(附程式碼)

目錄   自編碼器介紹 從零開始訓練自編碼器 驗證模型訓練結果 視覺化結果 載入預訓練模型 自編碼器介紹 自編碼器的結構簡單,由Encoder和Decoder組成,Encoder產生的Latent variables是潛在變數,它是Decoder的輸入。

[深度學習]監督學習、無監督學習之DCGAN深度卷積生成對抗網路(附程式碼)

論文全稱:《Generative Adversarial Nets》 論文地址:https://arxiv.org/pdf/1406.2661.pdf 論文全稱:《UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GEN

[深度學習]監督學習、無監督學習之Variational Auto-Encoder變分自編碼器(附程式碼)

論文全稱:《Auto-Encoding Variational Bayes》 論文地址:https://arxiv.org/pdf/1312.6114.pdf 論文程式碼: keras 版本:https://github.com/bojone/vae pytorch 版本:https

一文讀懂監督學習、無監督學習監督學習、強化學習這四種深度學習方式

 一般說來,訓練深度學習網路的方式主要有四種:監督、無監督、半監督和強化學習。在接下來的文章中,計算機視覺戰隊將逐個解釋這些方法背後所蘊含的理論知識。除此之外,計算機視覺戰隊將分享文獻中經常碰到的術語,並提供與數學相關的更多資源。 監督學習(Supervised

深度學習第一篇論文——監督學習Mean Teacher 的學習

   最近一個月剛接觸深度學習,導師給了一篇論文(mean teacher)讓我先理解然後跑論文裡面的程式碼,這個過程中我出現了很多問題,借這篇blog記錄下來,也是鼓勵自己接著學下去。Mean Teacher 的論文地址:https://arxiv.org/abs/1703

機器學習入門 - 1. 介紹決策樹(decision tree)

recursion machine learning programmming 機器學習(Machine Learning) 介紹與決策樹(Decision Tree)機器學習入門系列 是 個人學習過程中的一些記錄與心得。其主要以要點形式呈現,簡潔明了。1.什麽是機器學習?一個比較概括的理解是:

監督學習,無監督學習監督學習

思想 learn 尋找 很多 ear 目標 dsm 工作 變量 概念:監督學習、無監督學習與半監督學習 監督學習 : supervised learning 無監督學習 : unsupervised learning 半監督學習 : semi-supervised le

詳解使用EM算法的監督學習方法應用於樸素貝葉斯文本分類

post target 集中 之間 大量 ise 網上 tar 多項式 1.前言   對大量需要分類的文本數據進行標記是一項繁瑣、耗時的任務,而真實世界中,如互聯網上存在大量的未標註的數據,獲取這些是容易和廉價的。在下面的內容中,我們介紹使用半監督學習和EM算法,充分結合大

監督學習監督學習

半監督學習 類別 ear gist 神經網絡 有關 代表性 整數 是否 監督學習與無監督學習的區別_機器學習 最近發現很多人還是不能真正分清機器學習的學習方法,我以個人的愚見結合書本簡單說一下這個 機器學習中,可以根據學習任務的不同,分為監督學習(Supervised Le

監督學習、無監督學習監督學習

class tail detail 局部特征 連續 tails cannot 得到 ica 1.有監督學習:教計算機如何做事情。   對於機器學習來說,有監督學習就是訓練數據既有特征又有標簽,通過訓練,讓機器可以自己找到特征和標簽之間的聯系,在面對只有特征沒有標簽的數據時,

sklearn監督學習

摘要:半監督學習很重要,為什麼呢?因為人工標註資料成本太高,現在大家參加比賽的資料都是標註好的了,那麼如果老闆給你一份沒有標註的資料,而且有幾百萬條,讓你做個分類什麼的,你怎麼辦?不可能等標註好資料再去訓練模型吧,所以你得會半監督學習演算法。 不過我在這裡先打擊大家一下,用sklearn的包做不

偽標籤:教你玩轉無標籤資料的監督學習方法

對於每個機器學習專案而言,資料是基礎,是不可或缺的一部分。在本文中,作者將會展示一個名為偽標籤的簡單的半監督學習方法,它可以通過使用無標籤資料來提高機器學習模型的效能。 偽標籤 為了訓練機器學習模型,在監督學習中,資料必須是有標籤的。那這是否意味著無標籤的資料對於諸如分類和迴歸之類的監督任務

【IM】關於監督學習的理解

基於流形假設的半監督學習:假定輸入概率密度p(x)和條件概率密度p(y|x)之間具有某種關聯,估計p(x)輔助對p(y|x)的估計以提升精度。流形假設,即輸入資料只出現在某個流形上,輸出則在該流形上平滑變化。 拉普拉斯正則化是把輸入資料在流形上進行函式平滑的半監督學習演算法,結合拉普拉斯矩陣(L

監督學習演算法——標籤傳播演算法(LPA)與其擴充套件

標籤傳播演算法LPA與其擴充套件 1. 什麼是標籤傳播演算法? 標籤傳播演算法(Label Propagation Algorithm,LPA,2007)是基於圖的一種標籤演算法,也是社群發現(Community Detection)領域的一種經典方法。社群發現是為

監督學習演算法——ATDA(Asymmetric Tri-training for Unsupervised Domain Adaptation)

Asymmetric Tri-training for Unsupervised Domain Adaptation (2017 ICML)論文筆記 Abstract Tri-training(周志華,2005, 無監督學習領域最經典、知名度最高的做法)利用三個分類器按

python學習入門3識別符號表示式 2018.8.17

參照:python程式設計第三版 python programming:an introduction to computer science 第二章:編寫簡單程式 名稱 名稱是程式設計的重要組成部分。我們為模組命名,為函式命名,為值命名(為物件命名)。 從技術上,所有這些名

監督學習監督學習

機器學習的常用方法,主要分為有監督學習(supervised learning)和無監督學習(unsupervised learning)。簡單的歸納就是,是否有監督(supervised),就看輸入資料是否有標籤(label)。輸入資料有標籤,則為有監督學習;沒標籤則為無監督學習。 有監督