卷积神经网络各层分析

在刚刚接触CNN和caffe之后,也对CNN当中的各类layers做了简单的了解。但对于各个层具体是如何进行运算的,其实并不是特别了解。最近调完实验后,下一步就要进行调参和调网络的工作,所以就准备在这个时间深入地了解一下。主要针对conv层、全连接层、pooling层,另外稍带介绍了CNN中的激活函数Relu。文章主要参考了零基础入门深度学习(4)中的内容,并根据本人对于CNN的理解进行了部分修改。

 

本文将详细介绍卷积神经网络以及它的训练算法,以及动手实现一个简单的卷积神经网络。

 

  一个新的激活函数:Relu 

 

最近几年卷积神经网络中,激活函数往往不选择sigmoid或tanh函数,而是选择relu函数。Relu函数的定义是:

 

Relu函数图像如下图所示:

 

Relu函数作为激活函数,有下面几大优势:

 

 

 

  • 稀疏性 通过对大脑的研究发现,大脑在工作的时候只有大约5%的神经元是激活的,而采用sigmoid激活函数的人工神经网络,其激活率大约是50%。有论文声称人工神经网络在15%-30%的激活率时是比较理想的。因为relu函数在输入小于0时是完全不激活的,因此可以获得一个更低的激活率。

 

  全连接网络 VS 卷积网络 

 

全连接神经网络之所以不太适合图像识别任务,主要有以下几个方面的问题:

 

  • 参数数量太多

 

考虑一个输入1000*1000像素的图片(一百万像素,现在已经不能算大图了),输入层有1000*1000=100万节点。假设第一个隐藏层有100个节点(这个数量并不多),那么仅这一层就有(1000*1000+1)*100=1亿参数,这实在是太多了!我们看到图像只扩大一点,参数数量就会多很多,因此它的扩展性很差。

 

  • 没有利用像素之间的位置信息 

 

对于图像识别任务来说,每个像素和其周围像素的联系是比较紧密的,和离得很远的像素的联系可能就很小了。如果一个神经元和上一层所有神经元相连,那么就相当于对于一个像素来说,把图像的所有像素都等同看待,这不符合前面的假设。当我们完成每个连接权重的学习之后,最终可能会发现,有大量的权重,它们的值都是很小的(也就是这些连接其实无关紧要)。努力学习大量并不重要的权重,这样的学习必将是非常低效的。

 

  • 网络层数限制 

 

我们知道网络层数越多其表达能力越强,但是通过梯度下降方法训练深度全连接神经网络很困难,因为全连接神经网络的梯度很难传递超过3层。因此,我们不可能得到一个很深的全连接神经网络,也就限制了它的能力。

 

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值