关于神经网络和几种常见的神经网络
- 2020-03-04 08:00:00
- 转贴:
- CSDN
- 5315
人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型。
神经网络技术起源-感知机
神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。早期感知机的推动者是Rosenblatt,当时感知器传输函数是用线拉动变阻器改变电阻的方法机械实现的。但是,Rosenblatt的单层感知机有个严重的问题,即它对稍微复杂一些的函数都无能为力,例如最为典型的异或操作。多层感知机
随着数学的发展,到上世纪八十年代Rumelhart、Williams、Hinton、LeCun等人发明了多层感知机(multilayer perceptron),多层感知机有多个隐含层,可以摆脱早期离散传输函数的束缚,使用sigmoid或tanh等连续函数模拟神经元对激励的响应,在训练算法上则使用Werbos发明的反向传播BP算法。这就是我们现在所说的神经网络NN。
多层感知机解决了之前无法模拟异或逻辑的缺陷,同时更多的层数也让网络更能够刻画现实世界中的复杂情形。神经网络的层数直接决定了它对现实的刻画能力-利用每层更少的神经元拟合更加复杂的函数。
随着神经网络层数的加深,优化函数越来越容易陷入局部最优解,并且这个陷阱越来越偏离真正的全局最优。利用有限数据训练的深层网络,性能不如较浅层网络。同时,另一个不可忽略的问题是随着网络层数增加,梯度消失现象更加严重。例如使用sigmoid作为神经元的输入输出函数。对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25.层数一多,梯度指数衰减后低层基本上接受不到有效的训练信号。
深度神经网络DNN
2006年,Hinton利用预训练方法缓解了局部最优解问题,将隐含层推动到了7层,神经网络真正意义上有了深度。深度没有固定定义,在语音识别中4层神经网络就被认为是较深的,而在图像识别中20层以上的网络屡见不鲜。为了克服梯度消失,ReLU、maxout等传输函数代替了sigmoid,形成了如今DNN的基本形式。单从结构上来说全连接的DNN和多层感知机是没有任何区别的。
全连接DNN的结构里下层神经元和所有的上层神经元都能够形成连接,带来的潜在问题是参数数量的膨胀。
卷积神经网络CNN
对于CNN来说,并不是所有上下层神经元都能直接相连,而是通过卷积作为中介,同一个卷积核在所有图像内是共享的,图像通过卷积操作后仍然保留原先的位置关系。
循环神经网络RNN
全连接的DNN还存在另一个问题,无法对时间序列上的变化进行建模。然而,样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要。为了适应这种需求,就出现了循环神经网络。
在普通的全连接网络或CNN中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立,因此又被称为前向神经网络(Feed-forward Neural Network)。而在RNN中,神经元的输出可以在下一个时间戳直接作用到自身。
长短时间记忆单元LSTM
RNN可以看成一个在时间上传递的神经网络,它的深度是时间的长度。梯度消失现象又在时间轴上出现了。对于t时刻来说,它产生的梯度在时间轴上向历史传播几层之后就消失了,根本就无法影响太遥远的过去。因此,这种影响也就只能维持若干个时间戳。
为了解决时间上的梯度消失,机器学习领域发展出了长短时记忆单元LSTM,通过门的开关实现时间上记忆功能,并防止梯度消失。
其他结构
RNN既然能够继承历史信息,是不是也能吸收点未来的信息呢?因为在序列信号分析中,如果能预知未来,对识别一定也是有所帮助的。因此就有了双向RNN、双向LSTM,同时利用历史和未来的信息。
事实上,不论是哪种网络,他们在实际应用中常常混合着使用,比如CNN和RNN在上层输出之前往往会接上全连接层,很难说某个网络到底属于哪个类别。
发表评论
文章分类
联系我们
联系人: | 王先生 |
---|