【生成模型】关于无监督生成模型,你必须知道的基础
大家好,小米粥銷聲匿跡了很長一段時間,今天又殺回來啦!這次主要是介紹下生成模型的相關內容,尤其是除了GAN之外的其他生成模型,另外應部分讀者要求,本系列內容增添了代碼講解,希望能使大家獲益,更希望大家多多指正錯誤、多提寶貴意見。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 作者&編輯 | 小米粥
1 監督學習與無監督學習
監督學習的任務是學習一個模型(也可以理解為一個映射函數),使模型能夠對于任意給定的輸入,相應地做一個好的預測輸出。模型的輸入為隨機變量 X ,輸出也為一隨機變量 Y 。每個具體的輸入都是一個實例,它由一個特征向量 x 表示,實例對應的輸出由向量 y 表示。我們將所有可能的輸入特征向量構成的集合稱為特征空間(輸入空間),將所有可能的輸出向量構成的集合稱為輸出空間,一般輸出空間的大小遠遠小于輸入空間。監督學習的本質是:學習從輸入到輸出的映射的統計規律。
我們列舉三種常見的監督學習任務:回歸、分類和標注,它們主要的區別在于變量的取值類型。(1)當輸入變量和輸出變量均為連續值變量時得到回歸任務,它主要用于學習輸入變量和輸出變量之間的數值映射關系,常見的回歸任務有價格預測、趨勢預測等,處理回歸任務時常用的機器學習模型有最小二乘回歸、非線性回歸等。(2)無論其輸入變量為離散值還是連續值,當輸出變量為有限個離散值時得到分類任務,分類任務是被人們討論和應用最廣泛的任務,它通常用于分門別類,常見的分類任務有圖片類別識別、用戶分類、文本分類等,處理分類任務時常用的機器學習模型有:k近鄰、樸素貝葉斯、決策樹、邏輯斯蒂回歸模型、支持向量機、神經網絡等。(3)當輸入變量和輸出變量均為變量序列時得到標注任務,它是分類問題的一種推廣,用于學習輸入序列和輸出序列的映射關系,典型的標注任務有自然語言處理中的詞性標注、信息抽取等,處理標注任務時常用的機器學習模型有隱馬爾科夫模型和條件隨機場等。
無監督學習和監督學習最大的區別就是標簽的有無。在監督學習中,訓練模型的任務是學習輸入特征到標簽的映射,而無監督學習中只有樣本的特征向量,故無監督學習的任務是對數據進行深入“挖掘”,其本質是學習數據中的統計規律或潛在結構。對于無監督學習的深入研究對深度學習的復興上起到了關鍵的作用。
我們列舉三種常見的無監督學習任務:降維、聚類、概率模型估計。(1)降維任務主要用于處理數據的高維度問題,真實數據的特征維度過大容易造成模型的擬合度與可用性降低,我們可以通過降維算法對高維度數據進行“壓縮”使之變成低維度向量,從而提高數據的可用性,常用的算法有主成分分析、因子分析、隱含狄利克雷分布等,包括早期的自編碼器也可用于數據降維。(2)聚類任務主要將樣本依據一定的規則進行類別分配,即通過衡量樣本之間的距離、密度等指標,將關系“近”的樣本聚為同一類,以此實現樣本的自動分類,常用的算法有層次聚類、k-means聚類、譜聚類等。(3)在概率模型估計任務中,對于一個可以生成樣本的概率模型,我們使用樣本對概率模型的結構、參數進行學習,使得概率模型生成的樣本與訓練樣本最相似。其中一種比較簡單的概率密度估計任務便是對隨機變量的概率密度函數進行學習,常用的算法有極大似然估計、對抗生成網絡、變分自編碼器等,這部分內容非常豐富,是本系列關注的核心內容。
監督學習相比于無監督學習除了擁有額外的標簽信息外,還需要有測試樣本。機器學習模型在訓練集中學習“規律”,然后對測試集使用這種“規律”來評價模型的效果,而無監督學習不需要測試樣本,整個過程只需要訓練集的參與。另外,無監督學習相比于監督學習一般擁有更好的拓展性,它在完成訓練目標的同時,通常還額外學習到了樣本的表示,我們可以將這些表示直接用于其他的任務。
半監督學習是介于監督學習和無監督學習的一種方式,即只有小部分訓練樣本帶有標簽信息,而大多數訓練樣本的標簽信息空缺。半監督學習包括直推和歸納兩類模式,直推半監督學習只對給定的訓練數據進行處理,它使用訓練數據集中有類別標簽和無類別標簽的樣本進行訓練,預測其中無標簽樣本的標簽信息;歸納半監督學習不僅預測訓練數據集中無標簽樣本的標簽,更主要的是預測未知樣本的標簽,兩者的區別在于需要預測標簽的樣本是否出現在訓練集中。半監督學習一般用于四類學習場景:半監督分類、半監督回歸、半監督聚類、半監督降維等。
2?判別模型與生成模型
本節我們在監督學習的范圍內介紹判別模型與生成模型。根據第一節,監督學習是學習一個模型,然后利用該模型對給定的輸入預測相應的輸出,我們可將模型寫成函數形式 Y=f(X) 或條件概率分布形式 p(Y|X) ,并根據條件概率分布的計算方式將其分為判別模型和生成模型。
在判別模型中,我們直接對p(Y|X)進行建模,它試圖描述在給定輸入特征X的情況下,標簽信息Y的分布,典型判別模型包括:?近鄰法、感知機、決策樹、邏輯回歸和條件隨機場等。判別模型對條件概率模型直接建模,無法反映訓練數據本身的概率特性,但是以分類問題為例,判別模型在尋找最優分類面的過程中,學習了不同類別數據之間的差異。另外,判別模型可以對數據進行各種程度上的抽象、降維,因此可以簡化學習問題,學習準確率更高。
在生成模型中,對數據特征 X 和標簽Y的聯合分布p(X,Y)進行建模,然后利用條件概率公式,即可計算 p(Y|X) ,如下所示:
實際中,我們通常將聯合分布變換成易于求解的形式:
其中,p(Y)為標簽信息Y的先驗概率,它描述了在對樣本特征X一無所知的情況下Y的概率分布, p(Y|X) 為標簽Y的后驗概率,它描述了在明確樣本特征X后Y的概率分布。典型生成模型有樸素貝葉斯方法和隱馬爾科夫模型等,在樸素貝葉斯方法中,我們通過訓練集學習到先驗概率分布p(Y)和條件概率分布 p(X|Y) ,則可得到聯合概率分布p(X,Y);在隱馬爾可夫模型中,我們通過訓練集學習到初始概率分布、狀態轉移概率矩陣和觀測概率矩陣,則得到了一個可以表示狀態序列與觀測序列聯合分布的馬爾可夫模型。
生成模型直接學習聯合分布,可以更好地表示數據的分布,更好反映同類數據的相似度。當樣本數量比較大時,生成模型往往可以更好地收斂到真實模型上,其收斂速度快。另外,生成模型可以處理含有隱變量的情況,而判別模型對此無能為力。生成模型也可以通過計算邊緣分布 ?而檢測某些異常值。但實踐中,生成模型計算開銷一般比較大,而且多數情況下其效果不如判別模型。
3 無監督生成模型
根據前兩節,生成模型意味著對輸入特征X和標簽信息Y的聯合分布進行建模,無監督學習意味著不存在標簽信息,則在無監督生成模型中,希望對輸入特征X的概率密度函數p(X)建模。假設存在一個由 N 個訓練樣本{x(1),x(2)...x(N)}構成的訓練集(N足夠大),則可以使用訓練集訓練一個概率模型p*(X) ,訓練完成后,概率模型p*(X)應接近于X的概率密度函數p(X),接著我們就可以從概率模型p*(X) 中采樣來“生成”樣本了。
生成模型的研究對人工智能技術發展具有重要的意義。它不僅可以產生逼真的圖像、視頻、文本或語音等,同時在圖像轉換、超分辨率圖像、目標檢測、文本轉圖像等領域也取得了滿意的效果,生成模型和強化學習、半監督學習、多模輸出問題等均有密切聯系,另外,生成模型的訓練和采樣是一個對我們表達和操作高維概率分布問題能力的非常好的測試。
無監督生成模型是近些年深度學習的熱門方向,但其已經擁有很長時間的發展。基于極大似然法的參數點估計可認為是最簡單的無監督生成模型,上世紀80年代Hinton已經使用玻爾茲曼機學習二值向量的任意概率分布。在神經網絡方法上,已經涌現出許多非常優秀的模型,例如深度信念網絡、神經自回歸網絡、深度玻爾茲曼機、流模型等,2013年提出的變分自編碼器模型和2014年提出的對抗生成網絡是里面最優秀的兩個代表。
生成模型內容豐富多彩,我們將其按照概率密度函數的處理方式分類,具體見下圖。我們將從最基本的極大似然估計方法開始,順著脈絡深入詳細地介紹一些具有代表性的模型,例如完全可見置信網絡(FVBN)、變分自編碼器(VAE)等顯式生成模型。
[1] 伊恩·古德費洛, 約書亞·本吉奧, 亞倫·庫維爾. 深度學習
[2]李航. 統計機器學習
總結
生成模型是一個非常有趣的領域,其中的內容也不只是對抗生成網絡,也包括變分自編碼器、流模型等,今天詳細定義了一下什么是無監督生成模型,使大家有一個初步印象。
個人知乎,歡迎關注
有三AI免費GAN群學習,可添加小米粥xiaozho
uguo94微信進群。
更多GAN的學習
知識星球是有三AI的付費內容社區,里面超過100種經典GAN模型的解讀,了解詳細請閱讀以下文章:
【雜談】有三AI知識星球指導手冊出爐!和公眾號相比又有哪些內容?
有三AI秋季劃GAN學習小組,可長期跟隨有三學習GAN相關的內容,并獲得及時指導,了解詳細請閱讀以下文章:
【雜談】如何讓2020年秋招CV項目能力更加硬核,可深入學習有三秋季劃4大領域32個方向
轉載文章請后臺聯系
侵權必究
往期精選
【GAN優化】GAN優化專欄上線,首談生成模型與GAN基礎
【GAN的優化】從KL和JS散度到fGAN
【GAN優化】詳解對偶與WGAN
【GAN優化】詳解SNGAN(頻譜歸一化GAN)
【GAN優化】一覽IPM框架下的各種GAN
【GAN優化】GAN優化專欄欄主小米粥自述,腳踏實地,莫問前程
【GAN優化】GAN訓練的幾個問題
【GAN優化】GAN訓練的小技巧
【GAN優化】從動力學視角看GAN是一種什么感覺?
【GAN優化】小批量判別器如何解決模式崩潰問題
【GAN優化】長文綜述解讀如何定量評價生成對抗網絡(GAN)
【技術綜述】有三說GANs(上)
【模型解讀】歷數GAN的5大基本結構
【百戰GAN】如何使用GAN拯救你的低分辨率老照片
【百戰GAN】二次元宅們,給自己做一個專屬動漫頭像可好!
【百戰GAN】羨慕別人的美妝?那就用GAN復制粘貼過來
【百戰GAN】GAN也可以拿來做圖像分割,看起來效果還不錯?
【百戰GAN】新手如何開始你的第一個生成對抗網絡(GAN)任務
【百戰GAN】自動增強圖像對比度和顏色美感,GAN如何做?
【直播回放】80分鐘剖析GAN如何從各個方向提升圖像的質量
【直播回放】60分鐘剖析GAN如何用于人臉的各種算法
總結
以上是生活随笔為你收集整理的【生成模型】关于无监督生成模型,你必须知道的基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【百战GAN】自动增强图像对比度和颜色美
- 下一篇: 【直播】如何学习计算机视觉各大方向,言有