1. 程式人生 > >深度學習基礎(九)—— 稀疏編碼(sparse coding)

深度學習基礎(九)—— 稀疏編碼(sparse coding)

稀疏編碼演算法是一種無監督學習方法,它用來尋找一組“超完備”基向量來更高效地表示樣本資料。稀疏編碼演算法的目的就是找到一組基向量 (自然影象的小波基?)ϕi ,使得我們能將輸入向量 x 表示為這些基向量的線性組合:

x=i=1kaiϕi

所謂“超完備”基向量來表示輸入向量 xRn ,也就是說,k>n。超完備基的好處是它們能更有效地找出隱含在輸入資料內部的結構與模式(structure && pattern)。然而,對於超完備基來說,係數 ai 不再由輸入向量 x 唯一確定。

這裡,我們把“稀疏性”定義為:只有很少的幾個非零元素或只有很少的幾個遠大於零(顯著不為零)的元素。要求係數 a

i 是稀疏的意思就是說:對於一組輸入向量,我們只想有儘可能少的幾個係數遠大於零。選擇使用具有稀疏性的分量來表示我們的輸入資料是有原因的,因為絕大多數的感官資料,比如自然影象,可以被表示成少量基元素的疊加,在影象中這些基本元素可以是面或者線

我們把 m 個輸入向量的稀疏編碼代價函式定義為:

mina(j)i,ϕij=1mx(j)i=1ka(j)iϕi2+λi=1kS(a(j)i)
基向量(ϕi,i=1,2,,k)對於全部的輸入向量(訓練樣本都是一致的),係數 a(j)i 是與輸入向量 x(j)相對應的,由基(ϕi)和輸入向量(x(j))共同決定,通過其上下標(a
(j)i
)即可看出。通過最優化函式得到的 k個基向量(ϕi)以及全部的輸入樣本在該基下的表示 a(j)i

此處 S(.) 是一個稀疏代價函式,由它來對遠大於零的 ai 進行“懲罰”。

雖然“稀疏性”的最直接測度標準是 “L0” 正規化(S(ai)=1|ai|>0),但這是不可微的,通常很難進行優化。在實際中,稀疏代價函式 S(.) 的普遍選擇是1 正規化代價函式 S(ai)=|ai|1 及對數代價函式 S(ai)=log(1+a2i)

此外,很有可能因為減小 ai 而增加 ϕi 至很大的常量,使得稀疏懲罰變得非常小。為防止此類事件發生,我們將限制 ϕ2 要小於某常量 C 。包含了限制條件的稀疏編碼代價函式的完整形式如下:

