perceptron and ANN

Posted Pkj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perceptron and ANN相关的知识,希望对你有一定的参考价值。

 1 %% Perceptron Regression
 2 close all
 3 clear
 4 
 5 %%load data
 6 x = load(\'ex4x.dat\');
 7 y = load(\'ex4y.dat\');
 8 
 9 x=ones(80,2);
10 for i=1:80
11     x(i,1)=mod(i,10);
12     x(i,2)=floor(i/10);
13 end
14 
15 for i=1:80
16     if (x(i,1)+x(i,2))<10
17         y(i)=0;
18     else
19         y(i)=1;
20     end
21 end
22 
23 [m, n] = size(x);
24 
25 % Add intercept term to x
26 x = [ones(m, 1), x];
27 
28 %%draw picture
29 % find returns the indices of the
30 % rows meeting the specified condition
31 pos = find(y == 1);
32 neg = find(y == 0);
33 % Assume the features are in the 2nd and 3rd
34 % columns of x
35 figure(\'NumberTitle\', \'off\', \'Name\', \'感知机\');
36 plot(x(pos, 2), x(pos,3), \'+\');
37 hold on;
38 plot(x(neg, 2), x(neg, 3), \'o\');
39 
40 %进行初始化
41 s = 1;                     % 标识符,当s=0时,表示迭代终止
42 n = 0;                     % 表示迭代的次数
43 N = 10000;                 %定义N为最大分类判别次数,判别次数超过此值则认定样本无法分类。
44 w= [0,0,0]\';                % 取权向量初始值
45 
46 % 开始迭代
47 while s
48     J = 0;                % 假设初始的分类全部正确
49     for i = 1:size(pos)
50         if (x(pos(i),:)*w)<=0   % 查看x1分类是否错误,在x属于w1却被错误分类的情况下,w\'x<0
51             w = w+x(pos(i),:)\';% 分类错误,对权向量进行修正
52             J = 1;         % 置错误标志位为1
53         end
54     end
55     for i = 1:size(neg)
56         if (x(neg(i),:)*w)>=0    % 查看x2分类是否错误,在x属于w2却被错误分类的情况下,w\'x>0
57             w = w-x(neg(i),:)\';% 分类错误,对权向量进行修正
58             J = 1;         % 置错误标志位为1
59         end
60     end
61     if J==0                 % 代价为0,即分类均正确
62         s = 0;              % 终止迭代
63     end
64     n = n+1;            % 迭代次数加1
65     if n == N
66         s=0;
67     end
68 end
69 
70 w=[1;w(2)/w(1);w(3)/w(1)];
71 
72 %%Calculate the decision boundary line
73 plot_x = [min(x(:,2)),  max(x(:,2))];
74 plot_y = (-1./w(3)).*(w(2).*plot_x +w(1));
75 plot(plot_x, plot_y)
76 legend(\'Admitted\', \'Not admitted\', \'Decision Boundary\')
77 hold off

 

以上是关于perceptron and ANN的主要内容,如果未能解决你的问题,请参考以下文章

DL之Perceptron:感知器(多层感知机/人工神经元)的原理之基于numpy定义2层感知机底层逻辑代码(与门AND/与非门NAND/或门OR是)解决XOR异或问题之详细攻略

多层感知机识别垃圾短信

用于多类分类的 ANN 模型

感知机(perceptron)及其python代码实现

matlab 实现感知机线性二分类算法(Perceptron)

[RxJS] Implement RxJS `mergeMap` through inner Observables to Subscribe and Pass Values Through(代码片段