Representation Learning 表征学习
机器学习算法的与否可行不仅仅取决于算法的正确选用,也取决于数据的质量和有效的数据表示(representation)。针对不同类型的数据(text,image,video),错误的表示方式可能会导致有效信息的缺失或是暴露,这决定了算法能否有效地解决问题。表征学习的目的是对复杂的原始数据化繁为简,把原始数据的无效的或者冗余的信息剔除,把有效信息进行提炼,形成特征(feature)。特征提取可以人为地手工处理,也可以借助特定的算法自动提取。Roughly Speaking, 前者(手动处理)称为特征工程,后者(借助算法)为表征学习(Representation Learning)。如果数据量较小,我们可以根据自身的经验和先验知识,人为地设计出合适的特征,用作下游的任务,比如分类;但数据量很大且复杂时,则需要依赖自动化的表征学习。
注意,这之后的章节内容都可能比较混乱/缺失,我尽量会把算法的关键思想说清,但是公式推导会有点跳步,请尽量搭配对每一章应参考资料查阅。
- 表征学习:https://zhuanlan.zhihu.com/p/136554341
- 流形学习:https://scikit-learn.org/stable/modules/manifold.htm
- 稀疏表示,特征提取,特征选择:西瓜书
- van der Maaten, Laurens & Postma, Eric & Herik, H… (2007). Dimensionality Reduction: A Comparative Review. Journal of Machine Learning Research - JMLR. 10.
- Anowar, Farzana & Sadaoui, Samira & Selim, Bassant. (2021). Conceptual and empirical comparison of dimensionality reduction algorithms (PCA, KPCA, LDA, MDS, SVD, LLE, ISOMAP, LE, ICA, t-SNE). Computer Science Review. 40. 10.1016/j.cosrev.2021.100378.
Representation Learning要做的一般有:
- Dimension Reduction 降维
- Manifold Learning 流式学习
- Sparse Representation 稀疏表示
目的:
- 减少算法训练/学习的开销,避免维数灾难
- 让数据更好可视化,更好理解与Debug
- 降低数据存储
The curse of dimensionality 维数灾难
在kNN上,我们发现任意测试样本 x x x 附近任意小的 δ δ δ 距离范围内,总能找到一个训练样本,即训练样本的采样密度足够大,或称为“密采样”(dense sample)。然而,这个假设在现实任务中通常很难满足,例如 δ = 0.001 δ=0.001 δ=0.001,仅考虑单个属性,则仅需1000个样本点平均分布在归一化后的属性取值范围内,即可使得任意测试样本在其附近0.001距离范围内总能找到一个训练样本。此时最近邻分类器的错误率不超过贝叶斯最优分类器的错误率的两倍。然而,这仅是属性维数为1的情形。若有更多的属性,则情况会发生显著变化。例如假定属性维数为20,若要求样本满足密采样条件,则至少需要 100 0 20 = 1 0 60 1000^{20}=10^{60} 100020=1060个样本。现实应用中属性维数经常成千上万,要满足密采样条件约为所需的样本数目是无法达到的天文数字。此外,许多学习方法都涉及距离计算,而高维空间会给距离计算带来很大的麻烦,当维数很高时甚至连计算内积都不再容易。
事实上,在高位情形下出现的数据样本稀疏、距离计算困难问题,是所有机器学习方法的共通障碍——维数灾难。
Feature Extraction vs Feature Selection 特征提取 vs 特征选择
Feature Extraction are ways to transform/project the original features in the data into new features which have some advantage such as
- Lower Dimensionality
- Better description of the variance in the data
- Better ability to distinguish data points or clusters of data points
Whereas Feature Selection is attempt to find a subset of the original features which satisfy some criteria. Ideally the selected subset includes the significant features and eliminates irrelevant and redundant features.
Methods of Feature Selection
- Feature Ranking
- Filter Approach, 如 Relevant Features (Relief)
- Wrapper approach, 如 Las Vegas Wrapper (LVW)
- Embedding approach
This Chapter is focus on Feature Extraction, though feature selection is needed to learned as when comes to some data analysis tasks.
特征提取的方式
- 线性方法:
- Unsupervised
- PCA
- ICA
- Supervised
- LDA
- Unsupervised
- 非线性方法:
- Global (preserve global properties)
- MDS
- Isomap
- Kernel PCA
- Local (preserve properties within local neighborhood)
- LLE
- Global + Local
- SNE
- Global (preserve global properties)
简单比较他们的性质:
Principal Component Analysis 主成分分析
参考资料:
- 西瓜书 10.3
- 拉格朗日函数:https://math.stackexchange.com/questions/1104376/how-to-set-up-lagrangian-optimization-with-matrix-constrains
- Unsupervised and Supervised Principal Component Analysis: Tutorial
- 花书 2.7, 2.8
- M. Turk and A. Pentland, “Eigenfaces for recognition,” Journal of cognitive neuroscience, vol. 3, no. 1, pp. 71–86, 1991.
- M. A. Turk and A. P. Pentland, “Face recognition using eigenfaces,” in Computer Vision and Pattern Recognition, 1991. Proceedings CVPR’91., IEEE Computer Society Conference on, pp. 586–591, IEEE, 1991.
- 视觉化:https://setosa.io/ev/principal-component-analysis/
PCA降维的核心思想是:找到最有影响力,使全部样本最大可分的向量(即方差最大的),作为主成分,然后映射到该向量去。对其求垂直便能找到第二个主成分,然后找到k个主成分后,那么原来n维可以降到k维。
主要做法有Eigen-decomposition(特征值分解)与Singular Value Decomposition(奇异值分解),后者被称为Dual PCA。
定义
Preprocessing 预处理
Train Set: X ∈ R d × n = [ X 1 , ⋯ , X n ] = { X i ∈ R d } i = 1 n \mathbf{X}\in \mathbb{R}^{d\times n} = [X_1,\cdots,X_n] = \{X_i\in \mathbb{R}^d\}_{i=1}^n X∈Rd×n=[X1,⋯,Xn]={ Xi∈Rd}i=1n
Mean: μ = 1 n ∑ i = 1 n X i ∈ R d \mu=\frac{1}{n}\sum^n_{i=1} X_i \in \mathbb{R}^d μ=n1∑i=1nXi∈Rd
Normalization: X ˘ = X − μ = X ⋅ H \breve{\mathbf{X}}=\mathbf{X}-\mu =\mathbf{X}·H X˘=X−μ=X⋅H(这里是用线性变换的方法近似归一化效果,减少运算量,其中 H = I − ( 1 / n ) 1 1 T H=I-(1/n)11^T H=I−(1/n)11T, 1 1 1是全1向量。 H H H被称为 centering matrix)
(其中对于NLP的任务不需要归一化,因为NLP中负数是无意义的,这时就称为LSI/LSA)
投影 Projection 与 还原 Reconstruction
我们的目的是找到映射矩阵 U ∈ R d ∗ p \mathbf{U}\in\R^{d*p} U∈Rd∗p,将数据从 R d ∗ n \R^{d*n} Rd∗n 映射到 R p ∗ n \R^{p*n} Rp∗n。
Projection: X ~ = U T X ˘ , X ~ ∈ R p × n \mathbf{\tilde{X}} = \mathbf{U}^T\mathbf{\breve{X}},\mathbf{\tilde{X}}\in \mathbb{R}^{p\times n} X~=UTX˘,X~∈Rp×n
Reconstruction: X ^ = U U T X ˘ + μ = U X ~ + μ \mathbf{\hat{X}}=\mathbf{U}\mathbf{U}^T\mathbf{\breve{X}}+\mu=\mathbf{U}\mathbf{\tilde{X}}+\mu X^=UUTX˘+μ=UX~+μ
Test Set: X t ~ = U T X ˘ , X t ^ = U X t ~ + μ x \mathbf{\tilde{X_t}} = \mathbf{U}^T\mathbf{\breve{X}},\mathbf{\hat{X_t}}=\mathbf{U}\mathbf{\tilde{X_t}}+\mu_x Xt~=UTX˘,Xt^=UXt~+μx(相当于用训练出的投影矩阵处理测试集)
优化目标
为寻找优化目标,我们从两个角度去看主成分分析算法。分别是最小化重构Error(最近重构性)和最大方差(最大可分性),他们能够得出一样的结果。
1 最大化方差
根据最大可分性,我们希望重构后数据的方差会尽量的大。我们将作为constant项的 μ \mu μ去掉,取其Square Frobenius Norm,有:
∥ X ^ ∥ F 2 = ∥ U U ⊤ X ˘ ∥ F 2 = tr ( ( U U ⊤ X ˘ ) ⊤ ( U U ⊤ X ˘ ) ) = tr ( X ˘ ⊤ U U ⊤ U ⏟ I U ⊤ X ˘ ) = tr ( X ˘ ⊤ U U ⊤ X ˘ ) = tr ( U ⊤ X ˘ X ˘ ⊤ U ) \begin{array}{l}\left\|\hat{\mathbf{X}}\right\|_{F}^{2} = \left\|\boldsymbol{U} \boldsymbol{U}^{\top} \breve{\boldsymbol{X}}\right\|_{F}^{2} \\=\operatorname{tr}\left(\left(\boldsymbol{U} \boldsymbol{U}^{\top}\breve{\boldsymbol{X}}\right)^{\top}\left(\boldsymbol{U}\boldsymbol{U}^{\top}\breve{\boldsymbol{X}}\right)\right) \\=\operatorname{tr}(\breve{\boldsymbol{X}}^{\top} \boldsymbol{U} \underbrace{\boldsymbol{U}^{\top}\boldsymbol{U}}_{\boldsymbol{I}}\boldsymbol{U}^{\top}\breve{\boldsymbol{X}})\\=\operatorname{tr}\left(\breve{\boldsymbol{X}}^{\top} \boldsymbol{U} \boldsymbol{U}^{\top} \breve{\boldsymbol{X}}\right)\\=\operatorname{tr}\left(\boldsymbol{U}^{\top}\breve{\boldsymbol{X}}\breve{\boldsymbol{X}}^{\top}\boldsymbol{U} \right) \end{array} ∥∥∥X^∥∥∥F2=∥∥∥UU⊤X˘∥∥∥F2=tr((UU⊤X˘)⊤(UU⊤X˘))=tr(X˘⊤UI
U⊤UU⊤X˘)=tr(X˘⊤UU⊤X˘)=tr(U⊤X˘X˘⊤U)
Minimization(常规做法会用到拉格朗日函数,最好查看参考链接[3]理解这一步):
minimize U tr (