首页 > 代码库 > ELM 极限学习机与SVM支持向量机

ELM 极限学习机与SVM支持向量机

在上一篇《DeepLearning 的挑战: Extreme Learning Machine(超限学习机)?》 中介绍了一些ELM与DL 的一些比较,这篇主要介绍ELM的原理。

首先,ELM的核心就是将复杂的迭代过程转变为隐层参数随机产生。

其次,ELM 是一个神经网络,有输入层、隐藏层,输出层。

最后,ELM 的多分类效果优于SVM,而且速度贼快。

 

对于训练样本集{xi,ti}  i=1-N, 共有N各样本,其中每个样本xi 是一个d维列向量,ti是输出标签。

ELM,的输出为:


其中,wj 为连接第j 各隐节点的输入权值;bj 为第j个隐节点的偏差; j 为第j各隐节点到ELM输出节点的权值;g()为第j各隐节点的输出函数;

而, h(xi)=[g(w1,b1,xi),…..,g(wL,bL,xi)]为隐层关于xi的输出向量,h(xi)的作用是将xi由d维空间映射到L维特征空间。

优化:

  其中,   是训练误差,消除过拟合,从而减少测试误差。

  C为惩罚因子。

类似于SVM,用对偶问题求解:



 公式相对于SVM来说,已经很少了。其中,随机化隐层参数a,b,无需迭代求解。

个人觉得,其模拟人脑系统确实更实际,如果人脑像迭代似的,最优化参数,那速度也贼慢。反而,我们用不同g() 隐层函数,如线性函数,sign函数,甚至cos,sin函数等等,这些学习到的特征更多,而且我们如果将这些函数深层网络格式,这样,是不是又能组合出不一样的函数呢?

所以,我觉得,随机化这些参数是有意义的,而且,效果不错,就能证明他有实用空间。

ps:CSDN 的公式编辑贼麻烦!

ELM 极限学习机与SVM支持向量机