导航:首页 > 编程大全 > 线性神经网络画图

线性神经网络画图

发布时间:2023-09-02 09:43:35

⑴ 关于MATLAB中神经网络工具箱的问题

线性神经网络的构建:
net=newlin(PR,S,ID,LR)
PR--Rx2阶矩阵,R个输入元素的最小最大矩阵
S---输出层神经元个数
ID--输入延迟向量,默认值为[0]
IR--学习率,默认值为0.01

net = newlin([-1 1;-1 1],1); 表示设计的是一个双输入单输出线性神经网络
P = [1 2 2 3; 2 1 3 1];表示输入样本有四个,每一列就是一个输入样本
又比如假设我们期望的输出为 T=[1 2 3 4],则一个简单的神经网络如下:

>>net = newlin([-1 1;-1 1],1);%创建初始网络
P=[1 2 2 3; 2 1 3 1]%输入
T=[1 2 3 4]%期望的输出
net=newlind(P,T);%用输入和期望训练网络
Y=sim(net,P)%仿真,可以看到仿真结果Y和期望输出T的接近程度
P =
1 2 2 3
2 1 3 1
T =
1 2 3 4
Y =
0.8889 2.1667 3.0556 3.8889

楼主可以从《matlab神经网络与应用(第二版)》董长虹 开始入门神经网络的matlab实现

⑵ MATLAB线性神经网络的程序,跪求。。

美国Michigan 大学的 Holland 教授提出的遗传算法(GeneticAlgorithm, GA)是求解复杂的组合优化问题的有效方法 ,其思想来自于达尔文进化论和门德尔松遗传学说 ,它模拟生物进化过程来从庞大的搜索空间中筛选出较优秀的解,是一种高效而且具有强鲁棒性方法。所以,遗传算法在求解TSP和 MTSP问题中得到了广泛的应用。

matlab程序如下:

function[opt_rte,opt_brk,min_dist] =mtspf_ga(xy,dmat,salesmen,min_tour,pop_size,num_iter)

%%

%实例

% n = 20;%城市个数

% xy = 10*rand(n,2);%城市坐标 随机产生,也可以自己设定

% salesmen = 5;%旅行商个数

% min_tour = 3;%每个旅行商最少访问的城市数

% pop_size = 80;%种群个数

% num_iter = 200;%迭代次数

% a = meshgrid(1:n);

