• CNN卷积层基础:特征提取+卷积核+反向传播


    本篇介绍卷积层的线性部分

    一、与全连接层相比卷积层有什么优势

    卷积层可以节省参数,因为卷积运算利用了图像的局部相关性——分析出一小片区域的特点,加上Pooling层(汇集、汇聚),从附近的卷积结果中再采样选择一些高价值的信息,让特征向少而精的方向前进。

    全连接层相当于考虑全局(整张图像)的特征

    二、卷积的另一种解释

    傅里叶变换:将数据从空间域的展示形式转变到频率域的形式。

    理解:图像比作一道做好的菜,傅里叶变换就是找出这道菜具体 的配料及各种配料的用量。

    图像中,低频信息是大体轮廓(整体),高频信息是图中物体的纹理特征

    若A, B是矩阵,下面两式是等价的

    C=conv2(A, B)

    C=IFFT(FFT(A) * FFT(B))   #这里*是“元素级别的乘法”

    卷积核做傅里叶变换,可以看出高/低频信号的强度

    由于最终要进行元素级的乘法,如果卷积核在某个频率的数值比较低,经过乘法后的输入数据在这个频率的数据也会变小。滤波核在某个频率的数值为0,说明卷积算法计算后会舍弃这部分信息。

    Gabor Filter,保留高频舍弃低频,一些文章宣称自己的模型第一层的参数像Gabor Filter。

    所以,从傅里叶变换来看,卷积层的意义——

    分离低频和高频信息,使它们能够被分别处理。

    三、卷积层的反向传播

    计算参数:

    1卷积层输入图像(数据)X对目标函数的偏导数

    2卷积层线性部分参数W对目标函数的偏导数

    解法 

    A:按卷积定义求解,需要计算:

    1前向计算图

    2下层Loss

    3本层w导数

    B:转换后的解法,软件库中常用套路

    将卷积运算转换为矩阵和向量的点积——

    输入数据被转换成了一个size更大的矩阵(为了适应矩阵式的卷积操作有些元素需要重复出现)

    卷积核被转换成了一个向量

    软件库选择矩阵式解法的原因:矩阵乘法运算经过多年的研究,运算效率非常有保障。按定义的卷积运算性能较差。

  • 相关阅读:
    更改数据库的主键长度
    数据库字段更改
    mysql数据权限的分配
    CentOS 7下安装Python3.6
    轻量级ORM框架:Dapper中的一些复杂操作和inner join应该注意的坑
    LINQ教程
    C# 委托及各种写法
    Func与Action
    C#中的is和as操作符
    Dapper ORM 用法
  • 原文地址:https://www.cnblogs.com/eniac1946/p/7874618.html
Copyright © 2020-2023  润新知