【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】卷积

卷积经常用在信号处理中,用于计算信号的延迟累积。假设一个信号发射器每个时刻 t t t产生一个信号 x t x_t xt,其信息的衰减率为 w k w_k wk,即在 k − 1 k-1 k1个时间步长后,信息为原来的 w k w_k wk倍,时刻 t t t收到的信号 y t y_t yt为当前时刻产生的信息 x t x_t xt和以前时刻延迟信息 w t − 1 x t − 1 + ⋯ + w 1 x 1 w_{t-1}x_{t-1}+\cdots+w_1x_1 wt1xt1++w1x1的叠加。假设 w 1 = 1 , w 2 = 1 2 , w 3 = 1 4 w_1=1,w_2=\frac{1}{2},w_3=\frac{1}{4} w1=1,w2=21,w3=41也就是
x 1 y 1 = x 1 x 2 y 2 = x 2 + 1 2 x 1 x 3 y 3 = x 3 + 1 2 x 2 + 1 4 x 1 ⋮ ⋮ \begin{aligned} &x_1&y_1=x_1\\ &x_2&y_2=x_2+\frac{1}{2}x_1\\ &x_3&y_3=x_3+\frac{1}{2}x_2+\frac{1}{4}x_1\\ &\vdots&\vdots \end{aligned} x1x2x3y1=x1y2=x2+21x1y3=x3+21x2+41x1
因此,时刻 t t t(假设前面还有n个信号)收到的信号 y t y_t yt可以记作
y t = w 1 x t + w 2 x t − 1 + ⋯ + w n x t − n + 1 = ∑ k = 1 n w k x t − k + 1 \begin{aligned} y_t &=w_1x_t+w_2x_{t-1}+\cdots+w_nx_{t-n+1}\\ &=\sum_{k=1}^nw_kx_{t-k+1} \end{aligned} yt=w1xt+w2xt1++wnxtn+1=k=1nwkxtk+1
其中 w k w_k wk叫做滤波器(filter)卷积核(convolution kernel)

定义

给定一个输入信号序列 x x x和滤波器 w w w,卷积输出为:
y t = ∑ k = 1 K w k x t − k + 1 y_t=\sum_{k=1}^Kw_kx_{t-k+1} yt=k=1Kwkxtk+1
也可记作 y t = x ∗ w y_t=x\ast w yt=xw,其中 ∗ * 是卷积符号。要注意卷积核的序列顺序与输入信号序列顺序相反,在运算时需要将卷积核反转。

在这里插入图片描述

上图中,下面一行为输入序列 x x x,上面为输出序列 y y y,卷积核为 [ − 1 , 0 , 1 ] [-1,0,1] [1,0,1],为了计算首先反转卷积核变为 [ 1 , 0 , − 1 ] [1,0,-1] [1,0,1](或者从第三个开始往前计算,完成后再从开始的第三个再往后三个也就是第六个往前,以此类推),将反转后的卷积核在输入序列上平移得到输出序列。对于长度为 N N N的输入序列 x x x来说,若卷积核长度为 K K K,则输出序列 y y y长度为 N − K + 1 N-K+1 NK+1

作用
近似微分

将输入序列 x = [ x t − 1 , x t , x t + 1 ] x=[x_{t-1},x_t,x_{t+1}] x=[xt1,xt,xt+1]看作关于某时刻 t t t的函数,即 x ( t ) = x t x(t)=x_t x(t)=xt,根据一阶微分定义
x ′ ( t ) = x ( t + ϵ ) − x ( t − ϵ ) 2 ϵ x^\prime(t)=\frac{x(t+\epsilon)-x(t-\epsilon)}{2\epsilon} x(t)=2ϵx(t+ϵ)x(tϵ)
ϵ = 1 \epsilon=1 ϵ=1可得
x ′ ( t ) = x ( t + 1 ) − x ( t − 1 ) 2 = 1 2 x ( t + 1 ) + 0 × x t − 1 2 x ( t − 1 ) = x ∗ w \begin{aligned} x^\prime(t) &=\frac{x(t+1)-x(t-1)}{2}\\ &=\frac{1}{2}x(t+1)+0\times x_t-\frac{1}{2}x(t-1)\\ &=x\ast w \end{aligned} x(t)=2x(t+1)x(t1)=21x(t+1)+0×xt21x(t1)=xw
其中 w = [ 1 2 , 0 , − 1 2 ] w=[\frac{1}{2},0,-\frac{1}{2}] w=[21,0,21]。因此,当令卷积核 w = [ 1 2 , 0 , − 1 2 ] w=[\frac{1}{2},0,-\frac{1}{2}] w=[21,0,21]时,可以近似信号序列的一阶微分

