第二篇2022.2.7
论文E2113869
用到的模型:
1、BP神经网络
2、Dijkstra algorithm 处理最短路径问题
Floyd算法
代码
clc,clear
A=[0,1,4;
1,0,1;
4,1,0];
n=3;
for k=1:n
for i=1:n
for j=1:n
t=A(i,k)+A(k,j);
if t<A(i,j)
A(i,j)=t;
end
end
end
end
[A]
有向图无向图
机器学习之神经网络
1)感知器算法:(应用于线性可分数据集)
“人为的”——预测函数f的具体形式决定的
f的具体形式——设计算法者人为指定的
深度学习:人为指定了一种预测函数f的形式
出现欠拟合过拟合应该怎么办
基于多各神经元的多层神经网路
2)多层神经网络
用阶跃函数作为多层神经网络的非线性函数
如果非线性函数采用阶跃函数,那么三层神经网络可以模拟任意的非线性函数
梯度下降法
后向传播算法
BP神经网络
转载:
clear;
clc;
X=-1:0.1:1;
D=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609...
0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 -.0988...
0.3072 0.3960 0.3449 0.1816 -0.312 -0.2189 -0.3201];
figure;
plot(X,D,'*'); %绘制原始数据分布图
net = newff([-1 1],[5 1],{'tansig','tansig'});
net.trainParam.epochs = 100; %训练的最大次数
net.trainParam.goal = 0.005; %全局最小误差
net = train(net,X,D);
O = sim(net,X);
figure;
plot(X,D,'*',X,O); %绘制训练后得到的结果和误差曲线
V = net.iw{1,1}%输入层到中间层权值
theta1 = net.b{1}%中间层各神经元阈值
W = net.lw{2,1}%中间层到输出层权值
theta2 = net.b{2}%输出层各神经元阈值
%suc=sim(net,-0.12)
%traingd
clear;
clc;
P=[-1 -1 2 2 4;0 5 0 5 7];
T=[-1 -1 1 1 -1];
%利用minmax函数求输入样本范围
net=newff(minmax(P),[7,1],{'tansig','purelin'},'trainlm');
net.trainParam.show=50;%
net.trainParam.lr=0.05;
net.trainParam.epochs=1000;%训练的最大次数
net.trainParam.goal=1e-5;%全局最小误差
[net,tr]=train(net,P,T);
net.iw{1,1}; %隐层权值
net.b{1} %隐层阈值
net.lw{2,1}; %输出层权值
net.b{2}; %输出层阈值
y3=sim(net,P);