神经网络——感知器

1.  感知器结构

     单层感知器做为学习神经网络入门中的入门,理解感知器的结构和原理是学习其他神经网络的基础。

     单层感知器就是包含一层权值可变的神经网络的感知器模型,可用于解决线性可分的二分类问题。其模型的结构图如下图。

                                                                              图 1 单层感知器结构图

      单层感知器进行模式识别的超平面由下式决定;

                                                                                   \sum_{i = 1}^{N}_{wi}_{xi} + b = 0

      例如,当维数 N=2 时,输入向量可表示为平面直角坐标系中的一个点。此时分类超平面是一条直线:

                                                                              w_{1}x_{1}+w_{2}x_{2}+b = 0

2. 算法步骤

     (1)定义变量和参数

     (2)\eta = 学习效率,大于0 小于1;

     (3)激活。 输入样本训练,对每个训练样本指定其期望值d。

     (4)计算实际输出。

                              y\left ( n \right ) = sgn\left ( w^{T}\left ( n \right ) x\left ( n \right )\right )

       (5)  更新权值向量。

                             \omega \left ( n+1 \right ) = \omega \left ( n \right )+\eta \left [ d\left ( n \right ) -y\left ( n \right )\right ]x\left ( n \right )

       (6)  判断。若满足收敛条件,则算法接受;不满足,n 自增1转至第三步。

3. 简单例 

      (1) 用简单矩阵创建并训练一个感知器。

                matlab代码如下:

%% 清空环境变量
clear all;
clc;

%% 创建感知器
p = [-1,-1;0,1] % 输入数据
t = 1;  % 1个输出节点
net = newp(p,t);  % 创建感知器

%% 训练
P = [0,0,1,1;0,1,0,1]  % 用于训练的输入数据,每列是一个输入向量
T = [0,1,1,1]  % 输入数据的期望输出
[net,tr] = train(net,P,T); % train 函数进行训练
newP = [-0.5, 0.9]';  % 第一个测试数据
newT = sim(net,newP)  % 第一个测试数据为0
newP = [0.9,0.9]'; % 第二个测试数据
newT = sim(net,newP) % 第二个测试数据的输出

其训练出的神经网络可见下图:

由图可知,创建的感知器网络由2个输入节点,1个输出节点。

  (2) 创造一个数子符号感知器

            matlab代码
          


clear all;
clc;

p = [-100,100]; % 输入数据标量   -100 =< x >= 100
t = 1; % 1个输出
net = newp (p,t); % 创建一个感知器

%% 训练集
P = [-50,-28,-10,-5,0,1,20,89,70] % 输入训练
T = [0,0,0,0,1,1,1,1,1]
net = train(net,P,T); % 训练网络
newP = -10:0.2:10
[newT,E,perf] = sim(net,newP)
plot(newP,newT,'LineWidth',1);

其运行结果如下图:

train 函数的 P 参数和 T 参数中,向量都是按列排列的,列数表示输入向量或输出向量的个数,P 的列数和 T 的列数应该相等。

4. 

       我们会发现实例中代码的过程和第二部分所述的算法步骤不对应,因为其中多数步骤都封装在函数 train 中,可通过matlab中的对话框尽心查看。

参考文献:

陈明. MATLAB神经网络原理与实例精讲 [M].清华大学出版社,2013:104-128.

发布了21 篇原创文章 · 获赞 2 · 访问量 868

猜你喜欢

转载自blog.csdn.net/weixin_44132627/article/details/104532166