此外,根据泰勒公式
x ( t + ϵ ) = x ( t ) + x ′ ( t ) ϵ + x ′ ′ ( t ) 2 ! ϵ 2 + O ( ϵ 3 ) x(t+\epsilon)=x(t)+x^\prime(t)\epsilon+\frac{x^{\prime\prime}(t)}{2!}\epsilon^2+O(\epsilon^3) x(t+ϵ)=x(t)+x(t)ϵ+2!x′′(t)ϵ2+O(ϵ3)
因此可得
x ( t + 1 ) = x ( t ) + x ′ ( t ) + x ′ ′ ( t ) 2 x ( t − 1 ) = x ( t ) − x ′ ( t ) + x ′ ′ ( t ) 2 \begin{aligned} x(t+1)=x(t)+x^\prime(t)+\frac{x^{\prime\prime}(t)}{2}\\ x(t-1)=x(t)-x^\prime(t)+\frac{x^{\prime\prime}(t)}{2} \end{aligned} x(t+1)=x(t)+x(t)+2x′′(t)x(t1)=x(t)x(t)+2x′′(t)
两式相加得
x ( t + 1 ) + x ( t − 1 ) = 2 x ( t ) + x ′ ′ ( t ) x ′ ′ = x ( t + 1 ) + x ( t − 1 ) − 2 x ( t ) = x ∗ w \begin{aligned} x(t+1)+x(t-1)&=2x(t)+x^{\prime\prime}(t)\\ x^{\prime\prime}&=x(t+1)+x(t-1)-2x(t)\\ &=x\ast w \end{aligned} x(t+1)+x(t1)x′′=2x(t)+x′′(t)=x(t+1)+x(t1)2x(t)=xw
其中 w = [ 1 , − 2 , 1 ] w=[1,-2,1] w=[1,2,1]。因此,当令卷积核 w = [ 1 , − 2 , 1 ] w=[1,-2,1] w=[1,2,1]时,可以近似信号序列的二阶微分

低通滤波/高通滤波
  • 高频信息:在信号序列中,局部数值变化剧烈的信息
  • 低频信息:在信号序列中,局部数值变化缓慢的信息

对于一个窗口大小为 K K K的卷积核,只需要将滤波器中的每一项设置为 1 K \frac{1}{K} K1即可检测信号序列中的低频信息。
在这里插入图片描述

上图中 K = 3 K=3 K=3
一般来说,信号序列中的某个信息出现的频率越高,对应的阶数就越高。因此可以用二阶导数( w = [ 1 , − 2 , 1 ] w=[1,-2,1] w=[1,2,1])的大小来表示其出现的频率。
在这里插入图片描述

对卷积进行扩展

为了更灵活的使用卷积,可以对卷积的过程进行扩展,引入滤波器的滑动步长(Stride) S S S零填充(Padding) P P P
在这里插入图片描述

滑动步长是指卷积核在输入序列上每次平移的步长,一般默认滑动步长为1,也就是每次计算完输入序列上的一次卷积后,向前移动一个元素再进行卷积计算,通过增加步长可以减少输出序列的长度。
零填充是指在输入序列的两端各填充 P P P个0,这样做可以保证输入序列和输出序列长度相等。对于一个窗口大小为 K K K(一般为奇数)的卷积核来说,在输入序列两端各填充 K − 1 2 \frac{K-1}{2} 2K1

若输入长度为 M M M,步长为 S S S,卷积核窗口大小为 K K K,零填充为 P P P,则输出长度为 M ′ = M − K + 2 P S + 1 M^\prime=\frac{M-K+2P}{S}+1 M=SMK+2P+1

卷积类型可以按照输出长度不同可以分为三类:

  • 窄卷积:步长 S = 1 S=1 S=1,两端不补零( P = 0 P=0 P=0),输出长度为 M − K + 1 M-K+1 MK+1
  • 宽卷积:步长 S = 1 S=1 S=1,两端补零( P = K − 1 P=K-1 P=K1),输出长度为 M + K − 1 M+K-1 M+K1
  • 等宽卷积:步长 S = 1 S=1 S=1,两端补零( P = K − 1 2 P=\frac{K-1}{2} P=2K1),输出长度为 M M M

早期的文献中,卷积一般默认为窄卷积
目前的文献中,卷积一般默认为等宽卷积

二维卷积

