主要内容

离群值输入向量

对2输入硬限制神经元进行了训练,将5个输入向量分为两类。但是,由于1个输入向量比其他所有输入矢量大得多,因此培训需要很长时间。

X中的五列向量中的每个向量都定义了2个元素输入向量,并且一个行向量t定义了向量的目标类别。用plotPV绘制这些向量。

x = [-0.5 -0.5 +0.3 -0.1 -40;-0.5 +0.5 -0.5 +1.0 50];t = [1 1 0 0 1];plotPV(x,t);

请注意,4个输入矢量的幅度比图的左上方的第五载体小得多。感知器必须将X中的5个输入向量正确分类为T。

perceptron创建了一个新的网络,然后使用输入和目标数据配置,从而导致其权重和偏置的初始值。(通常不需要配置,因为它是通过适应和火车自动完成的)。

net = perceptron;net = configure(net,x,t);

将神经元的最初尝试分类添加到图中。

初始权重设置为零,因此任何输入都会给出相同的输出,并且分类线甚至不会出现在图上。不要害怕...我们要训练它!

抓住lineHandle = plotpc(net.iw {1},net.b {1});

Adapt返回一个新的网络对象,该对象作为更好的分类器,网络输出和错误。此循环调整网络并绘制分类线,直到误差为零。

E = 1;尽管(sse(e))[net,y,e] = apapt(net,x,t);lineHandle = plotpc(net.iw {1},net.b {1},lineHandle);drawnow;结尾

请注意,这需要三个通行证才能使它正确。这是一个简单的问题,这很长时间。进行长期训练时间的原因是离群值矢量。尽管训练时间很长,但感知器仍然可以正确学习,可以用来对其他输入进行分类。

现在,SIM可以用于对任何其他输入向量进行分类。例如,将输入向量分类为[0.7;1.2]。

原始训练集的这个新点的图显示了网络的性能。要将其与训练组区分开,请颜色为红色。

x = [0.7;1.2];y = net(x);plotPV(x,y);circle = findobj(gca,'类型',,,,'线');Circle.Color ='红色的';

打开“ hold”,因此没有消除先前的情节。将训练集和分类线添加到图中。

抓住;plotPV(x,t);plotpc(net.iw {1},net.b {1});抓住离开;

最后,放大了感兴趣的领域。

感知器将我们的新观点(红色)正确分类为“零”类别(由圆圈表示),而不是“一个”(由加号表示)。尽管训练时间很长,但感知者仍然可以正确学习。要查看如何减少与异常值相关的训练时间,请参见“归一化感知器规则”示例。

轴([ -  2 2 -2 2]);