zoukankan      html  css  js  c++  java
  • 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更大的矩阵(为了适应矩阵式的卷积操作有些元素需要重复出现)

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

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

  • 相关阅读:
    htnl5中设置文本单行显示,超出部分打省略号,鼠标移到文本时alt出全部文本内容
    sql 查出一张表中重复的所有记录数据
    JS实现关闭当前子窗口,刷新父窗口
    jstl <c:forEach> 介绍
    Oracle SQL: TO_CHAR and TO_NUMBER 笔记
    Python学习记录七---继承、多态和封装
    iOS动画和第三方插件学习网址
    Python学习记录(六)--函数 定义和使用
    python学习记录(五) --语句块和比较符
    Python学习记录(四)--字典
  • 原文地址:https://www.cnblogs.com/eniac1946/p/7874618.html
Copyright © 2011-2022 走看看