Matlab学习笔记之单层感知机-------------锋锋的快乐小窝
单层感知机的简介
- 单层感知器的特点:单层前向网络,即除输入层和输出层之外,只拥有一层神经元节点
- 前向网络的特点:输入数据从输入层经过隐藏层向输出层逐层传播,相邻两层的神经元之间相互连接,同一层的神经元之间则没有连接
单层感知机的结构及原理
- 单层感知器是感知器中最简单的一种,由单个神经元组成的单层感知器只能用来 解决线性可分的二分类问题 \color{red}{解决线性可分的二分类问题} 解决线性可分的二分类问题
- 将其用于两类模式分类时,就相当于在高维样本空间中,用一个超平面将样本分开
- Rosenblatt 证明,如果两类模式线性可分,则算法一定收敛
- 单层感知器由一个线性组合器和一个二值阈值元件组成
- 输入向量的各个分量先与权值相乘,然后在线性组合器中进行叠加,得到的结果是一个标量
- 线性组合器的输出是二值阙值元件的输入,得到的线性组合结果经过一个二值阈值元件由隐含层传送到输出层实际上这一步执行了一个符号函数
- 二值阈值元件通常是一个上升的函数,典型功能是将非负的输入值映射为 1,负的输入值映射为-1或0
- 考虑一个两类模式分类问题,输入是一个 N N N维向量 x ⃗ = [ x 1 , x 2 , … , x N ] \vec x=[x_1,x_2,…,x_N] x=[x1,x2,…,xN],其中的每一个分量都对应于一个权值 ω i \omega_i ωi,隐含层的输出叠加为一个标量值: v = ∑ i = 1 N x i ω i v=\sum_{i=1}^{N} x_i \omega_i v=i=1∑Nxiωi
- 随后在二值阈值元件中对得到的
v
v
v值进行判断,产生二值输出:
y = { 1 v ≥ 0 − 1 v < 0 y=\left\{\begin{matrix} 1 & v≥0 \\ -1 & v<0 \end{matrix}\right. y={1−1v≥0v<0 - 单层感知器可以将输入数据分成两类: l 1 或者 l 2 l_1或者l_2 l1或者l2
- 当 y = 1 y=1 y=1时,认为输入 x ⃗ = [ x 1 , x 2 , … , x N ] \vec x=[x_1,x_2,…,x_N] x=[x1,x2,…,xN]属于 l 1 l_1 l1类
- 当 y = − 1 y=-1 y=−1时,认为输入 x ⃗ = [ x 1 , x 2 , … , x N ] \vec x=[x_1,x_2,…,x_N] x=[x1,x2,…,xN]属于 l 2 l_2 l2类
- 在实际中,除了输入的N维向量外,还有一个外部偏置,值恒为1,权值为b,如图 1 所示
- 输出
y
y
y 为:
y = s g n ( ∑ i = 1 N x i ω i + b ) y = sgn(\sum_{i=1}^{N} x_i \omega_i+b) y=sgn(i=1∑Nxiωi+b)
- 单层感知机进行模式识别的超平面由此式决定: ∑ i = 1 N x i ω i + b = 0 \sum_{i=1}^{N} x_i \omega_i+b=0 i=1∑Nxiωi+b=0