资源共享分类
通信信号 图像语音 神经网络 智能优化 控制器 数值仿真 数学建模 其他专业

微信:HuangL1121
Q Q:1224848052
团队:嘉兴麦特莱博软件开发工作室
地址:嘉兴港区
 
智能优化
MATLAB代做|MATLAB专业代做|深度学习常见算法的介绍和比较
来源:本站    日期:2019/8/3    浏览量:1135  

功能描述:

很多人都有误解,以为深度学习比机器学习先进。其实深度学习是机器学习的一个分支。可以理解为具有多层结构的模型。具体的话,深度学习是机器学习中的具有深层结构的神经网络算法,即机器学习>神经网络算法>深度神经网络(深度学习)。 
关于深度学习的理论推导,太大太复杂,一些常见的深度学习算法本人也是模模糊糊的,看过好多次的,隔断时间就会忘记,现在对其系统的整理一下(从历史,致命问题出发,再看具体算法的思想,框架,优缺点和改进的方向,又总结了CNN和RNN的比较)。

一、历史:多层感知机到神经网络,再到深度学习
神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。(扯一个不相关的:由于计算技术的落后,当时感知器传输函数是用线拉动变阻器改变电阻的方法机械实现的,脑补一下科学家们扯着密密麻麻的导线的样子…) 
心理学家Rosenblatt提出的单层感知机有一个严重得不能再严重的问题,即它对稍复杂一些的函数都无能为力(比如最为典型的“异或”操作)。 
这个缺点直到上世纪八十年代才被Rumelhart、Williams、Hinton、LeCun等人发明的多层感知机解决,多层感知机解决了之前无法模拟异或逻辑的缺陷,同时更多的层数也让网络更能够刻画现实世界中的复杂情形。 
多层感知机可以摆脱早期离散传输函数的束缚,使用sigmoid或tanh等连续函数模拟神经元对激励的响应,在训练算法上则使用Werbos发明的反向传播BP算法。这就是我们现在所说的【神经网络】,BP算法也叫BP神经网络具体过程可参见我转载的文章(http://blog.csdn.net/abc200941410128/article/details/78708319)。 
但是BP神经网络(多层感知机)面临在致命问题(见下节)。随着神经网络层数的加深,有两个重大问题:一是优化函数越来越容易陷入局部最优解,并且这个“陷阱”越来越偏离真正的全局最优。利用有限数据训练的深层网络,性能还不如较浅层网络。同时,另一个不可忽略的问题是“梯度消失”现象更加严重。 
2006年,Hinton利用预训练方法缓解了局部最优解问题,将隐含层推动到了7层,神经网络真正意义上有了“深度”,由此揭开了深度学习的热潮,随后的DBN、CNN、RNN、LSTM等才逐渐出现。 
这里的“深度”并没有固定的定义——在语音识别中4层网络就能够被认为是“较深的”,而在图像识别中20层以上的网络屡见不鲜。 
为了克服梯度消失,ReLU、maxout等传输函数代替了sigmoid,形成了如今DNN的基本形式。单从结构上来说,全链接的多层感知机是没有任何区别的。

二、深度神经网络的致命问题
随着神经网络层数的加深,有三个重大问题:一是非凸优化问题,即优化函数越来越容易陷入局部最优解;二是(Gradient Vanish)梯度消失问题;三是过拟合问题。

2.1 非凸优化问题
线性回归,本质是一个多元一次函数的优化问题,设f(x,y)=x+y 
多层神经网络,本质是一个多元K次函数优化问题,设f(x,y)=xy 
在线性回归当中,从任意一个点出发搜索,最终必然是下降到全局最小值附近的。所以置0也无妨(这也是为什么我们往往解线性回归方程时初值为0)。 
而在多层神经网络中,从不同点出发,可能最终困在局部最小值。局部最小值是神经网络结构带来的挥之不去的阴影,随着隐层层数的增加,非凸的目标函数越来越复杂,局部最小值点成倍增长,利用有限数据训练的深层网络,性能还不如较浅层网络。。避免的方法一般是权值初始化。为了统一初始化方案,通常将输入缩放到[−1,1],但是仍然无法保证能够达到全局最优,其实这也是科学家们一直在研究而未解决的问题。 
所以,从本质上来看,深度结构带来的非凸优化仍然不能解决(包括现在的各类深度学习算法和其他非凸优化问题都是如此),这限制着深度结构的发展。

2.2 (Gradient Vanish)梯度消失问题
这个问题实际上是由激活函数不当引起的,多层使用Sigmoid系函数,会使得误差从输出层开始呈指数衰减。在数学上,激活函数的作用就是将输入数据映射到0到1上(tanh是映射-1到+1上)。至于映射的原因,除了对数据进行正则化外,大概是控制数据,使其只在一定的范围内。当然也有另外细节作用,例如Sigmoid(tanh)中,能在激活的时候,更关注数据在零(或中心点)前后的细小变化,而忽略数据在极端时的变化,例如ReLU还有避免梯度消失的作用。通常,Sigmoid(tanh)多用于全连接层,而ReLU多用于卷积层。 

   上一篇: MATLAB代做|FPGA代做-最新神经网络,efficientNET网络的python源码程序    下一篇:    
   相关阅读
· MATLAB代做|FPGA代做|simulink代做—— 2020/7/14
· MATLAB代做|FPGA代做|simulink代做—— 2020/5/30
· MATLAB代做|FPGA代做|simulink代做—— 2020/5/30
· MATLAB代做|FPGA代做|simulink代做—— 2020/2/1
· MATLAB代做|FPGA代做|simulink代做—— 2019/12/11
· MATLAB代做|FPGA代做|simulink代做—— 2019/12/11
· MATLAB代做|FPGA代做|simulink代做—— 2019/12/11
· Alexnet网络结构 2019/11/20
· MATLAB代做|FPGA代做|simulink代做—— 2019/9/15
· MATLAB代做|FPGA代做|simulink代做—— 2019/8/29
Copyright 2017-2024 © 嘉兴麦特莱博软件开发工作室
  • 网站备案号:浙ICP备18008591号-1