博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深度学习(二)神经网络中的卷积和反卷积原理
阅读量:6583 次
发布时间:2019-06-24

本文共 1138 字,大约阅读时间需要 3 分钟。

 原文作者:aircraft

原文地址:https://www.cnblogs.com/DOMLX/p/9579392.html

 

 

 

一.卷积

  在深度学习的过程中,很多神经网络都会用到各种卷积核来进行操作,那么我们就简单讲一下卷积的原理和实现过程。

那么卷积在神经网络中的作用是什么呢?一开始的传统神经网络是没有卷积层的,都是隐藏层加生全连接层的结构,这样在中间得到的特征都是线性的,不能提取到一个局部的特征。而卷积神经网络的出现解决了这个问题,通过对一个局部区域进行卷积操作得到这个局部区域的特征值传入下层大大提升了神经网络提取特征的能力,并且还减小了数据的大小。

那么看看卷积的过程:

可以看到这是一个3*3的卷积核在步长为1的方式遍历这个矩阵,卷积核与其遍历的覆盖区域进行一个点乘(其实是协相关)的运算得到一个值存入后面的矩阵,这样通过卷积核与数据矩阵的遍历运算就可以直接提取(局部感受野)一小块区域的特征,而不必像传统神经网络一样一个值一个值的提取。

卷积操作的计算方式如下: 

已知:

  • input size i
  • kernel size k
  • stride s
  • padding size p

则输出大小为: 

卷积计算公式

 

同样的上面这种具有缩放功能的卷积操作,如果这时候我们需要的是跟原来的数据一样大小矩阵传出要怎么做呢?这就是Padding的意义:

可以看到上图输入和输出都是一样大小的矩阵,因为我们在其外围加了一个大小为1 的Padding,这样就可以满足输入输出都是一样的。同理想要扩大或者缩小只要对外围Padding参数根据上面的公式进行调节即可。

 

二.反卷积

  既然有卷积过程那么肯定也有反卷积的过程对不对。不然怎么进行卷积神经网络的反向传导呢?嘿嘿

反卷积通常用于将低维特征映射成高维输入,与卷积操作的作用相反。还是看图比较舒服是吧:

 

上图就是将卷积后的区域,反卷积后变成原来的矩阵,其实看推导看原理肯定是很烦很枯燥的,这里就不细说推导和原理了,那都是(线性代数)里的知识了,我们这里就讲讲怎么反卷积回去。

其实说来一句话就好了。-------对于反卷积过程,采用卷积过程转置后的滤波器(参数一样,只不过把参数矩阵水平和垂直方向翻转了一下),这样反着乘回去就行了。大家好好动笔体会一下这反卷积的神奇。嘿嘿

好了今天得深度学习笔记就到这里了,飞机我得去拿快递了嘿嘿。

 

最后我这是一列的学习笔记,有兴趣入门深度学习的可以看看在下后面的深度学习系列的笔记。

 

参考博客:https://blog.csdn.net/u011447369/article/details/78721574

转载于:https://www.cnblogs.com/DOMLX/p/9579392.html

你可能感兴趣的文章
hdu 3367 Pseudoforest(最大生成树)
查看>>
一个人,一则故事,一份情愫,一个世界……
查看>>
ffserver联合ffmpeg建立媒体服务器
查看>>
下载稻草人下来刷新+gallery
查看>>
删除浏览器浏览器删除cookie方法
查看>>
微软URLRewriter.dll的url重写的简单使用(实现伪静态)
查看>>
leetcode -- Combination Sum II
查看>>
1z0-052 q209_7
查看>>
PIN码计算锦集
查看>>
[Unity3D]再次点击以退出程序
查看>>
架构师的97种习惯
查看>>
PHP 开发 APP 接口 学习笔记与总结 - XML 方式封装通信接口
查看>>
IT基础架构规划方案之实际网络设计案例
查看>>
Navicat for MySQL 使用SSH方式链接远程数据库(二)
查看>>
poj 1274The Perfect Stall
查看>>
HDU 4720 Naive and Silly Muggles (外切圆心)
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>
Ubuntu上运行Blender,在控制台上查看运行结果
查看>>
怎么检查网站的死链接呢?
查看>>
scrapy爬虫框架实例一,爬取自己博客
查看>>