神经网络学习笔记2.1——卷积神经网络的原理

目录

填了歌词方便大家学习和了解神经网络有兴趣可以看看哈哈哈

1卷积神经网络在机器视觉上的应用

2.基础原理

3.单层神经网络(公式)

4.卷积网络实例

6.池化层 

7.完整卷积神经网络实例

        


填了歌词方便大家学习和了解神经网络有兴趣可以看看哈哈哈

《孤勇者》卷积者——卷积神经网络原理从入门到会唱

《孤勇者》卷积者——卷积神经网络原理从入门到会唱_哔哩哔哩_bilibili

1卷积神经网络在机器视觉上的应用

1.图像识别

比如给出一张图片,判断这个图片是什么

2.目标检测

比如常用的yolo来判断一张图片都有什么

3.图片风格迁移

下面就让我们来了解下卷积神经的具体原理

2.基础原理

首先我们要理解一些概念方便我们学习

        2.1 通道数

        我们每张图片由红绿蓝三种颜色组成,导入的时候对应红绿蓝三种颜色的通道,也就是三个矩阵,这三个矩阵分别表示对应红绿蓝像素的强弱值。

        2.2 全连接层

        将卷积最后的到的矩阵拉成一个一维矩阵,然后就是最简单的神经网络模式的一层到层,中间由权重相连接。

        2.3边缘检测(卷积的核心部分)

        边缘检测主要是利用卷积核进行图片特征提取,比如有通过竖直边缘检测的,或者水平边缘检测的如下图

        上面是对图片的竖直特征进行提取,下面是对水平特征进行提取,我们可以大致的看到区别,下面我们来具体的研究一下这个过程是如何进行的

        卷积是卷积核与对应位置矩阵进行点乘(对应位置相乘再相加)         

        这里面就是 6x6 * 3x3 = 4x4 ,其中*号代表卷积的点乘,6x6代表矩阵的维度

        在我们在编程实现中,有不同的深度学习框架,可以方便我们实现这些功能比如:

        python中的conv_forward

        tensorflor中的tf.nn.conv2d

        Keras中的Conv2D

        这些都可以帮助我们实现卷积的功能,下面我们用竖直过滤器为例子,具体的说一下什么是边缘检测

        用竖直过滤器来举例子

        可以将过滤器中的像素看成对三种特征的提取器,提取图片输入矩阵后面的特征,图片大的加中间过渡带会小一点,甚至没有

        不同的卷积核达到的效果不同,可以通过修改其中的数值达到滤波或者增强鲁棒性的功能,比如池化。但是在卷积中这个是作为像简单网络那样训练的权重的,通过反向传播来找最合适的卷积核。

        2.4 Padding(填充)

        矩阵中,中间的部分会被卷积核多次用到,但是边缘的部分用到的次数少,故在周围填充一层像素

        6x6        *        3x3        =        4x4        (用0在6x6的矩阵周围扩充一圈)

变为8x8        *        3*3        =        6x6

        这样边缘特征就也被多次利用到了解决了边缘特征利用的少的问题

        填充的像素用p表示,在padding后得到的下一层的公式为

        n+2p-f+1        x            n+2p-f+1

        加入    n+2p-f+1=n        可以两边消掉n得到p应该取(f-1)/2

        注:其中f一般为奇数原因如下:

                1.若为偶数的话,可能只能使用一些不对称的填充,没有中心,只有奇数的时候才有一些自然的填充我们可以用相同的数量填充四中,而不是左边填充的多一点,右边填充的少一点

                2.卷积核有一个中心像素点更方便指出卷积核的位置

        2.5 卷积步长(stride缩写用s)

        也就是卷积核在图像特征上每次移动几个像素点

        这样得到下一层的公式为  

         [(n+2p-f)/s] +1         X         [(n+2p-f)/s] +1

        举个例子(n=7,p=0,s=2,f=3)

        7x7        *        3x3        =        3x3

        2.6 翻转问题

        这主要是卷积核的使用问题

        使用的时候相当于 将他先进行一个水平翻转,然后在进行一个竖直翻转,合在一起相当于是做了一个中心对称,我们在卷积使用的时候一般都是翻转之后的。

        但是我们在看深度学习资料中给的卷积核不一定是翻转过来的,其实这种不翻转的卷积核其实叫做互相关操作,我们不需要这么较真,不影响阅读理解就行了

        2.7 三维卷积

        这里主要是为了引入通道数,因为我们导入的图片一般是由3个矩阵叠在一起的三维矩阵,这样我们卷积核也要跟随进行调整如下图所示 

         其中三个维度都标注在图中了,分别是高,宽,通道数,其中通道数也代表深度,一样的移动方式但是三层卷积核叠加完还是一个数,也就是将3层化为1层。

        这时候我们要是希望他能提取特征更全面就可以使用多个卷积核,比如可以用水平竖直两个过滤器这样得到两个4x4的矩阵,所以我们用几个过滤器就是下一层输入的通道数是几。

        也就是n x n x nc1     *     f x f x nc1     =     n - f + 1     x      n - f + 1     x     nc2

        nc2为卷积时使用的卷积核数

