IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 卷积神经网络补充 -> 正文阅读

[人工智能]卷积神经网络补充

卷积的数学定义

在数学上,卷积定义为
? ( x ) = ∫ ? ∞ + ∞ f ( t ) g ( x ? t ) d t \phi(x) = \int_{-\infin}^{+\infin} f(t)g(x-t)dt ?(x)=?+?f(t)g(x?t)dt
怎么理解上面的式子呢?

首先,f(t)表示t时刻的输入,g(x-t)表示在t时刻的输入对当前x时刻的影响因子

可以看到g函数的输出是一个时间长度,而不是时刻,也就是说影响因子是跟时间长度相关而不是时刻相关的

所以才会以当前时刻x-t时刻这个时间间隔作为输入

假如现在有一堆石头,一个池子。(知乎上看到的例子,链接忘了)

我们每隔一刻时间往池子里的同一未知扔石头。

石头是我们的输入,即 ( f ( 0 ) , f ( 1 ) , f ( 3 ) , . . . , f ( T ) ) (f(0),f(1),f(3),...,f(T)) (f(0),f(1),f(3),...,f(T))

每一时刻扔出的石头造成池子中的水产生波纹,且对波纹的影响具有持续性,令其为 g ( ) g() g()

前面的信号对后面的信号会造成影响,影响的程度由持续时间决定,例如对于 t t t时刻的输入 f ( t ) f(t) f(t) x ( x ≥ t ) x(x\ge t) x(xt)时刻的影响即为 g ( x ? t ) g(x-t) g(x?t)

我们假设当 x ? t ≥ l x-t\ge l x?tl g ( x ? t ) = 0 g(x-t)= 0 g(x?t)=0,也就是说持续时间超过一定长度后影响就可以忽略不记了。

这么一来

l l l时刻,最终的信号为
f ( 0 ) g ( l ) + f ( 1 ) g ( l ? 1 ) + . . . + f ( l ) g ( 0 ) f(0)g(l)+f(1)g(l-1)+...+f(l)g(0) f(0)g(l)+f(1)g(l?1)+...+f(l)g(0)
l + 1 l+1 l+1时刻,信号为
f ( 1 ) g ( l ) + f ( 2 ) g ( l ? 1 ) + . . . + f ( l + 1 ) g ( 0 ) f(1)g(l)+f(2)g(l-1)+...+f(l+1)g(0) f(1)g(l)+f(2)g(l?1)+...+f(l+1)g(0)
总之,最终的表示卷积式为
? ( t ) = { f ( t ? l ) g ( l ) + f ( t + 1 ) g ( l ? 1 ) + . . . + f ( t ) g ( 0 ) ?if? t ≥ l f ( 0 ) g ( t ) + f ( 1 ) g ( t ? 1 ) + . . . + f ( t ) g ( 0 ) ?otherwise? \phi(t) = \begin{cases} f(t-l)g(l)+f(t+1)g(l-1)+...+f(t)g(0) & \text{ if } t\ge l \\ f(0)g(t)+f(1)g(t-1)+...+f(t)g(0) & \text{ otherwise } \end{cases} ?(t)={f(t?l)g(l)+f(t+1)g(l?1)+...+f(t)g(0)f(0)g(t)+f(1)g(t?1)+...+f(t)g(0)??if?tl?otherwise??

卷积的变种

卷积可以进行填充和设定步长,并且根据不同的填充方式和步长设定,有几类常见的卷积方式

首先,填充这个操作既可以在图片上进行,也可以在卷积核上进行。对图片或序列进行填充又分两种方式。一种是边界零填充,这种方式常常是下面三种情况

  1. 窄卷积(valid 卷积)

    • 步长为1,无填充
  2. 宽卷积(full卷积)

    • 步长为1,填充 P = K ? 1 \boldsymbol {P = K-1} P=K?1
  3. 等宽卷积(same卷积)

    • 步长为1,填充 P = ( K ? 1 ) / 2 \boldsymbol{P = (K-1)/2} P=(K?1)/2

转置卷积

前面三种情况中我们可以看到,宽卷积实现了维度的扩充。但我们对维度扩充通常有更加复杂的要求。

低维特征映射到高维特征的卷积操作我们都统称为转置卷积。

所以说,转置卷积不过是边界填充设得大了点,本质上只是为了扩充维度。通过设定合适的填充大小和步长,我们可以任意的扩充到指定的维度(通常小于等于M+K-1)

普通卷积常常用于从图片或序列中提取特征,而转置卷积则用于根据编码生成图片。

比如,DCGAN中的生成网络由转置卷积搭建,判别网络由普通卷积搭建

微步卷积

除边界填充之外的另一种方式是间隔填充,根据设定的间隔大小D,决定每两个像素之间插入D个0,由于通常我们没办法设定小于1的步长,所以这种方式相当于是一种步长小于1的实现方式,我们又称其为微步卷积

我们可以重新推导一下卷积前后的维度变换公式(保留边界填充)
D o = D i + D ? ( D i ? 1 ) ? D k + 2 P S + 1 \begin{aligned} D_o &= \frac{D_i+D*(D_i-1)-D_k+2P}{S}+1 \\ \end{aligned} Do??=SDi?+D?(Di??1)?Dk?+2P?+1?
通常微步卷积是为了扩充维度,所以假如我们要用一个大小为3的卷积核,假设边界填充P=1,步长为1,将一个3维的序列扩充到5维,那么有
5 = 3 + 2 ? D ? 3 + 2 + 1 D = 1 \begin{aligned} &5 = 3+2*D-3+2+1 \\ &D = 1 \end{aligned} ?5=3+2?D?3+2+1D=1?
所以微步卷积也是一种特殊的(步长小于1)的转置卷积

通常在各类深度学习框架中,转置卷积的默认实现就是微步卷积

空洞卷积

除了前面提到的对图片或序列的填充之外,也可以对卷积核进行填充。显然,对卷积核进行边界填充是没有意义的,因为总有传统卷积方式可以替代。所以空洞卷积一般是对卷积核进行间隔填充,空洞卷积增大了卷积核的大小,因此增大了感受野,但是没有增加参数。

空洞卷积又名膨胀卷积,填充的间隔大小-1称为扩张率

假设扩张率为D,卷积核原始大小为K,那么经过填充的卷积核大小为
K ′ = K + ( K ? 1 ) ? ( D ? 1 ) K^\prime = K+(K-1)*(D-1) K=K+(K?1)?(D?1)
空洞卷积可用于语义分割或目标检测等任务,代替池化层进行避免下采样操作

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 22:54:12  更:2022-07-04 22:55:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:29:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码