CNN减少参数的方法
2017-02-21 22:05
323 查看
参数爆炸
如果我们有1000x1000像素的图像,有1百万个隐层神经元,那么他们全连接的话(每个隐层神经元都连接图像的每一个像素点),就有1000x1000x1000000=10^12个连接,也就是10^12个权值参数。如下左图:
使用感受野之后
假如局部感受野是10x10,隐层每个感受野只需要和这10x10的局部图像相连接,所以1百万个隐层神经元就只有一亿个连接,即10^8个参数。比原来减少了四个0(数量级)。
感受野(receptive field)
感受野的计算
公式:感受野的大小是由kernel size和stride size一起决定的,公式是:rfsize = f(out, stride, ksize) = (out - 1) * stride + ksize,其中out是指上一层感受野的大小。
怎么计算感受野
因为博客中用VGG16做示例,但是没有给出具体的结构,这里再放一个VGG16的结构示意图,方便理解。
VGG16的结构示意图
权值共享
隐含层的每一个神经元都连接10x10个图像区域,也就是说每一个神经元存在10x10=100个连接权值参数。那如果我们每个神经元这100个参数是相同的呢?也就是说每个神经元用的是同一个卷积核去卷积图像。这样我们就只有多少个参数??一百个,一个感受野对应一个权值权值,这个权值在所有的神经元之间共享,也就是说:所有连接这个感受野的神经元在和这个感受野的链接上的权值是固定的。
这样你只提取了一种特征啊?对了,真聪明,我们需要提取多种特征对不?假如一种滤波器,也就是一种卷积核就是提出图像的一种特征,例如某个方向的边缘。那么我们需要提取不同的特征,怎么办,加多几种滤波器不就行了吗?对了。所以假设我们加到100种滤波器,每种滤波器的参数不一样,表示它提出输入图像的不同特征,例如不同的边缘。这样每种滤波器去卷积图像就得到对图像的不同特征的放映,我们称之为Feature Map。所以100种卷积核就有100个Feature Map。这100个Feature Map就组成了一层神经元。到这个时候明了了吧。我们这一层有多少个参数了?100种卷积核x每种卷积核共享100个参数=100x100=10K,也就是1万个参数。
不同滤波器的表达见上图右。
如果我们有1000x1000像素的图像,有1百万个隐层神经元,那么他们全连接的话(每个隐层神经元都连接图像的每一个像素点),就有1000x1000x1000000=10^12个连接,也就是10^12个权值参数。如下左图:
使用感受野之后
假如局部感受野是10x10,隐层每个感受野只需要和这10x10的局部图像相连接,所以1百万个隐层神经元就只有一亿个连接,即10^8个参数。比原来减少了四个0(数量级)。
感受野(receptive field)
感受野的计算
公式:感受野的大小是由kernel size和stride size一起决定的,公式是:rfsize = f(out, stride, ksize) = (out - 1) * stride + ksize,其中out是指上一层感受野的大小。
怎么计算感受野
因为博客中用VGG16做示例,但是没有给出具体的结构,这里再放一个VGG16的结构示意图,方便理解。
VGG16的结构示意图
权值共享
隐含层的每一个神经元都连接10x10个图像区域,也就是说每一个神经元存在10x10=100个连接权值参数。那如果我们每个神经元这100个参数是相同的呢?也就是说每个神经元用的是同一个卷积核去卷积图像。这样我们就只有多少个参数??一百个,一个感受野对应一个权值权值,这个权值在所有的神经元之间共享,也就是说:所有连接这个感受野的神经元在和这个感受野的链接上的权值是固定的。
这样你只提取了一种特征啊?对了,真聪明,我们需要提取多种特征对不?假如一种滤波器,也就是一种卷积核就是提出图像的一种特征,例如某个方向的边缘。那么我们需要提取不同的特征,怎么办,加多几种滤波器不就行了吗?对了。所以假设我们加到100种滤波器,每种滤波器的参数不一样,表示它提出输入图像的不同特征,例如不同的边缘。这样每种滤波器去卷积图像就得到对图像的不同特征的放映,我们称之为Feature Map。所以100种卷积核就有100个Feature Map。这100个Feature Map就组成了一层神经元。到这个时候明了了吧。我们这一层有多少个参数了?100种卷积核x每种卷积核共享100个参数=100x100=10K,也就是1万个参数。
不同滤波器的表达见上图右。
相关文章推荐
- 卷积神经网络(CNN)的参数优化方法
- 卷积神经网络(CNN)的参数优化方法
- Qt configure 参数不完全说明 以及 精简系统 减少编译时间的一些方法
- 卷积神经网络(CNN)的参数优化方法
- 【专题】window.open的例子和使用方法以及参数说明(完整版)
- window.open的使用方法以及参数说明
- window.open的例子和使用方法以及参数说明(完整版)
- Java中向方法传参数只有传值一种!
- 用javascritp脚本在页面中传递参数和接受参数的方法
- PowerBuilder窗口之间传递多参数的方法
- 关于上个Flex-Jsp-DB例子中Flex和Jsp传递中文参数问题的解决方法!(Tomcat服务器)
- 传参数的方法!
- XML中多个参数(链接)组合方法
- 为何Marshal一个接口方法中的指针参数老出错
- 反射一个带有out参数的方法
- 关于exe文件传递参数方法
- XML中多个参数(链接)组合方法
- [技术]window.open的使用方法以及参数说明
- window.open的使用方法以及参数说明
- fwrite的用法和main参数的使用方法(自己的总结)