最后修改时间:2016-04-28 11:49:49
本文为超限学习机反向传播算法的测试结果和相关描述。
多层神经网络在深度学习方法中扮演着重要的地位。然而在深度学习研究中,更快而效率更高的学习方法依然任重而道远。
如果神经网络的权重能够在最小二乘法的基础上通过反向传播计算出来或者随机设定,那么学习速度将会得到显著的提升。但是,如何快速设置权重同时又避免过度拟合依然是一个公认的难题。
本算法以黄广斌的ELM( Extreme Learning Machine, 超限学习机 )研究为基础,能够很好地决策对于三层神经网络的第一层权重,何时随机设定,何时通过最小二乘法计算得出。
通过对自编码算法的探索,我们证明了使自编码算法满足拓扑等价的充分条件,同样也是避免过度拟合的充分条件。基于这一定理,过度拟合的判定和解决方法被运用到这一算法中,提升了测试数据的准确率。
算法框架如下图所示:
| 系统: | OS X EI Capitan ( 10.11.4 ) |
|---|---|
| 处理器: | 3.1 GHz Intel Core i7 |
| 内存: | 16 GB 1867 MHz DDR3 |
| 显卡: | Intel Iris Graphics 6100 1536 MB |
| 测试工具: | MATLAB |
通过R的 mlbench 库生成二维数据,数据分布如下图所示:
R mlbench 库中方法
mlbench.2dnormals()的描述:2-dimensional Gaussian Problem
Description
Each of the cl classes consists of a 2-dimensional Gaussian. The centers are equally spaced on a circle around the origin with radius r.Usage
mlbench.2dnormals(n, cl=2, r=sqrt(cl), sd=1)Arguments
Argument Description n number of patterns to create cl number of classes r radius at which the centers of the classes are located sd standard deviation of the Gaussians
原始数据集生成代码:
temp <- mlbench.2dnormals(500, 2);
data_2d <- data.frame(class=as.interger(temp[[2]]), temp[[1]])