输入序列扩展为二维,对这个二维输入序列进行卷积,一般用于图像处理。
给定图像 X ∈ R M × N X\in\mathbb{R}^{M\times N} XRM×N和一个滤波器 W ∈ R U × V W\in\mathbb{R}^{U\times V} WRU×V U ≪ M , V ≪ N U\ll M,V\ll N UM,VN) ,其卷积为
Y = W ∗ X Y=W\ast X Y=WX
y i j = ∑ u = 1 U ∑ v = 1 V w u v x i − u + 1 , j − v + 1 y_{ij}=\sum_{u=1}^U\sum_{v=1}^Vw_{uv}x_{i-u+1, j-v+1} yij=u=1Uv=1Vwuvxiu+1,jv+1

在这里插入图片描述

卷积核窗口在输入序列上进行滑动,可以计算出每个位置上的信号,最终得到输出。在计算时仍然要对卷积核进行反转。以上图为例,实际上是计算输入与反转后的卷积核的哈达玛积所有元素的和。
输入与输出大小与一维时规则相同,输出 y ∈ R ( M − U + 1 ) × ( N − V + 1 ) y\in\mathbb{R}^{(M-U+1)\times(N-V+1)} yR(MU+1)×(NV+1)。同样的也可以用滑动步长和零填充的方法来调整输出矩阵的大小:

  • 对于步长为1,零填充0的输入序列,输出为 R ( M − U + 1 ) × ( N − V + 1 ) \mathbb{R}^{(M-U+1)\times(N-V+1)} R(MU+1)×(NV+1)
    在这里插入图片描述

  • 对于步长为2,零填充0的输入序列,输出为 R ( M − U 2 + 1 ) × ( N − V 2 + 1 ) \mathbb{R}^{(\frac{M-U}{2}+1)\times(\frac{N-V}{2}+1)} R(2MU+1)×(2NV+1)
    在这里插入图片描述

  • 对于步长为1,零填充1的输入序列,输出为 R M × N \mathbb{R}^{M\times N} RM×N
    在这里插入图片描述

  • 对于步长为2,零填充1的输入序列,输出为 R ( M − U + 1 ) × ( N − V + 1 ) \mathbb{R}^{(M-U+1)\times(N-V+1)} R(MU+1)×(NV+1)
    在这里插入图片描述

在图像处理中,可以利用卷积作为特征提取器,设计不同的卷积核来提取图像的不同特征。
在这里插入图片描述

如上图,通过第一个卷积核(高斯卷积核)可以去除图像中的噪声(用周围点的信息平均中间不一样点的信息),使图像更加平滑;通过第二个卷积核,可以提取图像的边缘特征(上下左右信息的和减去中间信息,即提取图像中的高频信息);第三个卷积核可以提取图像对角线上的边缘特征(右上角图像信息减去左下角图像信息)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/743237.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电脑图片压缩方法哪个好?这几个压缩方法必看

大家是否经常因为图片文件过大而无法轻松分享或上传而感到困扰?这说明你需要一款高效的图片压缩工具了。 无论是为了节省存储空间还是快速分享图片,拥有一款功能强大的图片压缩软件将极大地助你保存和分享图片。 今天,本文将介绍几款图片压…

QT自定义信号和槽函数

在QT中最重要也是必须要掌握的机制,就是信号与槽机制,在MFC上也就是类型的机制就是消息与响应函数机制 在QT中我们不仅要学会如何使用信号与槽机制,还要会自定义信号与槽函数,要自定义的原因是系统提供的信号,在一些情…

基于Python的求职招聘管理系统【附源码】

摘 要 随着互联网技术的不断发展,人类的生活已经逐渐离不开网络了,在未来的社会中,人类的生活与工作都离不开数字化、网络化、电子化与虚拟化的数字技术。从互联网的发展历史、当前的应用现状和发展趋势来看,我们完全可以肯定&…

前后端交互的弯弯绕绕

前后端交互: 🆗,收拾一下心情让我们来聊一聊AJax吧,随着前端的飞速发展,前后的交互也发生了天翻地覆的变化: 前后端交互的方式有很多: AJAX、表单提交、WebSocket、RESTful API、... 这对新入…

九、(正点原子)Linux定时器

一、Linux中断简介 1、中断号 每个中断都有一个中断号,通过中断号即可区分不同的中断,有的资料也把中断号叫做中断线。在 Linux 内核中使用一个 int 变量表示中断号。在Linux中,我们可以使用已经编写好的API函数来申请中断号,定义…

微服务中不同服务使用openfeign 相互调用

首先 我们上文 已经知道了 nacos 的注册服务,现在 我们 在不同服务中相互调用就可以使用openfeign 直接调用,而不是 再写冗余的调用代码啦 首先 我们的微服务组件如下 因为我这个微服务是我在 员工登录demo 中 拆出来的,在userlogin模块中…

基于4G工业路由器的连锁品牌店铺组网监测

