本文轉自http://blog.csdn.net/zdy0_2004/article/details/45798223,雖然源貼也是轉載的,轉自http://www.cnblogs.com/xiaokangzi/p/4492466.html
本文在轉載時,加入了本人的一些勘誤和補充了缺失的代碼,另外,還有一點未搞明白的是,下面所附的源碼中使用的函數
binomial(1, mean[i]),目前尚未搞清楚其具體實現和源碼,雖然翻了一通Gibbs Sampling的理論,可仍沒搞出來這個函數的實現。如果有人明白,還望不吝賜教,在此先行謝過。
基於能量模型 (EBM) 基於能量模型將關聯到感興趣的變數每個配置的標量能量。學習修改的能量函數使他它的形狀具有最好的效能。例如,我們想的得到最好的參量擁有較低的能量。 EBM的機率模型定義通過能量函數的機率分布,如下所示: 規則化係數 Z 稱為分區函數和物理系統的能量模型相似。 一種基於能量模型可以學習通過隨機梯度下降的方法處理負對數似然訓練資料的。至於 logistic 迴歸分析我們將首次作為負對數似然定義對數似然然後損失函數。 使用隨機梯度 更新參數權值, 是模型中的各種參數 .
EBMs 的隱藏神經元
在很多情況下, 我們看不到部分的隱藏單元 , 或者我們要引入一些不可見的參量來增強模型的能力.所以我們考慮一些可見的神經元(依然表示為 ) 和 隱藏的部分 . 我們可以這樣寫我們的運算式:
(2)
在這種情況下,公式類似於 (1), 我們引入符號, 自由能量, 定義如下:
(3)
也可以這麼寫,
資料的負極大似然梯度表示為.
(4)
注意上面的梯度表示為兩個部分,涉及到正面的部分和負面的部分.正面和負面的不表示等式中每部分的符號,而是表示對模型中機率密度的影響. 第一部分增加訓練資料的機率 (通過降低相應的自由能量), 第二部分降低模型確定下降梯度通常是很困難的, 因為他涉及到計算. 這無非在所有配置下的期望 (符合由模型產生的機率分布 ) !
第一步是計算估計固定數量的模型樣本的期望. 用來表示負面部分梯度的表示為負粒子, 表示為 . 梯度可以謝偉:
(5)
我們想 根據 取樣元素 of (例如. 我們可以做 蒙特卡羅方法). 通過上面的公式, 我們幾乎可以使用隨機粒子演算法來學習EBM模型. 唯一缺少的就是如何提取這些負粒子T . 統計學上有許多抽樣方法, 馬爾可夫鏈蒙特卡羅方法特別適合用於模型如受限玻爾茲曼機 (RBM), 一種特殊的 EBM.