机器学习基础——降维
来源:互联网 发布:端口号协议号 编辑:程序博客网 时间:2024/06/06 15:51
最近读了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算法,下图是本算法的结构图:
不难看出整个算法可以分为两个部分,一个是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
- 机器学习基础——降维
- 基础——机器学习
- 机器学习笔记(一)——机器学习基础
- 机器学习实战——第一章:机器学习基础
- 《机器学习实战》笔记一——机器学习基础
- 机器学习系列02——机器学习基础
- 机器学习实战——机器学习基础
- 基础—机器学习—softMax regression
- 机器学习——概率论基础
- 机器学习基础——Adaboost
- 机器学习基础——RandomForest
- 机器学习基础——梯度下降
- 机器学习基础——BP算法
- 机器学习基础——Anaconda环境
- 机器学习基础——神经网络
- 机器学习基础——矩阵
- 机器学习深度学习基础笔记(1)——基础理论
- 深度学习——数学与机器学习基础
- 归并排序
- 【IOS学习】iPhone屏幕尺寸、分辨率及适配
- String类不可变性的好处
- C++中如何对输出几位小数进行控制(setprecision)
- 用jQuery的attr()设置option默认选中无效的解决 attr设置属性失效
- 机器学习基础——降维
- Java NIO 系列教程
- 我校与广州市农业局举行合作座谈会
- ubuntu 下 opencv 卸载与重装
- 关于MySQL主从复制与主主复制
- Oracle连接池修改
- 如何用xmind做月度计划表
- 生产环境构建指南:Web应用——备份
- springBoot整合webSocket