24小时热门版块排行榜    

查看: 3755  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zzuiezyp

新虫 (正式写手)

[求助] 激活函数purelin和logsig为何差别怎么大

CODE:
function BBP
clear all;
clc;
disp('former Batch BP:');
%%{
%取得当前时钟,设置随机种子
rand('state',sum(100*clock))
%数据产生机制
     D1(1,:)=normrnd(0,1,1,5000);
D1(2,:)=0;
     D2=normrnd(80,1,1,5000);
D2(2,:)=1;
D0=[D1,D2];
D_length=length(D0);
DR=randperm(D_length);
D=D0(:,DR);
%数据已经随机打乱
%将数据D写入文本,并按格式对齐,且保留四位小数
dlmwrite('data0.txt',D,'delimiter','\t','precision','%.4f');
%}
%从文本中读入数据
%1·数据归一化处理,省去
%2·将数据划分为两部分
testpercent=0.4;
trainpercent=0.6;
trainSamples=D(:,1:(D_length*trainpercent));
trainSamplesP=trainSamples(1,:);
trainSamplesT=trainSamples(2,:);
testSamples=D(:,((D_length*trainpercent)+1):D_length);
testSamplesP=testSamples(1,:);
testSamplesT=testSamples(2,:);
%数据划分完毕
%3·建立网络
firstNodeHidNum=3;%第一层隐藏层节点的数目
net=newff(trainSamplesP,trainSamplesT,[firstNodeHidNum],{'logsig','purelin'},'traingd');
%4·训练原始批梯度下降BP神经网络
net.trainParam.epochs=250;
net.trainParam.goal=0.001;
net.trainParam.lr=0.1;
net.trainParam.show=100;
[net,tr]=traingd(net,trainSamplesP,trainSamplesT);
%5·仿真测试并构造结果矩阵BBP_res写入结果文本
resSim=sim(net,testSamplesP);
res=im2bw(resSim,0.5);
sum_BBP_right=0;%计算正确分类的数目
for j=1:1:length(testSamples)
     if res(j)~=testSamplesT(j)        
         rig_err(j)=-8;
     else
         sum_BBP_right=sum_BBP_right+1;
         rig_err(j)=8;
     end
end
BBP_res(1,:)=testSamplesP;
BBP_res(2,:)=testSamplesT;
BBP_res(3,:)=res;
BBP_res(4,:)=rig_err;
dlmwrite('BBP_res.txt',BBP_res,'delimiter','\t','precision','%.4f');
disp('原批梯度下降BP的正确率:');
sum_BBP_right
length(testSamples)
BBP_right_rate=sum_BBP_right/length(testSamples)
end

结果:
sum_BBP_right =
         4000

ans =
         4000

BBP_right_rate =
      1
以上为源程序这两个高斯已经离得很远了,类别输出时0和1,按道理在输出单元应该选择logsig
但是结果为:
sum_BBP_right =
         1963

ans =
         4000

BBP_right_rate =
     0.4908
这怎么都不收敛,训练误差也不怎么下降,求原因呐~

[ 来自小组 人工智能 ][ Last edited by nono2009 on 2013-8-2 at 12:04 ]
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : BBP.m
  • 2013-08-02 10:58:40, 1.82 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

生活的像一条狗(大话西游)!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ajitai

铁杆木虫 (职业作家)

★ ★
nono2009: 金币-2, 屏蔽内容, 违规存档, 请不要在专业版做广告 2013-08-02 12:04:01
本帖内容被屏蔽

4楼2013-08-02 11:41:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

ajitai

铁杆木虫 (职业作家)

必须差别大啊,看看这两个函数的公式你就知道了。。。当然还和你写的程序还有关系
2楼2013-08-02 11:11:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzuiezyp

新虫 (正式写手)

引用回帖:
2楼: Originally posted by ajitai at 2013-08-02 11:11:35
必须差别大啊,看看这两个函数的公式你就知道了。。。当然还和你写的程序还有关系

可是,这种情况不应该是选择logsig才对么,但是为什么表现那么差劲。求指导啊,感谢啊~
生活的像一条狗(大话西游)!
3楼2013-08-02 11:29:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzuiezyp

新虫 (正式写手)

引用回帖:
4楼: Originally posted by ajitai at 2013-08-02 11:41:41
我是商家,你懂的。。。。...

此乃论坛学术之地,请远离~
生活的像一条狗(大话西游)!
5楼2013-08-02 11:43:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见