theta = [10 10]; lob = [1e-1 1e-1]; upb = [20 20];
[dmodel, perf] = dacefit([lat,lon], tem, @regpoly0, @corrgauss, theta, lob, upb);
LonLat = gridsamp([min(latlim) min(lonlim);max(latlim) max(lonlim)], 60);
TemNew = predictor(LonLat, dmodel);
LatNew = reshape(LonLat(:,1),[60,60]);
LonNew = reshape(LonLat(:,2),[60,60]);
TemNew = reshape(TemNew, size(LonNew));
geoshow(LatNew,LonNew,TemNew,'DisplayType','surface');
hold on
plotm(lat,lon,'k.');
colorbar;
matlab中epochs是计算时根据输出误差返回调整神经元权值和阀值的次数。
验证方法:
(一)使用网络 linearlayer
1,cell输入形式
输入 P={[1;2] [2;1] [2;3] [3;1]};
目标值 T={4 5 7 7}
使用adapt;
输入命令:
P={[1;2] [2;1] [2;3] [3;1]};
T={4 5 7 7};
net=linearlayer(0,0.1);
net=configure(net,P,T);
net.IW{1,1}=[0,0];
net.b{1}=0;
[net,a,e]=adapt(net,P,T);
权重更新4次,最后值:
net.IW{1,1}= 1.5600 1.5200
net.b{1}=0.9200
仿真结果:[0] [2] [6.0000] [5.8000]
2,矩阵输入形式
输入P=[1 2 2 3;2 1 3 1];
输出T=[4 5 7 7]
使用adapt;
输入命令:
P=[1 2 2 3;2 1 3 1];
T=[4 5 7 7];
net=linearlayer(0,0.01);
net=configure(net,P,T);
net.IW{1,1}=[0,0];
net.b{1}=0;
[net,a,e]=adapt(net,P,T);
权重更新一次,最后值:
net.IW{1,1}=0.4900 0.4100
net.b{1}= 0.2300
3,矩阵输入形式
输入P=[1 2 2 3;2 1 3 1];
输出T=[4 5 7 7]
使用train;(其中设置epochs=1)
前提:对学习函数和训练函数加入显式的调用命令;
P=[1 2 2 3;2 1 3 1];
T=[4 5 7 7];
net=linearlayer(0,0.01);
net=configure(net,P,T);
net.IW{1,1}=[0,0];
net.b{1}=0;
net=trian(net,P,T);
权重更新一次,最后值:
net.IW{1,1}=0.4900 0.4100
net.b{1}= 0.2300
结论:对于静态网络而言linearlayer,adapt的cell输入为在线学习,而矩阵输入为离线学习相当于train的一个回合。
至于动态网络:有时间再做。
以上是使用MATLAB进行克里金三维插值的详细内容。更多信息请关注PHP中文网其他相关文章!