神经网络
一、基础概念
1、生物神经网络:神经元
每个神经元与其他神经元相连,当它“兴奋”时,会向其他神经元发送化学物质(好像叫神经递质),从而改变这些神经元内的电位,如果某个神经元的电位超过了某个“阈值”,就会被激活,即兴奋起来,向其他神经元发送化学物质。

2、人工神经网络
M-P神经元模型
神经元接收来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过激活函数处理以产生神经元的输出。

输入神经元
只接受输入,没有激活函数,不对数据进行处理。
隐层(隐含层)
(1)处于输入神经元和输出神经元之间的神经元层,有激活函数,会对数据进行处理。
(2)神经元个数和层数可以自由设置,不受输入和输出影响。
(3)提升隐层数和隐层内神经元个数是提高神经网络表示能力和特征选择能力的重要手段,常用的是提升隐层数。
输出神经元
负责输出,有激活函数,会对传递来的数据进行处理。
激活函数
(1)理想中的激活函数是阶跃函数,但是由于其具有不连续、不光滑等不太好的性质。
(2)实际中常用的是sigmoid函数。
二、感知机
1、特点
(1)感知机是没有隐层,只有输入神经元和输出神经元的单层功能神经元神经网络。
(2)只能处理线性可分问题。
(3) 若要处理非线性可分问题,需要多层功能神经元。
三、多层前向反馈神经网络
1、特点
(1)每层与下层神经元全相连。
(2) 不存在同层相连。
(3) 不存在跨层相连。
如图:

说明:前馈是指网络中不存在环或回路。
四、误差逆向传播算法(BP神经网络算法)
1、作用
(1)训练多层网络的算法,即用于确定神经元之间连接的权重和功能层神经元的阈值。
(2) BP算法不仅可以用于多层前馈神经网络,还可以用于其他类型的神经网络,但通常说“BP网络”时一般指用BP算法训练的多层前馈神经网络。
2、算法概要介绍
(1) BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整。
(2)概要步骤
-初始化:在0-1范围内随机初始化网络中所有的连接权和阈值。
-循环重复直到到达中止条件:根据每个样本的训练结果与实际结果的差值使用梯度下降策略更新权值和阈值(已有公式)。
-输出结果:连接权和阈值。
(3)BP算法有两种:标准BP和累积BP,上面介绍的是标准BP,标准BP是针对每个样本进行更新,而累积BP是针对每一轮次进行更新。累积BP参数更新频率低,但是在误差下降到一定程度后下降会十分缓慢,这时使用标准BP往往更快,尤其是训练集大时。
(4)缺点及解决方案:BP神经网络经常遭遇过拟合,对应的策略有“早停”和正则化。
四、其他神经网络的类别及作用
1、无监督-ART
用于聚类,网络的输出神经元互相竞争,每一时刻只有一个竞争获胜的神经元被激活,其他神经元被抑制。
2、SOM网络-聚类
将高维输入数据映射到低维空间,同时保持高维空间的拓扑结构。
3、级联相关网络-结构自适应网络
结构自适应网络的目标是找到最符合数据特点的网络结构、连接权值和阈值。无需设置网络层数、隐层神经网络元数目,且训练速度快,但数据量较小时容易过拟合。
4、Elman网络-递归神经网络
允许出现环形结构,可以让一些神经元的输出反馈回来作为输入信号,从而可以处理与时间有关系的动态变化。
五、参考
1、本文主要是周志华老师的《机器学习》的简单笔记
2、文中图片均来自网上,按文章引用顺序,它们的网址分别如下: