卷积神经网络CNN公式推导走读

 
0有全连接网络,为什么还需要CNN
图像处理领域的特殊性,
     全连接网络缺点:                              CNN解决办法:
     1参数太多                                   |     局部连接
     2没有利用图像之间位置的信息          |     权值共享
     3网络层数限制                             |     下采样:pooling,只保留重要参数,提高鲁棒性
 
 
1激活函数
Relu:     图像:  sigmoid图像:
相比sigmoid优势:
     1速度快,因为运算简单max ;
     2 坚强梯度消失问题,梯度计算时每经过一层就累乘一个sigmoid的导数,图像可以看出最大是1/4,而relu导数是1,不会衰减;
     3稀疏性:大脑5%的神经元是激活的,神经网络15%比较好,sigmoid有50%激活,relu小于0的都是不机会的,所以激活概率更低。
 
 
 
2网络架构: INPUT -> [[CONV]*N -> POOL?]*M -> [FC]*K
                                   卷积层                池化层               全连接层
 
2.1卷积层(多维的,维度=卷积核的个数)
局部连接:只有上一层部分神经元相连;
权值共享:对所有像素的权值都是一样的,个数为filter的个数:3*3的filter有3*3个权值。
注:深度大于1的输入,filter是深度比较与输入深度一致
 
2.2池化层
主要作用是下采样去掉不重要的样本,进一步减少参数个数。除了取max 还有mean等方法
2.3全连接层(同bp网络)
 
3训练
bp原理一样(三步):
不同:
局部连接和下采样影响第二步误差项计算;
权值共享影响第三步w的计算;
 
3.1卷积层训练
 
 
同bp借用netj,卷积conv(矩阵):
由于权重共享,a1,2 需要累加a1,1 和a1,2的影响:
eg1.a1,1与netj1,1有关:
所以,
eg2.a1,2与netj1,1 和netj1,2有关:
所以,
 
总结,
可以写成:
 
3.2池化层训练
由于没有需要学习的参数,只是梯度传递(max或mean) ,所以不需要梯度计算。
eg max
梯度等于l-1层值最大的
 
eg.mean  梯度等于1/n^2
 
 
 
 
 

参考:网络博客

posted @ 2017-04-15 15:40  rongyux  阅读(875)  评论(0编辑  收藏  举报