一、神经元模型
2.1 神经元
1943 年,美国神经生理学家沃伦·麦卡洛克( Warren McCulloch ) 和数学家沃尔特 ·皮茨(Walter Pitts )对生物神经元进行建模,首次提出了一种形式神经元模型,并命名为McCulloch-Pitts模型,即后来广为人知的M-P模型。
在M-P模型中,神经元接受其他n个神经元的输入信号(0或1),这些输入信号经过权重加权并求和,将求和结果与阈值(threshold) θ 比较,然后经过激活函数处理,得到神经元的输出。
总的来说,神经元其实是一个 输入值 + 计算方式 + 输出值 这样的一个数学表达式。通过一系列的神经元连接在一起就组成了神经网络。其计算方式包括多种逻辑运算,如取反运算、逻辑或、逻辑与等。
2.2 网络结构
人工神经网络由神经元模型构成,这种由许多神经元组成的信息处理网络具有并行分布结构。
二、感知机
2.1 单层感知器
1958 年,罗森布拉特( Roseblatt )提出了一种具有单层计算单元的神经网络(感知器),它能够通过训练自动确定参数。训练方式为有监督学习,即需要设定训练样本和期望输出,然后调整实际输出和期望输出之差的方式(误差修正学习)。
2.1 多层感知器
多层感知器指的是由多层结构的感知器递阶组成的输入值向前传播的网络,也被称为前馈网络或正向传播网络。
以三层结构的多层感知器为例,它由输入层、中间层及输出层组成。
三、BP算法--误差反向传播算法
多层感知器的训练使用误差反向传播算法(Error Back Propagation),即BP算法。
3.1 BP算法的基本过程
BP算法就是通过比较实际输出和期望输出得到误差信号,把误差信号从输出层逐层向前传播得到各层的误差信号,再通过调整各层的连接权重以减小误差。
- 前向传播计算:由输入层经过隐含层向输出层的计算网络输出。
- 误差反向逐层传递:网络的期望输出与实际输出之差的误差信号由输出层经过隐含层逐层向输入层传递。
- “前向传播计算”与“误差反向逐层传递”反复进行网络训练。
3.2 激活函数
激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。
激活函数通过误差反向传播算法调整多层感知器的连接权重时,一个瓶颈问题就是激活函数。
- M-P 模型中使用阶跃函数作为激活函数,只能输出 0或 1,不连续所以 不可导。
-为了使误差能够传播,鲁梅尔哈特等人提出使用可导函数Sigmoid作为激活函数。
3.3 BP算法示例
Step1:调整中间层与输出层之间的连接权重;
Step2:中间层到输出层的连接权重调整值;
Step3:调整输入层与中间层之间的连接权重。
四、优化问题
4.1 难点
- 参数过多,影响训练;
- 非凸优化问题:即存在局部最优而非全局最优解,影响迭代;
- 梯度消失问题,下层参数比较难调;
- 参数解释起来比较困难。
4.2 需求
- 计算资源要大;
- 数据要多;
- 算法效率要好:即收敛快。
五、总结
通过前馈神经网络这一章节的学习,我们知道神经网络的基础知识:神经元是组成神经网络的基本单元,感知器是最基本的神经网络算法。神经网络算法包括输入层,隐藏层和输出层,很多算法都是通过不断的训练来学到某种规律并输出结果。