【略水】Extreme Learning Machine
人工智能吧
全部回复
仅看楼主
level 13
Bz_______ 楼主
一楼放水
2013年10月18日 11点10分 1
level 13
Bz_______ 楼主
首先,随机设定连接1,2层的权重和第二层的偏移值。
2013年10月18日 11点10分 3
level 13
Bz_______ 楼主
把所有数据在第二层的值算一遍,记为矩阵A。A的每一行表示一组数据,行数就是数据组的个数。
2013年10月18日 11点10分 4
为了表示偏移值,可以在矩阵A的最右侧添上一个1
2013年10月18日 11点10分
应该是一列1
2013年10月18日 11点10分
level 13
Bz_______ 楼主
把输出记为B。B的行数和A相同(因为数据的组数相同)。
这时需要设定2,3层的权重,记为矩阵x。
显然,我们需要求解Ax=B。
根据最小二乘法,x=inv(AtA)AtB,其中t表示转置,inv表示逆。
2013年10月18日 11点10分 5
参考楼下和 http://v[太开心].163.[太开心]com/movie/2011/6/M/C/M82ICR1D9_M83J6BGMC.html
2013年10月18日 11点10分
level 13
Bz_______ 楼主
2013年10月18日 11点10分 8
试验结果,绿线为目标函数,红线为ELM输出。
2013年10月18日 11点10分
level 13
Bz_______ 楼主
@暗影零号
求讨论
2013年10月18日 11点10分 9
2013年10月18日 12点10分
2013年10月18日 12点10分
为什么设定为3层?在DL大好形势下,只适用浅层的ANN还有用么?
2013年10月23日 09点10分
回复@LJ人工智能:速度快。
2013年10月23日 10点10分
level 13
你的目标函数为啥总是这么简单的。
不整点复杂的哪能显威力
2013年10月18日 11点10分 10
让我试试看。
2013年10月18日 11点10分
Iris Flower的数据也试过了,只错一组。
2013年10月18日 11点10分
level 13
Bz_______ 楼主
ELM用作函数拟合器:
function elm(a,b,m)
K=a;
t=size(a,1);
W1=randc(size(a,2),m);
B1=repmat(randc(1,m),t,1);
a=[tansig(a*W1+B1) repmat(1,t,1)];
X=(a'*a)\(a'*b);
o=a*X;
hold on
plot(K,o,'r.');
plot(K,b,'g.');
end
2013年10月18日 12点10分 14
在Command Window下输入 elm((0:0.01:25)',sin(0:0.01:25)',40)
2013年10月18日 12点10分
第三个参数还是表示隐藏层节点的数量。
2013年10月18日 12点10分
level 12
关于5楼,B-Ax是一个矩阵,列数是第三层神经元数量,行数是t;
为什么cost function (B-Ax)'(B-Ax)是一个凸函数?
2013年10月19日 18点10分 17
http://zh.wik[滑稽]ipedia.org/wiki/最小二[滑稽]乘法#.E6.9C.80.E5.B0.8F.E4.BA.8C.E4.B9.98.E6.B3.95.E7.9A.84.E8.A7.A3
2013年10月20日 00点10分
它的解是二范数极小的解,而二范数是一个二次函数。
2013年10月20日 00点10分
positive-semidefinite matrix?
2013年10月20日 00点10分
level 8
直观的理解:一个变维映射(不带反馈)加一个回归分类器。优势非常明显,整个分类过程不需要迭代,所以运算速度很快。
两层都换成梯度下降前向反馈就退化成了BP,隐含层换成核映射就变成了不考虑泛化的支持向量机(或者去学习核映射就变成了RBF神经网络)。
因为不知道19楼梯度下降是不是加在了输入层和隐含层之间,如果是的话,它就变成了一种运算量远小于BP,但是精度又好于原始ELM的回归分类器。
2013年10月21日 02点10分 20
感谢楼主分享,我认为这种方法处理数据量比较大的问题时可能会有奇效。
2013年10月21日 02点10分
回复 k4487759 :是的,不过ELM+梯度下降很可能带来一个“不合理”的结果,梯度很小,但是结果却不怎么样。
2013年10月21日 13点10分
回复 k4487759 :ELM的优势就在于处理大问题。
2013年10月21日 13点10分
level 13
Bz_______ 楼主
ELM+梯度下降,其中红圈部分抖动得很厉害。
纯梯度下降。速度远远慢于ELM+梯度下降(十几秒),但是效果却好得多。
2013年10月21日 13点10分 21
补一下,ELM+梯度下降最多的一次用了0.04秒。
2013年10月21日 13点10分
level 13
Bz_______ 楼主
19楼梯度下降确实被加在了输入层和隐含层之间,这使它变成了一种能力远不如BP,但是速度又慢于原始ELM的回归分类器。
2013年10月21日 13点10分 22
@k4487759 加了梯度下降后不容易处理大问题。
2013年10月21日 13点10分
level 13
Bz_______ 楼主
1-2层连接不好选择(黑框部分为第二层输出)。
2013年10月22日 14点10分 23
启发式选择初值? @LJ人工智能
2013年10月22日 14点10分
回复 Bz_______ :感谢@我,可是我现在在ML上并没有很深的认识,我目前主要精力在补数学和神经学基础。希望明年底能开始跟你们开始深入讨论神经网络和机器学习的问题。
2013年10月23日 02点10分
回复@LJ人工智能:神经学?主要是哪一方面的?
2013年10月23日 10点10分
level 13
Bz_______ 楼主
ELM结合RBF进行分类
2013年10月22日 23点10分 25
level 13
Bz_______ 楼主
function elm_rbf
a=randn(500,2)+repmat([-2 -2],500,1);
a=[a;randn(500,2)+repmat([2 2],500,1)];
b=randn(500,2)+repmat([3 -3],500,1);
b=[b;randn(500,2)+repmat([-3 2],500,1)];
hold on
plot(a(:,1),a(:,2),'r.');
plot(b(:,1),b(:,2),'b.');
[acidx, actrs] = kmeans(a,2);
[bcidx, bctrs] = kmeans(b,2);
data=[a;b];
ctrs=[actrs;bctrs];
pause
plot(ctrs(:,1),ctrs(:,2),'k*');
pause
labels=[ones(500,1) zeros(500,1)
zeros(500,1) ones(500,1)];
t=zeros(1000,4);
for k1=1:1000
for k2=1:4
t(k1,k2)=exp(-(sumsqr(data(k1,:)-ctrs(k2,:))/2));
end
end
clf
hold on
plot(t(:,1),'r.')
plot(t(:,2),'g.')
plot(t(:,3),'b.')
plot(t(:,4),'c.')
pause
clf
hold on
plot(a(:,1),a(:,2),'r.');
plot(b(:,1),b(:,2),'b.');
X=(t'*t)\(t'*labels);
plot(ctrs(:,1),ctrs(:,2),'k*');
Q=t*X;
for k1=1:1000
if find(Q(k1,:)==max(Q(k1,:))) ~= find(labels(k1,:)==max(labels(k1,:)))
plot(data(k1,1),data(k1,2),'g*')
end
end
end
2013年10月22日 23点10分 26
回复@xxf700:怎么还不去发技术贴?
2013年10月23日 10点10分
level 8
加梯度下降效果不好的话有可能是这种方法对非线性变换(输入层到隐含层)不敏感,因为原始的算法的非线性变换就是随机的,没有学习过程。
也有可能是梯度下降陷入局部最优了。
可以考虑用启发式加梯度下降验证一下,这么做对于解决实际问题可能没什么意义,因为算法会变得很慢,原来的运算速度优点就没了,但是当成是坐而论道没事琢磨琢磨挺有意思。
2013年10月23日 03点10分 27
level 6
楼主你好,用三层网络(即单隐层)拟合如下函数:
y=x[1] xor x[2] xor x[3]...xor x[n]试试。你也许会对三层网络彻底失望。需要的隐层数量随n的增长指数增长
2013年11月19日 04点11分 28
我是说隐层神经元数量,不是说隐层数量
2013年11月19日 04点11分
回复 神秘男孩打屁股 :深层网络?
2013年11月19日 09点11分
我已经对ELM失望了,连辅助Deep Learning的能力都没有。
2013年11月19日 09点11分
前途必须是深层网络。不过现有的深层网络肯定不行。因为产生了很多冗余信息。
2013年11月19日 10点11分
1