1. 神经元
在生物学中,神经元细胞有兴奋与抑制两种状态。大多数神经元细胞在正常情况下处于抑制状态,一旦某个神经元受到刺激并且电位超过一定的阈值后,这个神经元细胞就被激活,处于兴奋状态,并向其他神经元传递信息。基于神经元细胞的结构特性与传递信息方式,神经科学家 Warren McCulloch 和逻辑学家 Walter Pitts 合作提出了“McCulloch–Pitts (MCP) neuron”模型。在人工神经网络中,MCP模型成为人工神经网络中的最基本结构。MCP模型结构如 图1 所示。
图1 MCP 模型结构
从 图1 可见,给定 n 个二值化(0或1)的输入数据
其中
具体而言,如果线性加权累加结果(即
从另外一个角度来看,对于任何输入数据
2. 单层感知机
2.1. 单层感知机模型
1957年 Frank Rosenblatt 提出了一种简单的人工神经网络,被称之为感知机。早期的感知机结构和 MCP 模型相似,由一个输入层和一个输出层构成,因此也被称为“单层感知机”。感知机的输入层负责接收实数值的输入向量,输出层则为1或-1两个值。单层感知机可作为一种二分类线性分类模型,结构如 图1 所示。
图1 感知机模型
单层感知机的模型可以简单表示为:
对于具有
2.2. 训练过程
给定一个
其具体的训练过程为:
[1] - 定义数据集,变量和参数,其中给定一个
[2] - 对权重系数
[3] - 将训练样本输入到单层感知机中,根据模型公式,得到实际输出
[4] - 根据如下公式更新权重系数;
[5] - 当满足收敛条件时,算法结束;若不满足收敛条件则输入下一条样本继续训练,即
- 误差小于某个预先设定的较小值
; - 迭代的权重系数间权值变化小于某个较小值;
- 迭代次数超过设定的最大迭代次数。
2.3. 单层感知机存在的问题
图2 单层感知机模拟不同逻辑函数功能的示意图
单层感知机可被用来区分线性可分数据。在 图2 中,逻辑与(AND)、逻辑与非(NAND)和逻辑或(OR)为线性可分函数,所以可利用单层感知机来模拟这些逻辑函数。但是,由于逻辑异或(XOR)是非线性可分的逻辑函数,因此单层感知机无法模拟逻辑异或函数的功能。
3. 多层感知机
由于无法模拟诸如异或以及其他复杂函数的功能,使得单层感知机的应用较为单一。一个简单的想法是,如果能在感知机模型中增加若干隐藏层,增强神经网络的非线性表达能力,就会让神经网络具有更强拟合能力。因此,由多个隐藏层构成的多层感知机被提出。
如 图1 所示,多层感知机由输入层、输出层和至少一层的隐藏层构成。网络中各个隐藏层中神经元可接收相邻前序隐藏层中所有神经元传递而来的信息,经过加工处理后将信息输出给相邻后续隐藏层中所有神经元。
图1 多层感知机模型
在多层感知机中,相邻层所包含的神经元之间通常使用“全连接”方式进行连接。所谓“全连接”是指两个相邻层之间的神经元相互成对连接,但同一层内神经元之间没有连接。多层感知机可以模拟复杂非线性函数功能,所模拟函数的复杂性取决于网络隐藏层数目和各层中神经元数目。