基于4G工业路由器的连锁品牌店铺组网监测是智慧城市建设中至关重要的任务,它涉及到营运管理等多方面,应用物联网技术可确保店铺运营的高效、安全和可靠。 连锁品牌店铺遍布城市各领域,甚至跨城市部署,分布广泛。这对集团总部的管…

HTTP/2 头部压缩 Header Compress(HPACK)详解

文章目录 1. HPACK 的工作原理1.1 静态表1.2 动态表 2. 压缩过程2.1 编码过程2.2 解码过程 3. HPACK 的优势 在HTTP1.0中,我们使用文本的形式传输header,在header中携带cookie的话,每次都需要重复传输几百到几千的字节,这着实是一…

JavaWeb——MySQL:navicate客户端工具简单使用

目录 1. 连接 2. 新建数据库 3. 使用数据库 4. 新建表 5.使用表 6. 导出数据库 我这里是英文版,没有进行汉化。 1. 连接 点击左上角Connection,选择MySQL,(我连接的是自己计算机上的数据库)连接名输入&#x…

F5《企业DNS建设白皮书》中的DNS解析服务器最佳实践

在这个数字化转型加速的时代,DNS(域名系统)的重要性不言而喻。每一次重大事件都凸显了DNS的可靠性和安全性问题。对企业而言,它不仅关系到业务连续性,更是提供永续数字服务的关键。本文根据F5公司发布的《企业DNS建设白…

Mybatis-Plus学习|快速入门CRUD、主键生成策略(雪花算法、主键自增等)、自动填充、乐观锁、分页插件、逻辑删除

MyBatisPlus概述 为什么要学习它呢?MyBatisPlus可以节省我们大量工作时间,所有的CRUD代码它都可以自动化完成! JPA、tk-mapper、MyBatisPlus 偷懒的! MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变&#xff…

基于JSP的列车票务信息管理系统

开头语: 你好,我是专注于计算机科学与技术研究的学长。如果你对列车票务信息管理系统感兴趣或有相关需求,欢迎联系我。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:IDE、数据库管理工具…

spring boot jar 启动报错 Zip64 archives are not supported

spring boot jar 启动报错 Zip64 archives are not supported 原因、解决方案问题为什么 spring boot 不支持 zip64zip、zip64 功能上的区别zip 的文件格式spring-boot-loader 是如何判断是否是 zip64 的? 参考 spring boot 版本是 2.1.8.RELEASE,引入以…

HBDNY-40/1端子排电压继电器 DC110V 导轨安装 约瑟JOSEF

HBDNY系列端子排型电压电流继电器 系列型号:(3、4过/低电压型,5、6过/低电流型) HBDNY-30/1端子排型电压继电器;HBDNY-30/2端子排型电压继电器; HBDNY-30/3端子排型电压继电器;HBDNY-30/4端子…

摩柏BI,轻松实现word报告自动更新

|| 导语 告别手工!在数字化办公的今天,高效、准确的数据处理能力已经成为职场人士必备的技能之一。尤其是对于财务分析师、市场研究员和管理人员,他们需要处理的报告不仅数量庞大,而且对数据的准确性和实时性要求极高。传统WORD报…

python爬虫需要什么HTTP代理?

用来爬虫的话,还是建议用高匿名代理,但显然题主用了高匿名代理还是出现了一部分问题,我们可以先找到问题关键再解决它,一般爬虫用了高匿名代理出现被封会有以下几种原因: 1.代理IP的质量不过关 一般来说每个网站都有…

解锁小红书新玩法:中小企业出海营销的集成策略

随着全球数字化浪潮的推进,小红书作为生活方式分享平台的崛起,为中小企业提供了一个全新的营销舞台。NetFarmer,作为专注于企业数字化出海的服务商,深谙小红书的营销策略,并致力于通过HubSpot产品销售与实施&#xff0…

HarmonyOS应用开发学习经验

一、HarmonyOS学习官网 开发者能力认证 HarmonyOS应用开发者基础认证6月之前的学习资源官网已经关闭过期,大家不要慌,官方更新了最新资源,但是,对于之前没有学习完的学员不友好,存在知识断片的现象,建议官…

微型导轨:手术机器人的高精度“骨骼”

微型导轨精度高,摩擦系数小,自重轻,结构紧凑,被广泛应用在医疗器械中,尤其是在手术机器人中的应用,通过手术机器人,外科医生可以远离手术台操纵机器人进行手术。可以说,是当之无愧的…

C语言实现:贪心算法

算法基础原理 贪心算法是一种在求解问题时,总是做出在当前看来是最好的选择的算法。它不从整体最优上进行考虑,而是通过每一步的局部最优选择,希望达到全局的最优解. 贪心算法的特点:贪心算法在每一步都选择当前状态下的最优解,即…