mina(j)i,ϕij=1mx(j)i=1ka(j)iϕi2+λi=1kS(a

相關推薦

深度學習基礎—— 稀疏編碼sparse coding

稀疏編碼演算法是一種無監督學習方法,它用來尋找一組“超完備”基向量來更高效地表示樣本資料。稀疏編碼演算法的目的就是找到一組基向量 (自然影象的小波基?)ϕi ,使得我們能將輸入向量 x 表示為這些基向量的線性組合: x=∑i=1kaiϕi 所謂“超完備”基向

深度學習基礎--loss與啟用函式--CTCConnectionist temporal classification的loss

CTC(Connectionist temporal classification)的loss   用在online sequence。由於需要在分類結果中新增一個{no gesture}的類別,如果用在segmented video的分類時,需要去掉這類(因為視訊總屬於某個類)。

深度學習基礎-07】神經網路演算法Neural Network上--BP神經網路基礎理論

目錄 1 起源 2 多層向前神經網路(Multilayer Feed-Forward Neural Network) 3 設計神經網路  4 交叉驗證方法 5 BP神經網路演算法 1 起源 以人腦中的神經網路為啟發,出現過不同的版本 最著名的演算法是19

考察深度學習基礎知識的45道題目附答案

1   神經網路模型(Neural Network)因受人腦的啟發而得名。   神經網路由許多神經元(Neuron)組成,每個神經元接受一個輸入,處理它並給出一個輸出。這裡是一個真實的神經元的圖解表示。下列關於神經元的陳述中哪一個是正確的? 一個神經元只有

《神經網絡與深度學習 稀疏編碼

學習方法 深度學習 變體 復雜 鏈接 線性規劃 con images 叠代 轉自:http://www.cnblogs.com/caocan702/p/5666175.html 借鑒前人的文章鏈接 http://blog.csdn.net/zouxy09/article

深度學習基礎系列| Dropout VS Batch Normalization? 是時候放棄Dropout了 深度學習基礎系列| Batch Normalization

  Dropout是過去幾年非常流行的正則化技術,可有效防止過擬合的發生。但從深度學習的發展趨勢看,Batch Normalizaton(簡稱BN)正在逐步取代Dropout技術,特別是在卷積層。本文將首先引入Dropout的原理和實現,然後觀察現代深度模型Dropout的使用情況,並與BN進行實驗比對,從原

深度學習基礎系列| Dropout VS Batch Normalization? 是時候放棄Dropout了

  Dropout是過去幾年非常流行的正則化技術,可有效防止過擬合的發生。但從深度學習的發展趨勢看,Batch Normalizaton(簡稱BN)正在逐步取代Dropout技術,特別是在卷積層。本文將首先引入Dropout的原理和實現,然後觀察現代深度模型Dropout的使用情況,並與BN進行實驗比對,從原

20180813視頻筆記 深度學習基礎上篇1之必備基礎知識點 深度學習基礎上篇2神經網絡模型視頻筆記:深度學習基礎上篇3神經網絡案例實戰 和 深度學習基礎下篇

計算 概念 人臉識別 大量 png 技巧 表現 lex github 深度學習基礎上篇(3)神經網絡案例實戰 https://www.bilibili.com/video/av27935126/?p=1 第一課:開發環境的配置 Anaconda的安裝 庫的安裝 Windo

深度學習基礎系列| 常見的Top-1和Top-5有什麽區別?

ack [1] 隨機 排名 array gen spa imp 概率分布   在深度學習過程中,會經常看見各成熟網絡模型在ImageNet上的Top-1準確率和Top-5準確率的介紹,如下圖所示:   那Top-1 Accuracy和Top-5 Accuracy是指什

深度學習基礎系列| 權重初始化的選擇

初始化 附近 ace back width variable 目的 backend 概率分布   深層網絡需要一個優良的權重初始化方案,目的是降低發生梯度爆炸和梯度消失的風險。先解釋下梯度爆炸和梯度消失的原因,假設我們有如下前向傳播路徑:   a1 = w1x + b1  

轉載深度學習基礎1——感知器

原文地址:https://zybuluo.com/hanbingtao/note/581764 轉載在此的目的是自己做個筆記,日後好複習,如侵權請聯絡我!! 深度學習是什麼?   在人工智慧領域,有一個方法叫機器學習。在機器學習這個方法裡,有一類演算法叫神經網路。神經網路如下圖所示:   上圖的每

轉載深度學習基礎3——神經網路和反向傳播演算法

原文地址:https://www.zybuluo.com/hanbingtao/note/476663 轉載在此的目的是自己做個筆記,日後好複習,如侵權請聯絡我!!   在上一篇文章中,我們已經掌握了機器學習的基本套路,對模型、目標函式、優化演算法這些概念有了一定程度的理解,而且已經會訓練單個的感知器或者

轉載深度學習基礎7——遞迴神經網路

原文地址:https://zybuluo.com/hanbingtao/note/626300 轉載在此的目的是自己做個筆記,日後好複習,如侵權請聯絡我!!   在前面的文章中,我們介紹了迴圈神經網路,它可以用來處理包含序列結構的資訊。然而,除此之外,資訊往往還存在著諸如樹結構、圖結構等更復雜的結構。對於

深度學習基礎概念科普入門

1、人工智慧(AI)、機器學習(ML)和深度學習(DL): 人工智慧是終極目標,機器學習是實現人工智慧的一種分支,深度學習隸屬於人工神經網路體系,人工神經網路是基於統計的機器學習方法,傳統的神經網路是一種淺層機器學習,深度學習是傳統神經網路發展下的新一代神經網路。深度學習是通

深度學習基礎概念科普入門

1、深度學習(Deep Learning): 是建立在計算機神經網路理論和機器學習理論上的系統科學,它使用建立在複雜的機器結構上的多處理層,結合非線性轉換方法演算法,對高層複雜資料模型進行抽象。 深度學習有兩大要素: (1)資料表示:資料是機器學習

深度學習基礎系列十一| Keras中影象增強技術詳解

  在深度學習中,資料短缺是我們經常面臨的一個問題,雖然現在有不少公開資料集,但跟大公司掌握的海量資料集相比,數量上仍然偏少,而某些特定領域的資料採集更是非常困難。根據之前的學習可知,資料量少帶來的最直接影響就是過擬合。那有沒有辦法在現有少量資料基礎上,降低或解決過擬合問題呢?    

深度學習基礎系列| 一文看懂用kersa構建模型的各層含義掌握輸出尺寸和可訓練引數數量的計算方法

      我們在學習成熟神經模型時,如VGG、Inception、Resnet等,往往面臨的第一個問題便是這些模型的各層引數是如何設定的呢?另外,我們如果要設計自己的網路模型時,又該如何設定各層引數呢?如果模型引數設定出錯的話,其實模型也往往不能運行了。   所以,我們需要首

深度學習基礎系列| 深入理解交叉熵函式及其在tensorflow和keras中的實現

  在統計學中,損失函式是一種衡量損失和錯誤(這種損失與“錯誤地”估計有關,如費用或者裝置的損失)程度的函式。假設某樣本的實際輸出為a,而預計的輸出為y,則y與a之間存在偏差,深度學習的目的即是通過不斷地訓練迭代,使得a越來越接近y,即 a - y →0,而訓練的本質就是尋找損失函式最小值的過程。   常見的

深度學習基礎系列| Batch Normalization

  Batch Normalization(批量標準化,簡稱BN)是近些年來深度學習優化中一個重要的手段。BN能帶來如下優點: 加速訓練過程; 可以使用較大的學習率; 允許在深層網路中使用sigmoid這種易導致梯度消失的啟用函式; 具有輕微地正則化效果,以此可以降低dropout的使用。   但為什麼B

深度學習基礎系列| 偏差和方差

  當我們費勁周章不斷調參來訓練模型時,不可避免地會思考一系列問題,模型好壞的評判標準是什麼?改善模型的依據何在?何時停止訓練為佳?   要解決上述問題,我們需要引入偏差和方差這兩個概念,理解他們很重要,也是後續瞭解過擬合、正則化、提早終止訓練、資料增強等概念和方法的前提。 一、概念定義 偏差(bias)