感知机简介
感知机是最简单的神经网络,结构如下图所示:
感知机由输入层和输出层组成,输入层可以有多个,输入的结果等于每个输入神经元和权值的乘积xw的和:
y=x1w1+x2w2-θ
其中θ可以固定为-1,因此感知机通过不断训练来优化权值
感知机用于分类
如图,分类的目的是找到一个直线(超平面)将两个类别分开,感知机通过不断训练寻找合适的直线来分类,但是只适用于线性可分问题。
matlab代码
matlab版本:R2017a
function perceptron()
clear all;
clc;
learnrate=0.5;%学习率
maxtrainnumber=100;%最大训练次数
trainset=[2,4,5,1;1,2,1,-1;4,5,6,1;0,1,3,-1]; %获取训练集
testset=[5,6,4,1;1,2,1,-1];%获取测试集
[testm,~]=size(testset);
[trainm,trainn]=size(trainset);
w=unifrnd(-1, 1, 1, trainn-1); %初始化权值
for i=1:maxtrainnumber %开始训练感