神经元模型
-
神经网络的定义
由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实无知所作出的交互反应
机器学习中的神经网络指“神经网络学习”,是机器学习与神经网络的交叉部分
-
神经网络中最基本的成分是神经元模型,它的状态由激活函数、阈值和权值三个概念决定
-
神经元模型
-
M-P神经元模型(McCullock-Pitts neuron)
-
Frank Rossenblatt感知器学习法则
-
激活函数
- 阶跃函数
- 优点:将输入值映射到0和1两个值
-
缺点:不具有连续函数的性质
- Sigmoid函数
- 优点:连续且能够把输入的连续实值变换为0和1之间的输出
-
缺点:
1. 在深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失,其中梯度爆炸发生的概率非常小,而梯度消失发生的概率比较大
2. Sigmoid 的 output 不是0均值(即zero-centered)。这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。
3. 其解析式中含有幂运算,计算机求解时相对来讲比较耗时。对于规模比较大的深度网络,这会较大地增加训练时间。
- tanh函数(Hyperbolic Tangent)
优点:它解决了Sigmoid函数的不是zero-centered输出问题
-
缺点:梯度消失(gradient vanishing)的问题和幂运算的问题仍然存在
注:的导数为
- ReLu函数(Rectified Linear Unit线性整流函数)
- 优点:
解决了gradient vanishing问题 (在正区间)
计算速度非常快,只需要判断输入是否大于0
-
收敛速度远快于sigmoid和tanh
- 缺点:
ReLU的输出不是zero-centered
-
Dead ReLU Problem,指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。有两个主要原因可能导致这种情况产生: (1) 非常不幸的参数初始化,这种情况比较少见 (2) learning rate太高导致在训练过程中参数更新太大,不幸使网络进入这种状态。解决方法是可以采用Xavier初始化方法,以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法。
ReLU目前仍是最常用的activation function,在搭建人工神经网络的时候推荐优先尝试!
Leaky Relu函数(PReLu)
优点:
1. 人们为了解决Dead ReLU Problem,提出了将ReLU的前半段设为而非0,通常.
2. 另一种方式是通过方向传播算法将训练出来-
缺点:理论上来讲,Leaky ReLU有ReLU的所有优点,外加不会有Dead ReLU问题,但是在实际操作当中,并没有完全证明Leaky ReLU总是好于ReLU
- ELU (Exponential Linear Units) 函数
-
优点:
- ELU也是为解决ReLU存在的问题而提出,显然,ELU有ReLU的基本所有优点
- 不会有Dead ReLU问题
- 输出的均值接近0,zero-centered
-
缺点
- 计算量稍大
-
理论上虽然好于ReLU,但在实际使用中目前并没有好的证据ELU总是优于ReLU
-
-
感知机
-
权重调整依据:线性可分收敛定理
第i个样例被错判为负例,因此对决策面法向量进行调整 “异或”难题
多层网络模型
- 多层网络模型的两种主要类型
- 前向传播
-
误差逆传播
标准BP算法
-
标准BP算法与累积BP算法
-
标准BP算法:
优点:在累积误差梯度下降缓慢时,标准BP往往会更快获得较好的解,尤其是在训练集D非常大时
-
缺点:
- 参数更新频繁,计算复杂度高
- 对不同样例进行更新的效果可能相互抵消
-
累积BP算法:
- 优点:读取整个数据集后才对参数进行更新,参数更新频率低
- 缺点:累积误差梯度下降会比较慢
-
隐层神经元数量靠“试错法确定”
避免过拟合的策略:
早停:训练集误差降低但验证集升高,则停止训练,返回具有最小验证集误差的连接权和阈值
正则化:在误差目标函数中增加一个用于描述网络复杂度的部分
参考文献
机器学习 周志华
常用激活函数(激励函数)理解与总结 https://blog.csdn.net/tyhj_sf/article/details/79932893
Rashka:Python Machine Learning