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更大的矩阵(为了适应矩阵式的卷积操作有些元素需要重复出现)
卷积核被转换成了一个向量
软件库选择矩阵式解法的原因:矩阵乘法运算经过多年的研究,运算效率非常有保障。按定义的卷积运算性能较差。
CNN卷积层基础:特征提取+卷积核+反向传播的更多相关文章
- CNN卷积层:ReLU函数
卷积层的非线性部分 一.ReLU定义 ReLU:全称 Rectified Linear Units)激活函数 定义 def relu(x): return x if x >0 else 0 #S ...
- Deep Learning基础--随时间反向传播 (BackPropagation Through Time,BPTT)推导
1. 随时间反向传播BPTT(BackPropagation Through Time, BPTT) RNN(循环神经网络)是一种具有长时记忆能力的神经网络模型,被广泛用于序列标注问题.一个典型的RN ...
- Tensorflow之CNN卷积层池化层padding规则
padding的规则 · padding=‘VALID’时,输出的宽度和高度的计算公式(下图gif为例) 输出宽度:output_width = (in_width-filter_wid ...
- CNN 卷积层输入Map大小计算
对于输出的size计算: out_height=((input_height - filter_height + padding_top+padding_bottom)/stride_height ) ...
- CNN中卷积层 池化层反向传播
参考:https://blog.csdn.net/kyang624823/article/details/78633897 卷积层 池化层反向传播: 1,CNN的前向传播 a)对于卷积层,卷积核与输入 ...
- 卷积神经网络(CNN)反向传播算法
在卷积神经网络(CNN)前向传播算法中,我们对CNN的前向传播算法做了总结,基于CNN前向传播算法的基础,我们下面就对CNN的反向传播算法做一个总结.在阅读本文前,建议先研究DNN的反向传播算法:深度 ...
- 2. CNN卷积网络-前向传播算法
1. CNN卷积网络-初识 2. CNN卷积网络-前向传播算法 3. CNN卷积网络-反向更新 1. 前言 我们已经了解了CNN的结构,CNN主要结构有输入层,一些卷积层和池化层,后面是DNN全连接层 ...
- 卷积神经网络基础(CNN)【转载】
作者: Sanjay Chan [ http://blog.csdn.net/chenzomi ] 背景 之前在网上搜索了好多好多关于CNN的文章,由于网络上的文章很多断章取义或者描述不清晰,看了很多 ...
- CNN中卷积层的计算细节
原文链接: https://zhuanlan.zhihu.com/p/29119239 卷积层尺寸的计算原理 输入矩阵格式:四个维度,依次为:样本数.图像高度.图像宽度.图像通道数 输出矩阵格式:与输 ...
随机推荐
- Big-endian/Little-endian, LSB/MSB
Least significant byte (LSB) Most significant byte (MSB) Big-endian machines store the most-signific ...
- wampserver变橙色,apache 服务无法启动!问题解决小记(安装失败亦可参考)
http://blog.csdn.net/haoaiqian/article/details/58147079 80端口被占用的可能性非常大,关掉IIS即可
- ThinkPHP 5.2 出 RC1 版本 RC 是什么意思呢?
ThinkPHP 5.2 出 RC1 版本 RC 是什么意思呢? RC 的意思是软件候选版本,就是不会有很大的改变,主要还是在除错方面. 来自收集的资料1引用: Alpha:是内部测试版,一般不向外部 ...
- EnvironmentError: mysql_config not found问题解决(centos7下python安装mysql-python)
centos7下python安装mysql-python模块,执行命令: pip install mysql-python 出现报错:EnvironmentError: mysql_config no ...
- 十二、springboot(七)打包启动
1.打包 mvn clean package -Dmaven.test.skip=true2.运行 a.不能后台运行 java -jar 项目.jar b.可后台运行 java ...
- LOJ 2312(洛谷 3733) 「HAOI2017」八纵八横——线段树分治+线性基+bitset
题目:https://loj.ac/problem/2312 https://www.luogu.org/problemnew/show/P3733 原本以为要线段树分治+LCT,查了查发现环上的值直 ...
- JS IE 打开本地exe程序
例: try{ //新建一个ActiveXObject对象 var exe = new ActiveXObject("wscript.shell"); var exePath = ...
- MBR详解
我们通常对磁盘分区时,都会涉及到MBR和GPT.MBR和GPT都是磁盘分区的类型,由于以前的硬盘只有几个GB,几十个GB,几百个GB,使用MBR类型分区已经足够.但是近些年来,硬盘容量的发展速度迅速, ...
- 编写dll时的内存分配策略
前一篇文章介绍了为何要共用内存管理器,有人要问可不可以在编写dll时更通用一些,可以兼顾其它编译器(如果是其它编译器的话,Delphi写的dll不能与其它语言共用内存管理器),采用一定的策略来避免在d ...
- Gerrit安装
1.安装gerrit [sisi@pre-srv44 ~]$ su - gerrit2Password: [gerrit2@pre-srv44 ~]$ lltotal 83872-rw-r--r-- ...