人工神经网络

1、什么是神经网络-先了解神经元

从逻辑回归到神经元【感知器】
z = θ 0 + θ 1 x 1 + θ 2 x 2
a = g ( z ) = 1 1 + e z

g ( z ) 表示激活函数,a表示输出;
上图表示一个神经元包括:

  • 输入: 维度向量
  • 线性加权:
  • 激活函数: 要求非线性, 容易求导数
  • 输出标量
激活函数

1.Sigmoid函数: .曾经是最常用的激活函数, 但现在一般只用在输出层, 中间层很少使用.
- 缺点1: 两头过于平坦. 梯度非常小, 在后向传播 (BP) 中, 逐层之后, 达到输入层时, 权值的改动非常小, 导致学习速度很慢.
- 缺点2: 输出值域不对称. [0,1], 只有正数, 没有负数.

2.tanh函数 曾经是最常用的激活函数, 中间层较少使用, 但比Sigmoid效果好.
- 优点: 输出值域对称. [-1,1]
- 缺点: 两头依旧过于平坦

3.ReLU (Rectified Linear Unit)
- 优点:
不存在 饱和(saturate) 区域
收敛速度比sigmoid/tannh函数快
计算高效简单
- 缺点:
Dead Area: 神经元死亡, 输出为0, 权重不更新

4.Leaky ReLU
优点:
没有 Dead Area.

2、神经元到神经网络

将多个神经元连接起来,就形成了神经网络。只有一层隐藏层的浅层神经网络.

含有多个隐藏层便成了深度神经网络(DNN)

3、神经网络如何工作

对于非线性可分问题:一条直线无法实现样本分类,可以借助两条直线共同完成。
如下图,任何一条直线都无法完成对样本的分类;但是p1和p2两条直线的交集可以对样本进行分类。

在神经网络工作的本质原理就是这个思想。
逻辑与

用神经网络来表示此过程,可以设计成一个单隐层神经网络,每层的节点数依次为:3、3、1,如下如图:

按照这样。神经网络可以实现将比较复杂的非线性的样本分布进行分类。这些直线分割的”半平面”取的交集都有个特点用专业的说法“都是凸域的”——其边界任意两点的连线都在域内。如下图各个色块,每一个色块都是一个凸域。

单独一个凸域的表现能力可能不是很强,无法构造一些非凸域的奇怪的形状。如何构造这样的形状?需要将这些单独的凸域取并集,也就是神经元的“逻辑或”运算。
逻辑或

在神经网络的的实现与工作原理可以用一张图来表示:
数学家们经过严格的数学证明,双隐层神经网络能够解决任意复杂的分类问题

4、神经网络之BP算法

BP算法进行误差反向调优。以三层神经网络为例:

其中,d为真实值,O为输出值。
得到误差,如何调整权重让误差不断减小呢?采用随机梯度下降法。
随机梯度下降计算:

随机梯度下降的随机是指从全部样本中随机选取一批样本。所以BP算法调优不是基于全本样本而是基于部分样本,目的是这样可以跳过局部最优解,也就是可以避免陷入局部最优。
几个点:
1.在对数据进行归一化处理的过程,对训练集的归一化的系数应该用于测试集,也就是说数据的归一化,训练集和测试集不能用两种体系。
2.若输出层为Softmax分类器,则Softmax输出的是样本属于某类别的概率,和为1.
3.神经网络用于通常分类classification问题解决效果要比回归问题Regression好,所以解决回归问题通常转换为分类问题。

参考:比较彻底介绍https://blog.csdn.net/han_xiaoyang/article/details/50100367
学习笔记:https://clyyuanzi.gitbooks.io/julymlnotes/content/dl_nn.html
浅层神经网络:http://www.ai-start.com/dl2017/lesson1-week3.html#header-n404

猜你喜欢

转载自blog.csdn.net/yingfengfeixiang/article/details/79934369