% dmat =reshape(sqrt(sum((xy(a,:)-xy(a',:)).^2,2)),n,n);

% [opt_rte,opt_brk,min_dist] = mtspf_ga(xy,dmat,salesmen,min_tour,...

% pop_size,num_iter);%函数

%%

[N,dims]= size(xy); %城市矩阵大小

[nr,nc]= size(dmat); %城市距离矩阵大小

n = N -1;% 除去起始的城市后剩余的城市的数

% 初始化路线、断点的选择

num_brks= salesmen-1;

dof = n- min_tour*salesmen; %初始化路线、断点的选择

addto =ones(1,dof+1);

for k =2:num_brks

addto = cumsum(addto);

end

cum_prob= cumsum(addto)/sum(addto);

%% 初始化种群

pop_rte= zeros(pop_size,n); % 种群路径

pop_brk= zeros(pop_size,num_brks); % 断点集合的种群

for k =1:pop_size

pop_rte(k,:) = randperm(n)+1;

pop_brk(k,:) = randbreaks();

end

% 画图路径曲线颜色

clr =[1 0 0; 0 0 1; 0.67 0 1; 0 1 0; 1 0.5 0];

ifsalesmen > 5

clr = hsv(salesmen);

end

%%

% 基于遗传算法的MTSP

global_min= Inf; %初始化最短路径

total_dist= zeros(1,pop_size);

dist_history= zeros(1,num_iter);

tmp_pop_rte= zeros(8,n);%当前的路径设置

tmp_pop_brk= zeros(8,num_brks); %当前的断点设置

new_pop_rte= zeros(pop_size,n);%更新的路径设置

new_pop_brk= zeros(pop_size,num_brks);%更新的断点设置

foriter = 1:num_iter

% 计算适应值

for p = 1:pop_size

d = 0;

p_rte = pop_rte(p,:);

p_brk = pop_brk(p,:);

rng = [[1 p_brk+1];[p_brk n]]';

for s = 1:salesmen

d = d + dmat(1,p_rte(rng(s,1)));% 添加开始的路径

for k = rng(s,1):rng(s,2)-1

d = d + dmat(p_rte(k),p_rte(k+1));

end

d = d + dmat(p_rte(rng(s,2)),1); % 添加结束的的路径

end

total_dist(p) = d;

end

% 找到种群中最优路径

[min_dist,index] = min(total_dist);

dist_history(iter) = min_dist;

if min_dist < global_min

global_min = min_dist;

opt_rte = pop_rte(index,:); %最优的最短路径

opt_brk = pop_brk(index,:);%最优的断点设置

rng = [[1 opt_brk+1];[opt_brk n]]';%设置记录断点的方法

figure(1);

for s = 1:salesmen

rte = [1 opt_rte(rng(s,1):rng(s,2))1];

plot(xy(rte,1),xy(rte,2),'.-','Color',clr(s,:));

title(sprintf('城市数目为 = %d,旅行商数目为 = %d,总路程 = %1.4f, 迭代次数 =%d',n+1,salesmen,min_dist,iter));

hold on

grid on

end

plot(xy(1,1),xy(1,2),'ko');

hold off

end

% 遗传操作

rand_grouping = randperm(pop_size);

for p = 8:8:pop_size

rtes = pop_rte(rand_grouping(p-7:p),:);

brks = pop_brk(rand_grouping(p-7:p),:);

dists =total_dist(rand_grouping(p-7:p));

[ignore,idx] = min(dists);

best_of_8_rte = rtes(idx,:);

best_of_8_brk = brks(idx,:);

rte_ins_pts = sort(ceil(n*rand(1,2)));

I = rte_ins_pts(1);

J = rte_ins_pts(2);

for k = 1:8 %产生新种群

tmp_pop_rte(k,:) = best_of_8_rte;

tmp_pop_brk(k,:) = best_of_8_brk;

switch k

case 2% 倒置操作

tmp_pop_rte(k,I:J) =fliplr(tmp_pop_rte(k,I:J));

case 3 % 互换操作

tmp_pop_rte(k,[I J]) =tmp_pop_rte(k,[J I]);

case 4 % 滑动平移操作

tmp_pop_rte(k,I:J) =tmp_pop_rte(k,[I+1:J I]);

case 5% 更新断点

tmp_pop_brk(k,:) = randbreaks();

case 6 % 倒置并更新断点

tmp_pop_rte(k,I:J) =fliplr(tmp_pop_rte(k,I:J));

tmp_pop_brk(k,:) =randbreaks();

case 7 % 互换并更新断点

tmp_pop_rte(k,[I J]) =tmp_pop_rte(k,[J I]);

tmp_pop_brk(k,:) =randbreaks();

case 8 % 评议并更新断点

tmp_pop_rte(k,I:J) =tmp_pop_rte(k,[I+1:J I]);

tmp_pop_brk(k,:) =randbreaks();

otherwise

end

end

new_pop_rte(p-7:p,:) = tmp_pop_rte;

new_pop_brk(p-7:p,:) = tmp_pop_brk;

end

pop_rte = new_pop_rte;

pop_brk = new_pop_brk;

end

figure(2)

plot(dist_history,'b','LineWidth',2);

title('历史最优解');

xlabel('迭代次数')

ylabel('最优路程')

% 随机产生一套断点 的集合

function breaks = randbreaks()

if min_tour == 1 % 一个旅行商时,没有断点的设置

tmp_brks = randperm(n-1);

breaks =sort(tmp_brks(1:num_brks));

else % 强制断点至少找到最短的履行长度

num_adjust = find(rand <cum_prob,1)-1;

spaces =ceil(num_brks*rand(1,num_adjust));

adjust = zeros(1,num_brks);

for kk = 1:num_brks

adjust(kk) = sum(spaces == kk);

end

breaks = min_tour*(1:num_brks) +cumsum(adjust);

end

end

disp('最优路径为:/n')

disp(opt_rte);

disp('其中断点为为:/n')

disp(opt_brk);

end


⑶ 有什么神经网络结构图的画图工具值得推荐吗

我也不是医学科的,不会什么专业神经构图,但是我经常使用这个软件,这里就推荐一下LaTex自带的tikz,这个挺简便的方便操作,省去了复杂的出入重复步骤操作,还不错的哦

⑷ (七)神经网络基本结构

目前为止,我们已经学习了2个机器学习模型。线性回归一般用来处理线性问题,逻辑回归用来处理2分类问题。虽然逻辑回归也可以处理非线性的分类问题,但是当我们有非常多的特征时,例如大于100个变量,将会有数量非常惊人的特征组合。这对于一般的逻辑回归来说需要计算的特征太多了,负荷太大。而神经网络既可以答衫解决复杂的非线性分类问题,又可以避免庞大的计算量。

人工神经网络是由很多神经元(激活单元)构成的,神经元是神经网络的基本元素。

实际上,可以这样理解神经元工作过程,当将输入送进神经元后,神经元将输入与权值线性组合(实际上就是θ T X)输出一个线性表达式,再将这个表达式送哗举拿入激活函数中,便得到了神经元的真实输出。

神经网络由好多个激活单元构成,如下图所示:

激活函数的选择是构建神经网络过程中的重要环节,下面简要介绍常用的激活函数。

(1) 线性函数( Liner Function )

(2) 斜面函数( Ramp Function )**

(3) 阈值函数( Threshold Function )**

以上3个激活函数都属于线性函数,下面介绍两个常用的非线性激活函数。
(4) S形函数( Sigmoid Function )

S形函数与双极S形函数的图像如下:

双极S形函数与S形函数主要区别在于函数的值域,双极S形函数值域是(-1,1),而S形函数值域是(0,1)。由于S形函数与双极S形函数都是 可导的 (导函数是连续函数),因此适合用在BP神经乱搭网络中。(BP算法要求激活函数可导)

人工神经网络中,最常用的激活函数就是sigmoid函数

神经网络是由大量的神经元互联而构成的网络。根据网络中神经元的互联方式,常见网络结构主要可以分为下面3类:

前馈网络也称前向网络,是最常见的神经网络,前文提到的都是前馈网络。称之为前馈是因为它在输出和模型本身之间没有反馈,数据只能向前传送,直到到达输出层,层间没有向后的反馈信号。

反馈型神经网络是一种从输出到输入具有反馈连接的神经网络,其结构比前馈网络要复杂得多。

自组织神经网络是一种无监督学习网络。它通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数与结构。

阅读全文

与线性神经网络画图相关的资料

热点内容
怎么登陆苹果账号 浏览:951
java随机百分比 浏览:625
c语言数学函数头文件 浏览:625
历年温度数据怎么下载 浏览:360
新qq如何改密码忘了怎么办 浏览:123
函数的编程是什么 浏览:522
什么网站上能叫小姐 浏览:534
压缩文件解压打开方式 浏览:86
高中生查成绩用哪个app 浏览:874
win10家庭组无法离开 浏览:102
微信插件文件 浏览:493
不让修改的pdf文件 浏览:946
会声会影模板文件格式 浏览:59
iphone6邮件删除容量 浏览:784
暑假编程培训怎么学 浏览:88
对商家怎么推广app 浏览:92
xplane10安卓破解 浏览:309
下载中国知网免费入口登入工具 浏览:959
台达编程软件如何下载安装 浏览:758
c程序设计试题汇编谭浩强pdf 浏览:28

友情链接