无监督表示学习
表示学习的动机
- 直接使用原始特征,此时特征比较单一,需要进行非线性组合才能发挥其作用。
- 一些特征之间可能存在相关性。
- 并不是所有的特征都对预测有用。
- 特征中存在噪声。
- 特征纬度过高,会导致维度灾难。
主成分分析(回顾)
Def. 方差:描述一维变量偏离其均值的程度
\[ \sigma^{2} = \frac{1}{N} \sum_{i = 1}^{N} (X_i - \overline{X}) \]
Def. 协方差:描述两个变量偏离各自均值的程度(描述两个变量之间相关程度)
\[ \text{COV}(X, Y) = \frac{1}{N} \sum_{i = 1}^{N} (X_i - \overline{X})(Y_i - \overline{Y}) \]
只要 \(\text{COV}(X, Y) \neq 0\),则表明 \(x\) 和 \(y\) 之间存在相关性。
Def. 协方差矩阵:对于多维变量,例如:\(x\),\(y\),\(z\),其协方差矩阵表示为
\[ C = \begin{bmatrix} \text{COV}(X, X) &\text{COV}(X, Y) &\text{COV}(X, Z) \\ \text{COV}(Y, X) &\text{COV}(Y, Y) &\text{COV}(Y, Z) \\ \text{COV}(Z, X) &\text{COV}(Y, Z) &\text{COV}(Z, Z) \end{bmatrix} \]
主对角线上为 \(x\),\(y\),\(z\) 各自的方差;显然,协方差矩阵是一个对称矩阵。
对于正交属性空间中的样本点,如何用一个超平面对所有样本进行恰当的表达?容易想到,若存在这样的超平面,那么它大概应具有这样的性质:
- 最近重构性:样本点到这个超平面的距离都足够近。
- 最大可分性:样本点在这个超平面上的投影能尽可能分开。
基于最近重构性和最大可分性,能分别得到主成分分析的两种等价推导。
基于最近重构性的主成分分析.
对样本进行中心化(\(\sum\limits_{i} x_i = 0\)),再假定投影变换后得到的新坐标系为 \(\{w_1, w_2, \cdots, w_d\}\),其中 \(w_i\) 是标准正交基向量,即
\[ ||w_i||_2 = 1, \quad w_i^Tw_j = 0 (i \neq j) \]
若丢弃新坐标系中的部分坐标,即将维度降到 \(d' < d\),则样本点在低维坐标系中的投影 \(z_i = (z_{i1}, z_{i2}, \cdots, z_{id'})\),\(z_{ij} = w_{j}^{T} x_{i}\),则基于 \(z_{i}\) 重构 \(x_{i}\):
\[ \hat{x_i} = \sum_{j = 1}^{d'} z_{ij} w_{j} \]
考虑整个训练集,原样本点 \(x_i\) 与基于投影重构的样本点 \(\hat{x_i}\) 之间的距离为
\[ \sum_{i = 1}^{m} \biggl|\biggl| \sum_{j = 1}^{d'} z_{ij}w_j - x_i \biggr|\biggr|_2^2 = \sum_{i = 1}^{m} z_{i}^{T}z_{i} - 2 \sum_{i = 1}^{m} z_{i}^{T} W^T x_{i} + \text{const} \\ \propto -\text{tr}\bigg(W^T \bigg(\sum_{i = 1}^{m} x_{i}x_{i}^{T}\bigg)W\bigg) \]
\(m\) 表示样本数;\(\text{tr}\) 表示矩阵的迹。
根据最近重构性最小化上式。考虑到 \(w_{j}\) 是标准正交基,\(\sum\limits_{i} x_{i} x_{i}^{T}\) 是协方差矩阵,优化目标为:
\[ \begin{aligned} \min_{W} \quad &-\text{tr}(W^TXX^TW) \\ \text{s.t.} \quad &W^TW = I \end{aligned} \]
基于最大可分性的主成分分析.
- 样本点 \(x_i\) 在新空间中超平面上的投影是 \(w^{T}x_{i}\),若所有样本点的投影尽可能分卡,则应该使得投影后样本点的方差最大化。投影后样本点的方差是 \(\sum\limits_{i} w^{T}x_{i}x_{i}^{T}w\)。于是,我们得到和基于最近重构性的主成分分析相同的最优化问题。
Algorithm - PCA.
- 输入:样本集 \(D = \{x_1, x_2, \cdots, x_m\}\),低维空间维数 \(d'\)。
- 过程:
- 对所有样本进行中心化:\(x_{i} \leftarrow x_{i} - \frac{1}{m} \sum\limits_{i = 1}^{m}x_{i}\);
- 计算样本的协方差矩阵 \(XX^{T}\);
- 对协方差矩阵 \(XX^{T}\) 做特征值分解;
- 取最大的 \(d'\) 个特征值所对应的特征向量 \(w_1\),\(w_2\),\(\cdots\),\(w_{d'}\);
- 输出:投影矩阵 \(W = (w_1, w_2, \cdots, w_{d'})\)。
从重构的角度设置重构阈值,例如 \(t = 95\%\),选取使下式成立的最小 \(d'\)
\[ \frac{\sum\limits_{i = 1}^{d'} \lambda_{i}}{\sum\limits_{i = 1}^{d} \lambda_i} \geq t \]
自编码器
自编码器是一种采用无监督方式进行特征学习的神经网络。基本思想:通过一个编码器对输入进行编码,令解码器解码得到的信号与输入信号尽可能一致,即:重构误差最小。
- 网络结构:可以是任意一种网络结构,只需要保证:输入形状等于输出形状。
- 误差函数:常用均方误差,有时也用交叉熵损失(此时输入 \(x_i \in (0, 1)\))。
- 优化方法:采用误差反向传播进行模型求解。
一般而言,隐藏层神经元数量小于输入层神经元数量。
稀疏自编码器
基本思想:用尽可能少的神经元来表示原始数据 \(x\)(也就是隐藏层神经元的激活值尽可能多的为 \(0\))。
令 \(a_j^{(2)}\) 表示自动编码器中第 \(j\) 个隐节点的激活函数,则 \(a_j^{(2)}(x)\) 表示对于特定的输入 \(x\),第 \(j\) 个隐节点的激活值。
第 \(j\) 个隐节点的平均激活为
\[ \hat{\rho}_{j} = \frac{1}{m} \sum_{i = 1}^{m} \big[a_{j}^{(2)}(x_i)\big] \]
增加约束:\(\hat{\rho}_j = \rho\),其中 \(\rho\) 是一个稀疏参数,通常设为一个接近于 \(0\) 的小数。
等效于:加入一个惩罚项,使得 \(\hat{\rho}_j\) 不至于偏离 \(\rho\) 太远。
\[ \sum_{j = 1}^{s_2} \rho \log \frac{\rho}{\hat{\rho}_j} + (1 - \rho) \log \frac{1 - \rho}{1 - \hat{\rho}_j} \quad \text{OR} \quad \sum_{j = 1}^{s_2} \text{KL}(\rho || \hat{\rho}_j) \]
总体损失函数为:
\[ J_{\text{sparse}}(W, b) = J(W, b) + \beta \sum_{j = 1}^{s_2} \text{KL}(\rho || \hat{\rho}_j) \]
在目标函数 \(J_{\text{sparse}}(W, b)\) 上采用梯度下降法求解模型参数。
基于稀疏自编码器的 k-Sparse AutoEncoders。此编码器的稀疏策略是:找到 \(z\) 中前 \(k\) 个最大激活,而令其它的均为 \(0\)。误差仅通过 \(z\) 中的这 \(k\) 个被激活的节点传播。
手写书字体识别任务中,不同 \(k\) 值的可视化结果不同,随着 \(k\) 的减小,网络趋于学习一个关于输入数字体的更完整的表示。
去噪自编码器
基本思想:
- 输入中加入扰动后,更高层的表示应该保持更好的稳定性和鲁棒性。
- 通过降噪表示可以抽出关于输入信号更有用的信息。
加噪方式:高斯噪声和二值掩码噪声(需要注意限制加噪后的数值范围)。
堆叠自编码器
分阶段训练多个自编码器
深度自编码器
整体训练
受限玻尔兹曼机
Def. 概率无向图模型
- 输入层的神经元之间以及隐藏层的神经元之间均存在连接。
- 输入层和输出层神经元均为二值随机变量。
概率无向图模型是一种基于能量的模型,能量越小,模型越稳定。
\[ E = - \bigg(\sum_{i < j} w_{ij} s_{i} s_{j} + \sum_{i} \theta_{i} s_{i}\bigg) \]
其中 \(s\) 表示节点,\(\theta\) 表示偏置。
而受限玻尔兹曼机(RBM)是只有两层的概率无向图模型,但与概率无向图的性质有些不同。RBM 只有可见层(visible layer)和隐藏层(hidden layer)之间有连接,同一层之间没有连接。
能量函数:
\[ E(\mathbf{v}, \mathbf{h}) = - \sum_{i, j} v_i W_{ij} h_{j} - \sum_{i} c_i v_i - \sum_{j} b_{j} h_{j} \]
其中,\(c\),\(b\) 表示偏置。
由概率分布和能量函数的定义
\[ \begin{aligned} E(\mathbf{v}, \mathbf{h}) &= - \sum_{i, j} v_i W_{ij} h_{j} - \sum_{i} c_i v_i - \sum_{j} b_{j} h_{j} \\ p(\mathbf{v}, \mathbf{h}) &= \frac{\exp (-E(\mathbf{v}, \mathbf{h}))}{Z} \\ p(\mathbf{v}) &= \frac{\sum_{\mathbf{h}} \exp (-E(\mathbf{v}, \mathbf{h}))}{Z} \\ Z &= \sum_{\mathbf{v}, \mathbf{h}} \exp (-E(\mathbf{v}, \mathbf{h})) \end{aligned} \]
从而可以推出条件概率公式:
\[ \begin{aligned} p(h_{j} = 1 | \mathbf{v}) &= \frac{\exp(-E(\mathbf{v}, h_{j} = 1))}{\exp(-E(\mathbf{v}, h_{j} = 0)) + \exp(-E(\mathbf{v}, h_{j} = 1))} \\ &= \frac{\exp(\sum_{i} v_{i} W_{ij} + \sum_{i} c_{i}v_{i} + b_{j})}{\exp(\sum_{i}c_{i} v_{i}) + \exp(\sum_{i} v_{i} W_{ij} + \sum_{i} c_{i}v_{i} + b_{j})} \\ &= \frac{\exp(\sum_{i} v_{i} W_{ij} + b_{j})}{1 + \exp(\sum_{i} v_{i} W_{ij} + b_{j})} = s\bigg(\sum_{i} v_{i} W_{ij} + b_{j}\bigg) \end{aligned} \]
其中 \(s\) 是 sigmoid 函数。同理可得:
\[ p(v_{i} = 1 | \mathbf{h}) = s\bigg(c_{i} + \sum_{j} W_{ij} h_{j}\bigg) \]
接下来,我们最大化训练集上的对数似然,即最大化 \(p(\mathbf{v})\)。对 \(p(\mathbf{v})\) 的对数关于参数的偏导数可以得到:
\[ \begin{aligned} \frac{\partial \log p(\mathbf{v})}{\partial \theta} &= \frac{\partial (\log \sum_{\mathbf{h}} \exp(-E(\mathbf{v}, \mathbf{h})) - \log Z)}{\partial \theta} \\ &= \frac{1}{\sum_{\mathbf{h}}\exp(-E(\mathbf{v}, \mathbf{h}))} \cdot -\exp(-E(\mathbf{v}, \mathbf{h})) \cdot \frac{\partial E(\mathbf{v}, \mathbf{h})}{\partial \theta} - \frac{1}{Z} \cdot -\exp(-E(\mathbf{v}, \mathbf{h})) \cdot \frac{\partial E(\mathbf{v}, \mathbf{h})}{\partial \theta} \\ &= - \langle \frac{\partial E(\mathbf{v}, \mathbf{h})}{\partial \theta} \rangle_{p(\mathbf{h} | \mathbf{v})} + \langle \frac{\partial E(\mathbf{v}, \mathbf{h})}{\partial \theta} \rangle_{p(\mathbf{v}, \mathbf{h})} \end{aligned} \]
\(\langle \rangle_{p}\) 表示对概率分布 \(p\) 下的期望。
其中第一项 \(p(\mathbf{h} | \mathbf{v})\) 代表在输入数据条件下表示层的概率分布,比较容易计算,而第二项 \(p(\mathbf{v}, \mathbf{h})\) 由于归一化因子的存在,无法有效的计算该分布。
Algorithm - CD-k. RBM 的对称结构和其中神经元节点状态的条件独立性,使得可以通过若干步吉布斯采样来计算第二项的期望。在完成k步抽样之后,就可以近似计算模型参数的梯度,具体如下:
\[ \begin{aligned} \delta W_{ij} &= v_{i}^0 h_{j}^0 - v_{i}^k h_{j}^k \\ \delta c_{i} &= v_{i}^0 - v_{i}^{k} \\ \delta b_{j} &= h_{j}^0 - h_{j}^k \end{aligned} \]
Gaussian RBM
使用高斯分布来建模输入层
\[ \begin{aligned} E(\mathbf{v}, \mathbf{h}) &= \frac{1}{2} \sum_{i} \frac{(v_i - c_i)^2}{2\sigma_i^2} - \sum_{i, j} \frac{v_i}{\sigma_{i}} W_{ij} h_{j} - \sum_{i} c_{i} v_{i} - \sum_{j} b_{j} h_{j} \\ p(h_{j} = 1 | \mathbf{v}) &= s(b_{j} + \sum_{i} \frac{v_{i}}{\sigma_{i}} W_{ij}) \\ p(v_{i} = 1 | \mathbf{h}) &= \mathcal{N}(c_{i} + \sigma_{i} \sum_{j} W_{ij} h_{j}, \sigma_{i}^{2}) \end{aligned} \]