资源简介
适合在校大学生初步实验使用,将此程序直接粘贴到Matlab的m文件中,便可直接运行,得到结果,本人已在博客中发表“与”运算实验,神经网络网址如https://blog.csdn.net/weixin_41529093/article/details/86713335,建议学有余力的同学不要下载,通过看我的博文,自己编出“异或”运算代码
代码片段和文件信息
function Perception1_4_YiHuoYunSuan()
close all %关闭所有figure
rand(‘state‘sum(100*clock)) %随机数种子用时钟进行初始化
P=4;%训练样本数
%输入训练样本:
X(:1)=[0;0];
X(:2)=[0;1];
X(:3)=[1;0];
X(:4)=[1;1];
X=[-1*ones(14); X];%考虑阈值,设x0=-1
%输入对应期望输出:
d=[0 1 1 0];
%设置感知器参数
InDim=2; %输入样本维数
OutDim=1; %输出维数
MaxTrainNumber=10;%最大训练次数
Eta=1;%学习率
w1=[]; %创建w1矩阵
w2=[]; %创建w2矩阵
%感知器训练
%权值初始化
W=rand(InDimOutDim);
%设置阈值
T=0.1;
WExpand=[T; W];%合并阈值到权值
ErrHistory=[];
for i=1:MaxTrainNumber %循环MaxTrainNumber次
for p=1:P
net(p)=WExpand‘*X(:p);%计算样本p的net值
o(p)=SinPoleTwoValue_f(net(p));%调用编辑好的变换函数,得到输出值
Err(p)=o(p)-d(p);%计算误差
WExpand=WExpand+Eta*(d(p)-o(p))*X(:p);%根据误差更新权值
end
%计算总误差
Err_sum=sum(abs(Err));
%写出权值w1w2的一维矩阵复合
w1=[w1 WExpand(2)];
w2=[w2 WExpand(3)];
%记录每次权值调整后的训练误差
ErrHistory=[ErrHistory Err_sum];
if Err_sum==0 break end %判断训练是否停止
end
W=WExpand(2:3);
T=WExpand(1);
disp([‘The final Error is: ‘num2str(Err_sum) ‘.‘]);
disp([‘The curren Epoch is: ‘num2str(i) ‘.‘]);
相关资源
- 哈工大机器人大作业——PUMA机器人工
- BP人工神经网络拟合正弦曲线程序完美
- BAS-PID.rar
- 非平衡算法ADASYN算法的MATLAB代码
- 局部加权回归的MATLAB实现机器学习之
- 随机森林分类matlab代码
- MATLAB——基于PSO工具箱的函数寻优算
- 人工免疫算法寻优最大值
- 神经网络学习算法,梯度下降,动量
- 半监督分类算法源程序-matlab代码
- 感知器与SVM分类
- 人工智能八数码问题过程表示求解m
- 选择性搜索的matlab源代码
- 人工神经网络(ANN)程序
- 人工鱼群算法求解tsp问题matlab
- 人工智能蜂群算法ABCMATLAB版本带注释
- 机器学习好瓜坏瓜分类
- [精品]matlab仿真A*路径规划算法,100
- 人工神经网络实验 用CHNN算法求解T
- 人工鱼群算法Matlab代码
- matlab与机器学习百度云分享
- MATLAB与机器学习详细.txt
- 用matlab从0开始实现的一个多层感知机
- adaboost 演示demo基于Matlab,学习算法包
- logistic回归matlab
- 人工蜂群ABC算法matlab官方源码两个版
- matlab下单层感知器实现
- delta并联机器人工作空间绘制的MATLA
- 随机森林matlab代码分类RF/回归RF
- Artificial bee colony,ABC,人工蜂群算法
评论
共有 条评论