遗传算法、DBN、ResNet与小波神经网络

遗传算法、DBN、ResNet与小波神经网络

遗传算法

一般神经网络的权重调整都是通过BP来实现的,其实也可以不通过BP实现,比如通过遗传算法。
比如现在有一层神经网络,他的权重是(X1,X2,X3).遗传算法即生成多个同样的网络模型,每次取效果比较好的几个,然后将他们的权重像染色体一样交叉组合。比如两个模型x11,x12,x13和x21,x22,x23被保留,后面就可以组合出x11,x12,x23或者x11,x21,x13…

分组是对遗传算法的一种优化,即将模型分成许多组,每次在组里进行淘汰和染色体交换。这样可以保持某些组的一些可能暂时无益但长期有益的特征获得保存,防止一些长期有益特征一出现就被淘汰。

DBN

DBN,深度置信网络,是有多层的限制波尔茨曼机RBM组成的,RBM包括一层显层和一层隐层,用于进行特征提取,但其训练过程并不是和普通的神经网络一样每次搞到结果再整个梯度下降,而是一层一层的进行的——隐层提取显层的信息,再尝试将隐层还原为显层,以此来进行训练,类似于AE。

所以一般DBN的最末几层还是普通的神经网络,RBM一般放在底层作为特征提取器,得益于其一层一层的训练可以有效的避免深层神经网络的梯度消失/梯度爆炸问题。

RBM,其中v为显层,h为隐层,其实就是一个两层的神经网络,训练过程不同而已:
遗传算法、DBN、ResNet与小波神经网络_第1张图片
整个网络就可以长这样,靠多个RBM提取深层特征:
遗传算法、DBN、ResNet与小波神经网络_第2张图片

ResNet

ResNet深度残差网络,为了解决网络模型太深导致的梯度消失和梯度爆炸现象产生的。
因为模型的参数更新靠梯度下降求偏导,我们知道导数越求阶数越低,其变化率越小,反应在网络中就是同样的Δ,函数变化率越往前越小,这就是梯度消失。

所以模型超过特定深度之后一般效果会越来越差。

但如果,我把后面的网络层,都做成恒等映射,或者让他可以实现恒等映射(即层输出等于层输入,但多层网络实现恒等映射是很难的),他至少能保持不降吧。

残差神经网络就可以实现可选的恒等映射:
遗传算法、DBN、ResNet与小波神经网络_第3张图片
原来我们想让H(x)=x,但模型不方便学习,我们就令H(x)=F(x)+x,在有需要的时候使F(x)=0,不就实现恒等映射了吗,计算量还小了。这样至少可以实现多层神经网络效果的不下降,那么在必要的时候调整F(x),就可以实现网络整体准确率的上升,实现大深度的模型。

小波神经网络

傅里叶变换可以把时域特征转移到频域上,但会丢失时域特征。
小波分析也可以把时域特征转移到频域上,还不会丢失时域特征。
所以时域-频域问题就可以用小波分析,小波神经网络即小波分析与神经网络的结合。它具有一般的神经网络的结构,但是将神经网络隐结点的激活函数(比如sigmoid)由小波函数来代替,相应的输入层到隐含层的权值w及隐含层的阈值b分别由小波函数的尺度伸缩因子和时间平移因子所代替。

遗传算法、DBN、ResNet与小波神经网络_第4张图片
图中f即激活函数,w是权值,b是偏置(阈值)
WNN这篇讲的挺全的:https://www.cnblogs.com/fd-682012/p/11905122.html

你可能感兴趣的:(深度学习,大数据)