卷积神经网络CNN学习(一)

  1. 必须掌握的:
  • 层次结构
  • 层次结构里面使用的激活函数
  1. 如果用CNN,预处理一般做“**去均值”和“归一化”**就好了。它的底层是openCV,(scilearn底层是numpy,可以用sklearn做机器学习,也可以用numpy做机器学习)可以用CNN做图像处理,也可以用openCV做图像处理;用openCV做图像处理还要做PCA、白化,而CNN的卷积层的效果就能达到pac和白化的效果,所以不需要另外在做PCA和白化;所以建议:对数据特征进行预处理,去均值、归一化.

  2. Pooling Layer(池化层):压缩数据和参数的量,减小过拟合;一般采用最大池化;

  3. FC(全连接层):两层之间所有神经元都有权重连接,在CNN中,一般会出现在尾部。它的作用是:将所有之前卷积得到的局部的特征信息进行整合得到一个全局信息

  4. Batch Normalization Layer:不容易导致神经元饱和,但是层次较深加BN的话,模型训练速度很慢,慎用!!

  5. 卷积神经网络-参数初始化:

    • 权重初始化 :一般 很小的随机数,服从均值为零,方差(建议 2/n(n为权重,参考论文:https://arxiv.org/pdf/1502.01852.pdf))的高斯分布随机数;
    • 偏置项初始化:一般设置为0,在存在ReLU激活函数的网络中,设置为一个很小的数,尽量避免出现死神经元,梯度消失。
  6. 过拟合问题的解决方式:

  • Dropout直接更改神经网络结构,不仅减少了过拟合,还提高准确率,所以在深层次的网络中,经常会做Dropout。 一般加在卷积层前?
  • L1不建议使用,相比可以用L2,但是L2之前,不要用dropout。

ps:
1.什么是死神经元? 神经元的节点输出就是0,没有判断价值了。
2. 模型中偏置项如果有的话,在哪里用?
3. 池化层误差反向传播,怎么表示?
4. dropout会增加训练时间,为什么?

dropout会增加训练时间是因为删除一些神经元之后,相应的提取出来的特征也被删除了,相当于现在的拟合能力降低了,也就是预测正确率也降了点,在学习过程中,特别是在前面的时候学习率增长的比较慢,(相当于原来迭代1000次能达到准确率96%,现在迭代1000次达到87%,需要更长时间的迭代次数才能达到原来迭代1000达到的效果),但是实际上对效果没什么影响,只会变好。

  1. 一组卷积得到一组feature map,有多少卷积就得到多少feature map;
  2. 为了协调,一般在训练集上做什么,就在测试集上做什么,比如训练集做某方面的数据增强,测试集也做,可以提升一点性能;同样的标准,增大数据量,降低过拟合;
  3. 图像处理的python库: OpenCV、PIL、matplotlib、tensorflow等;
  4. 深度学习训练过程中,过拟合----泛化能力太差,主要通过正则化项、dropout等降低过拟合; 欠拟合------主要是特征提取不充足,主要通过增加神经元节点,增加网络结构来解决;
  5. 一般深度学习的学习率不是固定不变的,呈指数下降;
  6. -------------------------神经元数目怎么算?
  7. ResNet 中的残差的理解?
  8. GoogleNet 网络图
  9. 一般用VGG,因为网络编程简单。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值