神经网络研究,计算机是否能推理?

研究神经网络都会发现其挺amazing的.如图像识别,只需要告诉计算机这张图是什么,然后就能识别,就像计算机有了自己的意识一样.

那么神经网络能否实现推理呢?比如,有5个数字,期望的结果是其中的最大值 减 最小值. 经过实践,发现训练样本直接测试,匹配度很高,但是也不够精确,而测试数据匹配度更不行,这是过拟合了吗?或者这样的情况根本满足不了曲线拟合?

上面这种情况,人通过分析应该是很容易发现规律,然后100%的正确.而计算机只是计算出大概的数字.因此计算机还不能推理.期待更nb的算法,让计算机实现推理~.~附加测试代码

clear;
%两个特征,第一个>第二个输出1,相等为0,否则=-1
% x=randi(10,100,2);
% T=zeros(100,1);
% T(find(x(:,1)-x(:,2)>0))=1;
% T(find(x(:,1)-x(:,2)<0))=-1;
%两个特征,有一个>70的就为1
% x=randi(100,100,2);
% T=zeros(100,1);
% T(find(x(:,1)>70|x(:,2)>70))=1;
%1个特征,10~99之间,输出为数字拆开
% x=randi([0,99],100,1);
% T=zeros(100,2);
% T(:,1)=(x-mod(x,10))/10;
% T(:,2)=mod(x,10);
%2个特征,1是有效2是干扰,输出=1
% x=randi([0,100],100,2);
% T=x(:,1);
%5个特征,结果是其中的最大-最小
% x=randi(100,1000,5);
% T=max(x,[],2)-min(x,[],2);
%TS=randi(100,1000,5);
%TSRS=max(TS,[],2)-min(TS,[],2);
%5个特征,结果是最大值的index
x=randi(500,20000,5);
TS=randi(500,1000,5);

[nnnn,T]=max(x,[],2);
[nnnn,TSRS]=max(TS,[],2);
pmax = max(x);
pmax1 = max(pmax);
pmin = min(x);
pmin1 = min(pmin);
TS=(TS-pmin1)/(pmax1-pmin1);
    P1=(x-pmin1)/(pmax1-pmin1);
    T1=(T-pmin1)/(pmax1-pmin1);

net = newff(P1',T1',[100],{'logsig'});

    net.trainParam.epochs = 150000;
    
    net.trainParam.goal=1e-60;
    net.trainParam.lr = 0.01;
    net = train(net,P1',T1');
y=sim(net,TS');
y1=y*(pmax1-pmin1)+pmin1;
myrs=[y1',TSRS];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值