3.单层神经网络(公式)

        用这个图来举例子,6x6x3 的输入特征,分别用过两个3x3x3的卷积核得到两个4X4的结果,然后把结果分别加b,再都通过激活函数Relu得到下一层的输入值。

         以上这些步骤就是卷积卷积神经网络的一层。

        输出:           𝑧[1] = 𝑊 [1] 𝑎 [0] + 𝑏[1]        ([]代表代际,也就是迭代步数)
        输入:           𝑎 [0] = x
        激活后节点:𝑎 [1] = 𝑔(𝑧 [1] )
通式:
        卷积核:        𝑓[𝑙]表示过滤器大小,实际大小为fxf     𝑓[𝑙] × 𝑓[𝑙] × 𝑛𝑐[𝑙]
        填充:            𝑝[𝑙]表示填充的大小     
        步长:             𝑠 [𝑙] 标记步幅
        输入:            𝑛[𝑙−1] × 𝑛[𝑙−1] × 𝑛𝑐[𝑙−1]
        输出:            𝑛𝐻[𝑙] × 𝑛𝑊[𝑙] × 𝑛𝑐[𝑙]        
        求n公式:       即𝑛𝐻[𝑙] = [(𝑛𝐻[𝑙-1]+2𝑝[𝑙]−𝑓[𝑙])/ 𝑠[𝑙] ] + 1      =       nw   (长宽一样,是方阵)

4.卷积网络实例

        一个典型的神经网络一般由3个层组成,卷积,池化,全连接层,但是即使是只用卷积层也能构建出一个很好的神将网络,但是一般也会把池化全连接层加入神经网络中,不过这两层相对于卷积来讲比较简单。下面介绍一下这两层。

6.池化层 

        池化层主要是为了提取图像中的重要特征。

        举个例子来说明:

        1.最大池化

        

        设置一个2x2的过滤器,步长为2,提取每一部分中最大的像素点,也就是最主要特征,这个比较常用,池化的卷积核不进行通道数的设置,所以每层单独进行池化操作。最大池化也是池化中比较常用的。

        2.平均池化

                

        取2x2的矩阵内的平均值,提取原输入像素特征

        3.池化过滤器超参数的设置

        f:卷积核尺寸(过滤器)

        s:步长

        常用的为f=2,s=2相当于长宽缩小为原来的一半。在池化过程中padding很少用到,所以一般p=0。

        池化前:nh x nw x nc

        池化后:(nh - f)/s  +  1     x     (nh - f)/s  +  1     x   nc

        这里没有需要去学习的参数,设定多少就是多少,因此最大池化只是神经网络计算的某一层静态属性。

7.完整卷积神经网络实例

数字化之后是这样的

 

         前面是一层卷积配一层池化,后面是两个全连接层,接着softmax分类器得到结果,其中全连接层就是简单的神经网络。(在这里面把有权重的一部分才当做一层)。

        后面会继续更新代码讲解。

        

        

    
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值