【Scikit-Learn 中文文檔】神經網絡模型(無監督)- 無監督學習 - 用戶指南 | ApacheCN

中文文檔: http://sklearn.apachecn.org/cn/stable/modules/neural_networks_unsupervised.html

英文文檔: http://sklearn.apachecn.org/en/stable/modules/neural_networks_unsupervised.html

官方文檔: http://scikit-learn.org/stable/

GitHub: https://github.com/apachecn/scikit-learn-doc-zh(覺得不錯麻煩給個 Star,我們一直在努力)

貢獻者: https://github.com/apachecn/scikit-learn-doc-zh#貢獻者

關於我們: http://www.apachecn.org/organization/209.html




2.13. 神經網絡模型(無監督)

2.13.1. 限制波爾茲曼機

Restricted Boltzmann machines (RBM)(限制玻爾茲曼機)是基於概率模型的無監督非線性特徵學習器。當用 RBM 或 RBMs 中的層次結構提取的特徵在饋入線性分類器(如線性支持向量機或感知機)時通常會獲得良好的結果。

該模型對輸入的分佈作出假設。目前,scikit-learn 只提供了 BernoulliRBM,它假定輸入是二值的,或者是 0 到 1 之間的值,每個值都編碼特定特徵被激活的概率。

RBM 嘗試使用特定圖形模型最大化數據的可能性。所使用的參數學習算法( Stochastic Maximum Likelihood (隨機最大似然))要防止特徵表示偏離輸入數據,這使得它們能學習到有趣的特徵,但使得該模型對於小數據集不太有用且通常對於密度估計無效。

該方法隨着獨立RBM的權重初始化深層神經網絡而普及。這種方法被稱爲無監督的預訓練(unsupervised pre-training)。

../_images/sphx_glr_plot_rbm_logistic_classification_0011.png

2.13.1.1. 圖形模型和參數化

RBM 的圖形模型是一個全連接的二分圖(fully-connected bipartite graph)。

../_images/rbm_graph.png

節點是隨機變量,其狀態取決於它連接到的其他節點的狀態。 因此,爲了簡單起見,模型被參數化爲連接的權重以及每個可見和隱藏單元的一個偏置項。 我們用能量函數衡量聯合概率分佈的質量:

E(\mathbf{v}, \mathbf{h}) = \sum_i \sum_j w_{ij}v_ih_j + \sum_i b_iv_i  + \sum_j c_jh_j

在上面的公式中, \mathbf{b} 和 \mathbf{c} 分別是可見層和隱藏層的偏置向量。 模型的聯合概率是根據能量來定義的:

P(\mathbf{v}, \mathbf{h}) = \frac{e^{-E(\mathbf{v}, \mathbf{h})}}{Z}

“限制”是指模型的二分圖結構,它禁止隱藏單元之間或可見單元之間的直接交互。 這代表以下條件獨立性成立:

h_i \bot h_j | \mathbf{v} \\v_i \bot v_j | \mathbf{h}

二分圖結構允許使用高效的塊吉比斯採樣(block Gibbs sampling)進行推斷。

2.13.1.2. 伯努利限制玻爾茲曼機

在 BernoulliRBM 中,所有單位都是二進制隨機單元。 這意味着輸入數據應該是二進制的,或者在 0 和 1 之間的實數值表示可見單元活躍或不活躍的概率。 這是一個很好的字符識別模型,其中的關注點是哪些像素是活躍的,哪些不是。 對於自然場景的圖像,它不再適合,因爲背景,深度和相鄰像素的趨勢取相同的值。

每個單位的條件概率分佈由其接收的輸入的sigmoid函數給出:

P(v_i=1|\mathbf{h}) = \sigma(\sum_j w_{ij}h_j + b_i) \\P(h_i=1|\mathbf{v}) = \sigma(\sum_i w_{ij}v_i + c_j)

其中 \sigma 是Sigmoid函數:

\sigma(x) = \frac{1}{1 + e^{-x}}

2.13.1.3. 隨機最大似然學習

在 BernoulliRBM 函數中實現的學習算法被稱爲隨機最大似然(Stochastic Maximum Likelihood (SML))或持續對比發散(Persistent Contrastive Divergence (PCD))。由於數據的似然函數的形式,直接優化最大似然是不可行的:

\log P(v) = \log \sum_h e^{-E(v, h)} - \log \sum_{x, y} e^{-E(x, y)}

爲了簡單起見,上面的等式是針對單個訓練樣本所寫的。相對於權重的梯度由對應於上述的兩個項構成。根據它們的符號,它們通常被稱爲正梯度和負梯度。在這種實現中,按照小批量梯度(mini-batches of samples )對梯度進行計算。

在 maximizing the log-likelihood (最大化對數似然度)的情況下,正梯度使模型更傾向於與觀察到的訓練數據兼容的隱藏狀態。由於 RBM 的二分體結構,可以有效地計算。然而,負梯度是棘手的。其目標是降低模型偏好的聯合狀態的能量,從而使數據保持真實。可以通過馬爾可夫鏈蒙特卡羅近似,使用塊 Gibbs 採樣,通過迭代地對每個給定另一個的 v 和 h 進行採樣,直到鏈混合。以這種方式產生的樣品有時被稱爲幻想粒子。這是無效的,很難確定馬可夫鏈是否混合。

對比發散方法建議在經過少量迭代後停止鏈,k 通常爲 1.該方法快速且方差小,但樣本遠離模型分佈。

持續的對比分歧解決這個問題。而不是每次需要梯度啓動一個新的鏈,並且只執行一個 Gibbs 採樣步驟,在 PCD 中,我們保留了在每個權重更新之後更新的 k Gibbs 步長的多個鏈(幻想粒子)。這使得顆粒更徹底地探索空間.





中文文檔: http://sklearn.apachecn.org/cn/stable/modules/neural_networks_unsupervised.html

英文文檔: http://sklearn.apachecn.org/en/stable/modules/neural_networks_unsupervised.html

官方文檔: http://scikit-learn.org/stable/

GitHub: https://github.com/apachecn/scikit-learn-doc-zh(覺得不錯麻煩給個 Star,我們一直在努力)

貢獻者: https://github.com/apachecn/scikit-learn-doc-zh#貢獻者

關於我們: http://www.apachecn.org/organization/209.html

有興趣的們也可以和我們一起來維護,持續更新中 。。。

機器學習交流羣: 629470233


發佈了29 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章