卷积神经网络cnn学习笔记---基本原理

注:以下内容只是我再网上学习的记录,缺乏系统性,初学者随便看看即可,不要深究,以免有些概念没有描述准确造成误导。

一. 主要参考了:https://www.cnblogs.com/charlotte77/p/7759802.html

传统机器学习和神经网络对比
 传统机器学习神经网络
特征设计好feature的内容和数量,将feature和label送进去训练。不需要设计feature,可以直接将数据送进去训练。
预处理归一化、格式转换等 
调参

例如svm,需要调整核函数、惩罚因子、松弛变量等。

对模型效果都有影响,如果没有很深入的理解,就需要多次调参多次实验才能得到比较好的model。

对于一个基本的三层神经网络来说(输入-隐含-输出),只需要在输入时给每个神经元随机赋初值(权重w和偏置b),训练过程中这两个参数会不断自我修正。

当然赋初值更科学一点的话训练时可以收敛更快。

 

  1. 我们现在所说的神经网络,并不能称之为深度学习,神经网络很早就出现了,只不过现在因为不断的加深了网络层,复杂化了网络结构,才成为深度学习,并在图像识别、图像检测、语音识别等等方面取得了不错的效果。
  2. 基本网络结构:输入层--隐含层--输出层,每层网络上有多个神经元,上一层的神经元通过激活函数映射到下一层神经元,每个神经元之间有相对应的权值,输出分类类别。
  3. 图像领域,用最基本的神经网络并不合适,需要用卷积神经网络。
  4. 卷积计算过程:

       

        

5. 卷积核为什么有效,为什么使用卷积核之后会比普通的神经网络分类效果要好?

     卷积核:矩阵的内积运算,相同位置的数字相乘再相加求和,滑动窗口,滤波器,特征提取器。

     第一个卷积核能够提取出“垂直”方向的特征,第二个卷积核能够提取出“水平”方向的特征。

     feature_map尺寸计算公式:[ (原图片尺寸 -卷积核尺寸)/ 步长 ] + 1。

      卷积核的个数:由经验确定。通常情况下,靠近输入的卷积层,譬如第一层卷积层,会找出一些共性的特征,如手写数字识别中第一层我们设定卷积核个数为5个,一般是找出诸如"横线"、“竖线”、“斜线”等共性特征,我们称之为basic feature,经过max pooling后,在第二层卷积层,设定卷积核个数为20个,可以找出一些相对复杂的特征,如“横折”、“左半圆”、“右半圆”等特征,越往后,卷积核设定的数目越多,越能体现label的特征就越细致,就越容易分类出来,打个比方,如果你想分类出“0”的数字,你看到这个特征,能推测是什么数字呢?只有越往后,检测识别的特征越多,试过能识别这几个特征,那么我就能够确定这个数字是“0”。

6. 池化层:池化层的主要目的是通过降采样的方式,在不影响图像质量的情况下,压缩图片,减少参数。

     maxpooling:最简单最常用,就是取滑动窗口中的最大值;

     averagepooling:取滑动窗口中所有值的平均。

     并不是所有用了maxpooling的效果就好,有时候有些周边信息也会对某个特定的特征产生一定的效果,这时候用maxpooling取最大值,就会舍弃掉其他信息,反而不划算,所以具体情况具体分析,可以加maxpooling和不加maxpooling的结果输出对比一下。

7. zero padding,周围补零操作,可以保证每次经过卷积或者池化输出的图片大小不变。

    一般会选择3*3的卷积核和1的 zero padding,或者5*5的卷积核和2的 zero padding。

    那么加入zero padding后的feature_map尺寸 =( width + 2 * padding_size - filter_size )/stride + 1,这个数值必须是整数,否则没有物理意义。

8. flatten 和 fully connected layer

到了这一步,其实我们的一个完整的“卷积”部分就算完成了。

如果想要叠加层数,一般也是叠加“conv-maxpooling”,通过不断的设计卷积核的尺寸、数量,提取更多的特征,最后识别不同类别的物体。

做完maxpooling之后,我们就会把这些数据“拍平”,丢到flatten层,然后把flatten层的output放到fully connected layer,采用softmax对其进行分类。

 

 

     

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值