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

news2024/11/28 20:44:11

卷积经常用在信号处理中,用于计算信号的延迟累积。假设一个信号发射器每个时刻 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)
    在这里插入图片描述

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PMBOK® 第六版 指导与管理项目工作

目录 读后感—PMBOK第六版 目录 我们都不情愿去做重复的工作,也不期望只得到一个计划,而具体的工作任务却笼统模糊,需要在做的过程中一边摸索。如此一来,对于熟悉的事情会因反复而影响心态,对于不熟悉的事情则由于痛苦…

在SQL中使用explode函数展开数组的详细指南

目录 简介示例1:简单数组展开示例2:展开嵌套数组示例3:与其他函数结合使用处理结构体数组示例:展开包含结构体的数组示例2:展开嵌套结构体数组 总结 简介 在处理SQL中的数组数据时,explode函数非常有用。它…

pytorch十大核心操作

PyTorch的十大核心操作涵盖了张量创建、数据转换、操作变换等多个方面。以下是结合参考文章信息整理出的PyTorch十大核心操作的概述: 张量创建: 从Python列表或NumPy数组创建张量。使用特定值创建张量,如全零、全一、指定范围、均匀分布、正…

AI与区块链的融合:Web3时代下的新应用探索

本文来源香港Web3媒体Techub News AI与区块链:Web3时代的新机遇 在香港这座金融与科技交汇的繁荣都市,AI与区块链的结合已经成为Web3时代的重要议题,为行业发展带来了新的可能性和机遇。越来越多的开发者正在积极探索这一领域的融合&#xff…

FlinkCDC 3.1.0 与 Flink 1.18.0 安装及使用 Mysql To Doris 整库同步,使用 pipepline连接器

cd flink-cdc-3.1.0 bin/flink-cdc.sh 会用到 linux的系统环境变量(vim /etc/profile配置),使用环境变量 FLINK_HOME flinkcdc & flink 安装及使用: 1、flink-cdc-3.1.0/lib/ 内容如下: 2、flink-cdc-3.1.0/mysql…

win10免安装配置MySQL8.4.0

注:此教程基于win10 22H2 版本 1、下载最新版本MySQL压缩包 下载链接:MySQL官网下载地址 点击第二行的 ZIP Archive 后面的Download(当前时间2024-06-19最新版本是8.4.0) 2、解压并添加配置文件 下载完毕后,解压缩…

Ncorr使用过程的问题解答

问题系列 文章目录 问题系列前言一、如何更改单位?情景:DIC Analysis 二、拉格兰日和欧拉绘图的区别直观 三、控制图像中的显示条上下界限问题展示:解决方案: 更新动态 前言 主要用于记录使用过程中出现的相关问题。 一、如何更改…

k8s中 docker和containerd 镜像相互导入导出

containerd镜像导出并导入docker 1 查看containerd 本地镜像列表 crictl images 2 containerd 导出本地镜像到当前目录下(注意: 导出导入需要指定镜像平台类型 --platform) ctr -n k8s.io images export nacos-server-24-06-30-13-02-…

【尚庭公寓SpringBoot + Vue 项目实战】移动端登录管理(二十)

【尚庭公寓SpringBoot Vue 项目实战】移动端登录管理(二十) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】移动端登录管理(二十)1、登录业务2、接口开发2.1、获取短信验证码2.2、登录和注册接口2.3、查询登录用户的个人信息 1、…

SFF1006A-ASEMI无人机专用SFF1006A

编辑:ll SFF1006A-ASEMI无人机专用SFF1006A 型号:SFF1006A 品牌:ASEMI 封装:TO-220F 最大平均正向电流(IF):10A 最大循环峰值反向电压(VRRM):600V 最大…

react实现窗口悬浮框,可拖拽、折叠、滚动

1、效果如下 2、如下两个文件不需要修改 drag.js import React from "react"; import PropTypes from "prop-types";export default class DragM extends React.Component {static propTypes {children: PropTypes.element.isRequired};static defaultP…

神经网络 #数据挖掘 #Python

神经网络是一种受生物神经元系统启发的人工计算模型,用于模仿人脑的学习和决策过程。它由大量互相连接的节点(称为神经元)组成,这些节点处理和传递信息。神经网络通常包含输入层、隐藏层(可有多个)和输出层…

MySQL安装教程,包含root账户密码的修改(绿色版安装)---超简单好用

1、下载(mysql-8.0.27-winx64) 2、下载地址:https://dev.mysql.com/downloads/mysql/ 3、已经将 mysql-8.0.27-winx64 文件放在了文章最后,有需要的自取(解压配置即可用)。 4、配置环境变量: 右键点击我的电脑->属性->高级系统设置->高级->环境变量->系…

PostgreSQL的学习心得和知识总结(一百四十五)|深入理解PostgreSQL数据库之ShowTransactionState的使用及父子事务有限状态机

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…

Windows11平台C++在VS2022中安装和使用Matplot++绘图库的时候出现的问题和解决方法

Matplot 是一个基于 C 的绘图库,专门用于绘制高质量的数据图表。它提供了一个简洁而强大的接口,使得用户能够轻松地创建各种类型的图表,包括线图、散点图、柱状图、饼图等。Matplot 的设计目标是提供与 MATLAB 相似的绘图体验,同时…

apache-tomcat、apache-maven、apache-zookeeper等的本地环境配置

一、介绍 1.apache-tomcat apache-tomcat充当了一个Web服务器和一个Java应用程序服务器的角色,可以用来部署和运行Java Web应用程序,使开发者能够轻松地部署和管理Java Web应用程序。 2.apache-maven apache-maven是一个项目管理工具,主要…

助力草莓智能自动化采摘,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建果园种植采摘场景下草莓成熟度智能检测识别系统

随着科技的飞速发展,人工智能(AI)技术已经渗透到我们生活的方方面面,从智能家居到自动驾驶,再到医疗健康,其影响力无处不在。然而,当我们把目光转向中国的农业领域时,一个令人惊讶的…

【调试笔记-20240620-Windows- Tauri + Vue 中实现部分区域滚动】

调试笔记-系列文章目录 调试笔记-20240620-Windows- Tauri Vue 中实现部分区域滚动 文章目录 调试笔记-系列文章目录调试笔记-20240620-Windows- Tauri Vue 中实现部分区域滚动 前言一、调试环境操作系统:Windows 10 专业版调试环境调试目标 二、调试步骤搜索相似…

力扣144A

文章目录 1. 题目链接2. 题目代码3. 题目总结4. 代码分析 1. 题目链接 Arrival of the General 2. 题目代码 #include<iostream> using namespace std;int heightOfSoldier[110];int main(){int numberOfSoldier;cin >> numberOfSoldier;int maxHeight -1;int mi…

IT入门知识第七部分《移动开发》(7/10)

目录 第七部分&#xff1a;移动开发 —— 触手可及的未来 引言 1. 移动开发平台 1.1 Android 1.2 iOS 2. 跨平台开发 2.1 React Native 2.2 Flutter 3.移动开发的重要性 3.1 用户体验 3.2 可访问性 3.3 市场机会 4.移动开发面临的挑战 4.1 设备多样性 4.2 系统更…