机器学习基础——降维
2017-03-03 09:41
232 查看
最近读了Hinton在2006年发布的论文Reducing the dimensionality of data with neural networks。因此对降维方面做了一些小的总结。
降维是指在某些限定条件下,降低随机变量个数,得到一组“不相关”主变量的过程。降维可以进一步细分为特征选择和特征检测两大方法。
特征选择:假定数据中包含大量冗余或无关变量(或称特征、属性、指标等),旨在从原有变量中找出主要变量。
例如:ISOMAP(等度量映射)、LLE(局部线形嵌入算法)
特征提取:将高维数据转化为底维数据的过程。在此过程中可能舍弃原有数据、创造新的变量。
例如:PCA(主成分分析)、LDA(线形判别分析)、Autoencoder(自编码深层神经网络)
以上是wiki给出的定义和解释。但是在民间还有一种分类方法,就是按照其降维算法本身进行分类,可以分为线形和非线性。
线形降维就是指,在降维的过程中所利用的算法是线性的,例如:PCA、ICA、LDA、因子分析等
同样的非线性降维就是指,利用非线性算法进行降维的,例如:ISOMAP、LLE、Autoencoder network
(由于降维的算法实在太多,这里只是简单的给出了一些常用的算法)
当然算法的分类不仅仅只能这样分,还有许多其他的分类,例如:监督的和非监督的等
今天这里主要是介绍一下Hinton文章中所写到的Autoencoder算法,下图是本算法的结构图:
![](https://img-blog.csdn.net/20170304101158339?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWJyb2hhbWJhYnk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
不难看出整个算法可以分为两个部分,一个是encoder部分,一个是decoder部分。
PS:这里需要注意一下,虽然图中给出的是两个部分,8层(中间那层两边都在用)。但是实际的层数是4层。只是为了方便理解才将其展开。
首先将一下整个算法的流程:
1、对原来输入的数据(这里用x代替)通过 Restricted Boltzmann Machines (RBM,受限玻尔兹曼机),进行预处理,将降维提取数据。这里使用的是神经网络前向传播,得到一个输出z
2、对应的使用神经网络后向传播,构建反向的网络。实际的网路不变,直接反向传播数据(实际就是刚刚的逆过程)就可以了。得到一x'
3、比对x和x',构建cost function函数并调节W(即权重值)和固定参数b使得x=x'。
4、最终的一个最小的cost function函数值,之后使用这时的W和b作为参数,构建Autoencoder network。
(具体公式可以下载PPT进行查看,PPT中最后附上了运算之后的效果展示图)
编者:KJC
降维是指在某些限定条件下,降低随机变量个数,得到一组“不相关”主变量的过程。降维可以进一步细分为特征选择和特征检测两大方法。
特征选择:假定数据中包含大量冗余或无关变量(或称特征、属性、指标等),旨在从原有变量中找出主要变量。
例如:ISOMAP(等度量映射)、LLE(局部线形嵌入算法)
特征提取:将高维数据转化为底维数据的过程。在此过程中可能舍弃原有数据、创造新的变量。
例如:PCA(主成分分析)、LDA(线形判别分析)、Autoencoder(自编码深层神经网络)
以上是wiki给出的定义和解释。但是在民间还有一种分类方法,就是按照其降维算法本身进行分类,可以分为线形和非线性。
线形降维就是指,在降维的过程中所利用的算法是线性的,例如:PCA、ICA、LDA、因子分析等
同样的非线性降维就是指,利用非线性算法进行降维的,例如:ISOMAP、LLE、Autoencoder network
(由于降维的算法实在太多,这里只是简单的给出了一些常用的算法)
当然算法的分类不仅仅只能这样分,还有许多其他的分类,例如:监督的和非监督的等
今天这里主要是介绍一下Hinton文章中所写到的Autoencoder算法,下图是本算法的结构图:
不难看出整个算法可以分为两个部分,一个是encoder部分,一个是decoder部分。
PS:这里需要注意一下,虽然图中给出的是两个部分,8层(中间那层两边都在用)。但是实际的层数是4层。只是为了方便理解才将其展开。
首先将一下整个算法的流程:
1、对原来输入的数据(这里用x代替)通过 Restricted Boltzmann Machines (RBM,受限玻尔兹曼机),进行预处理,将降维提取数据。这里使用的是神经网络前向传播,得到一个输出z
2、对应的使用神经网络后向传播,构建反向的网络。实际的网路不变,直接反向传播数据(实际就是刚刚的逆过程)就可以了。得到一x'
3、比对x和x',构建cost function函数并调节W(即权重值)和固定参数b使得x=x'。
4、最终的一个最小的cost function函数值,之后使用这时的W和b作为参数,构建Autoencoder network。
(具体公式可以下载PPT进行查看,PPT中最后附上了运算之后的效果展示图)
编者:KJC
相关文章推荐
- 机器学习基础与实践(三)----数据降维之PCA
- 机器学习基础 维基翻译 Johnson-Lindenstrauss降维 应用于广义因子模型 及简单的sklearn例子
- 数学之路(3)-机器学习(2)-机器学习基础(1)-模式识别简介[1]
- [机器学习]决策树算法的理论基础
- 【NLP基础】机器学习前沿热点–Deep Learning
- 机器学习基础概念
- Stanford机器学习---第十讲. 数据降维
- 机器学习基础-概率论知识点
- 机器学习的数学基础(1)--Dirichlet分布
- 机器学习中的算法(2)-支持向量机(SVM)基础
- 机器学习中的算法(2)-支持向量机(SVM)基础
- 机器学习中的算法(2)-支持向量机(SVM)基础
- 机器学习中的算法(2)-支持向量机(SVM)基础
- Stanford机器学习---第十二讲. 数据降维
- 机器学习中的算法(2)-支持向量机(SVM)基础
- 机器学习中的算法(2)-支持向量机(SVM)基础
- 机器学习中的算法(2)-支持向量机(SVM)基础
- 机器学习中的算法(2)-支持向量机(SVM)基础 - LeftNotEasy - 博客园
- 机器学习中的算法(2)-支持向量机(SVM)基础
- 机器学习中的算法(2)-支持向量机(SVM)基础