# 2.13. 神經網絡模型(無監督)
校驗者:
[@不將就](https://github.com/apachecn/scikit-learn-doc-zh)
翻譯者:
[@夜神月](https://github.com/apachecn/scikit-learn-doc-zh)
## 2.13.1. 限制波爾茲曼機
Restricted Boltzmann machines (RBM)(限制玻爾茲曼機)是基于概率模型的無監督非線性特征學習器。當用 RBM 或 RBMs 中的層次結構提取的特征在饋入線性分類器(如線性支持向量機或感知機)時通常會獲得良好的結果。
該模型對輸入的分布作出假設。目前,scikit-learn 只提供了 [`BernoulliRBM`](generated/sklearn.neural_network.BernoulliRBM.html#sklearn.neural_network.BernoulliRBM "sklearn.neural_network.BernoulliRBM"),它假定輸入是二值的,或者是 0 到 1 之間的值,每個值都編碼特定特征被激活的概率。
RBM 嘗試使用特定圖形模型最大化數據的可能性。所使用的參數學習算法( [Stochastic Maximum Likelihood](#sml) (隨機最大似然))要防止特征表示偏離輸入數據,這使得它們能學習到有趣的特征,但使得該模型對于小數據集不太有用且通常對于密度估計無效。
該方法隨著獨立RBM的權重初始化深層神經網絡而普及。這種方法被稱為無監督的預訓練(unsupervised pre-training)。
[](../auto_examples/neural_networks/plot_rbm_logistic_classification.html)
示例:
- [Restricted Boltzmann Machine features for digit classification](../auto_examples/neural_networks/plot_rbm_logistic_classification.html#sphx-glr-auto-examples-neural-networks-plot-rbm-logistic-classification-py)
### 2.13.1.1. 圖形模型和參數化
RBM 的圖形模型是一個全連接的二分圖(fully-connected bipartite graph)。
節點是隨機變量,其狀態取決于它連接到的其他節點的狀態。 因此,為了簡單起見,模型被參數化為連接的權重以及每個可見和隱藏單元的一個偏置項。 我們用能量函數衡量聯合概率分布的質量:

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

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

二分圖結構允許使用高效的塊吉比斯采樣(block Gibbs sampling)進行推斷。
### 2.13.1.2. 伯努利限制玻爾茲曼機
在 [`BernoulliRBM`](generated/sklearn.neural_network.BernoulliRBM.html#sklearn.neural_network.BernoulliRBM "sklearn.neural_network.BernoulliRBM") 中,所有單位都是二進制隨機單元。 這意味著輸入數據應該是二進制的,或者在 0 和 1 之間的實數值表示可見單元活躍或不活躍的概率。 這是一個很好的字符識別模型,其中的關注點是哪些像素是活躍的,哪些不是。 對于自然場景的圖像,它不再適合,因為背景,深度和相鄰像素的趨勢取相同的值。
每個單位的條件概率分布由其接收的輸入的sigmoid函數給出:

其中  是Sigmoid函數:

### 2.13.1.3. 隨機最大似然學習
在 [`BernoulliRBM`](generated/sklearn.neural_network.BernoulliRBM.html#sklearn.neural_network.BernoulliRBM "sklearn.neural_network.BernoulliRBM") 函數中實現的學習算法被稱為隨機最大似然(Stochastic Maximum Likelihood (SML))或持續對比發散(Persistent Contrastive Divergence (PCD))。由于數據的似然函數的形式,直接優化最大似然是不可行的:

為了簡單起見,上面的等式是針對單個訓練樣本所寫的。相對于權重的梯度由對應于上述的兩個項構成。根據它們的符號,它們通常被稱為正梯度和負梯度。在這種實現中,按照小批量梯度(mini-batches of samples )對梯度進行計算。
在 maximizing the log-likelihood (最大化對數似然度)的情況下,正梯度使模型更傾向于與觀察到的訓練數據兼容的隱藏狀態。由于 RBM 的二分體結構,可以有效地計算。然而,負梯度是棘手的。其目標是降低模型偏好的聯合狀態的能量,從而使數據保持真實。可以通過馬爾可夫鏈蒙特卡羅近似,使用塊 Gibbs 采樣,通過迭代地對每個給定另一個的  和  進行采樣,直到鏈混合。以這種方式產生的樣品有時被稱為幻想粒子。這是無效的,很難確定馬可夫鏈是否混合。
對比發散方法建議在經過少量迭代后停止鏈, 通常為 1.該方法快速且方差小,但樣本遠離模型分布。
持續的對比分歧解決這個問題。而不是每次需要梯度啟動一個新的鏈,并且只執行一個 Gibbs 采樣步驟,在 PCD 中,我們保留了在每個權重更新之后更新的  Gibbs 步長的多個鏈(幻想粒子)。這使得顆粒更徹底地探索空間.
參考文獻:
- [“A fast learning algorithm for deep belief nets”](http://www.cs.toronto.edu/~hinton/absps/fastnc.pdf)G. Hinton, S. Osindero, Y.-W. Teh, 2006
- [“Training Restricted Boltzmann Machines using Approximations to the Likelihood Gradient”](http://www.cs.toronto.edu/~tijmen/pcd/pcd.pdf)T. Tieleman, 2008
- scikit-learn 0.19 中文文檔
- 用戶指南
- 1. 監督學習
- 1.1. 廣義線性模型
- 1.2. 線性和二次判別分析
- 1.3. 內核嶺回歸
- 1.4. 支持向量機
- 1.5. 隨機梯度下降
- 1.6. 最近鄰
- 1.7. 高斯過程
- 1.8. 交叉分解
- 1.9. 樸素貝葉斯
- 1.10. 決策樹
- 1.11. 集成方法
- 1.12. 多類和多標簽算法
- 1.13. 特征選擇
- 1.14. 半監督學習
- 1.15. 等式回歸
- 1.16. 概率校準
- 1.17. 神經網絡模型(有監督)
- 2. 無監督學習
- 2.1. 高斯混合模型
- 2.2. 流形學習
- 2.3. 聚類
- 2.4. 雙聚類
- 2.5. 分解成分中的信號(矩陣分解問題)
- 2.6. 協方差估計
- 2.7. 經驗協方差
- 2.8. 收斂協方差
- 2.9. 稀疏逆協方差
- 2.10. Robust 協方差估計
- 2.11. 新奇和異常值檢測
- 2.12. 密度估計
- 2.13. 神經網絡模型(無監督)
- 3. 模型選擇和評估
- 3.1. 交叉驗證:評估估算器的表現
- 3.2. 調整估計器的超參數
- 3.3. 模型評估: 量化預測的質量
- 3.4. 模型持久化
- 3.5. 驗證曲線: 繪制分數以評估模型
- 4. 數據集轉換
- 4.1. Pipeline(管道)和 FeatureUnion(特征聯合): 合并的評估器
- 4.2. 特征提取
- 4.3. 預處理數據
- 4.4. 無監督降維
- 4.5. 隨機投影
- 4.6. 內核近似
- 4.7. 成對的矩陣, 類別和核函數
- 4.8. 預測目標 (y) 的轉換
- 5. 數據集加載工具
- 6. 大規模計算的策略: 更大量的數據
- 7. 計算性能
- 教程
- 使用 scikit-learn 介紹機器學習
- 關于科學數據處理的統計學習教程
- 機器學習: scikit-learn 中的設置以及預估對象
- 監督學習:從高維觀察預測輸出變量
- 模型選擇:選擇估計量及其參數
- 無監督學習: 尋求數據表示
- 把它們放在一起
- 尋求幫助
- 處理文本數據
- 選擇正確的評估器(estimator)
- 外部資源,視頻和談話