cnn详解

 

  人工神经网络能使用在计算机视觉上为什么还用卷积神经网络?

  1.人工神经网络使用的全连接,造成weight的数量特别的多,weight的维度非常的高

  2.weight数量多需要非常多的计算资源,而gpu的显存是非常的有限,就算使用SGD,每次处理一批一批的图像,但如果用人工神经网络的全连接,将会爆掉。

  3.weight多的话,将可能带来overfitting的问题

 

Batch normalization 用于处理

梯度消失:输入非常大时,输出也非常大,此时斜率接近0,BP求偏导的时候,链式法则需要把所有的偏导乘在一起,因为现在有一个输入非常的大,或者是非常的小,用了SIGMOD的active ,它有一个导数非常非常接近0,此时求出的偏导接近0,意味着之后用随机梯度下降学不到东西,它就饱和了。可以认为所有的神经元都挂掉了,因为没有要修正的梯度传过来,什么也学不到

去均值:227X227X3的图片100w张

  方法1:100w张的图片加载一起,在除以100W,得到227X227X3的,Alexnet 用的这个

  方法2: VGG,3个颜色通道,就求出3个数字,分别表示RGB3个颜色通道的均值,就是一个3X1的向量,

为什么能降低weight的维度?

每一个神经元可以看做是一个小朋友

  如果是人工神经网络的话,那么使用的是全连接,那么每个小朋友将一次把整个图片全看懂,所以对于32*32*3的图片,对于每一个小朋友会后32*32*3 的权重

  如果是卷积神经网络,每一个小朋友每次看到的图片大小根据窗口(3*3)的大小,因此每次看到图片的一部分,但是每次看的时候的参数是不变的,因此有3*3*小朋友个数,所以权重降低了。每个小朋友的参数不一样

depth:有多少小朋友

每一个小朋友的计算结果我们叫做feature map,有几个小朋友最后就有多少层feature map,

       所谓的层就是这里的depth,下一层神经元的个数。

步长stride:窗口每次滑动多少

 填充值:zero-padding :不一定能刚好划到最右边,所以会在边缘补充0,一圈或者多圈

矩阵和矩阵之间能做运算,数据矩阵,权重矩阵对应位置相乘,再全加一起,也就是内积的运算

 

RELU层:有时会和Conv合在一起,一般接在conv后面,

目的:为了不要将全部的信息都传到下一层,就是过滤一下信号

feature map不要直接往后传,而是先过滤一下

RELU修正线性单元

 

sigmod 和tanh 在输入很大很小时,斜率接近0,梯度消失,很可怕

ReLU:小于0 的输入,将不会往后传.缺点:输入全是小于0的将不会在被激活

Pooling layer

 

图像数据太可怕了,因为它的维度实在太高,而小朋友太少时又学不到东西,高纬度会过拟合

pooling layer就是下采样,保持住图像中的信息,

 

前面是过激活层之后的输出,怎么从激活层的输出保留住大部分的信息又同时让维度降下来呢?

FC的目的就是防止pooling layer 下采样过猛,数据消失的厉害所以用FC将其补充回来

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值