关于CNN、RNN中的权值共享

  • CNN

卷积相对于全连接卷积神经网络的优势之一,就在于其权值共享大大减少了参数量
借用全连接网络到卷积神经网络逐步推导(组图无公式)中的一张图:
fc
由于全连接层只能接收一维向量,因此对于输入为M x N的图像,需要先展平为一维的(MxN) x 1
因此若得到的特征图feature map大小为P x Q(对应的一维向量为(PxQ) x 1),则map中每个元素需要MxN个权重,分别于输入图对应做加和,于是最后需要M x N x P x Q个参数权重
而在卷积神经网络中,借用全连接网络 VS 卷积网络中的动态图
conv
若卷积核为[[1, 0, 1], [0, 1, 0], [1, 0, 1]]则该卷积核将作用于整张image,生成一张对应的feature map,卷积核的数量,则决定了最后特征图的深度(通道数)
此时,若原image大小为M x N x K1 单个卷积核大小为F x F x K1,共K2个卷积核,则总共需要F x F x K1 x K2个参数,这里的四个参数一般(远)小于上述MNPQ,大大减小了计算量
之所以在卷积神经网络可以用到权值共享,则是考虑到对于一张图像的某个像素点,其往往具有局部相关性,即与其相邻的像素点相关性较大,越远相关性越小,这样通过一步步增加网络深度,也能慢慢学到图像的全局特征

  • RNN

而在RNN中,权值共享则显得很简单,借用Recurrent Neural Networks Tutorial, Part 2 – Implementing a RNN with Python, Numpy and Theano中的图:
rnn可以看到这里无论是W、U、V在每个时间步上都是同一个,因此若说CNN是空间上的权值共享,那么RNN就是时间步上的共享
对于每个时间步的输出Ot,若其误差为Et,则反向传播时
∂ E t ∂ W = ∑ k = 0 t ∂ E k ∂ W \frac{\partial {E_t} }{\partial{W}}=\sum_{k=0}^{t}{\frac{\partial {E_k} }{\partial{W}}} WEt=k=0tWEk
之所以在RNN中需要用参数共享,一方面跟CNN一样,是为了减少参数量
另一方面,由于原始RNN是变长的,因此若不共享,每个W都不同,那么需要设置多少个W就无法提前知晓了,实现上困难
此外,参数共享在一定程度上可以对文本处理中的每个单元实现“相对公平”,虽然这不一定是好事,后续LSTM以及attention的提出则打破了这种公平。

  • 12
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值