Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Laurence001
d2l-zh
提交
45d9f529
D
d2l-zh
项目概览
Laurence001
/
d2l-zh
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
d2l-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
45d9f529
编写于
12月 02, 2020
作者:
R
Rachel Hu
提交者:
Aston Zhang
2月 17, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
updated
上级
1d6486e7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
11 deletion
+13
-11
chapter_convolutional-neural-networks/why-conv.md
chapter_convolutional-neural-networks/why-conv.md
+13
-11
未找到文件。
chapter_convolutional-neural-networks/why-conv.md
浏览文件 @
45d9f529
# 从全连接层到卷积
:label:
`sec_why-conv`
我们之前讨论的
MLP模型十分适合处理表格数据。表格数据中的每行对应每个样本,每列分别对应每个特征。这些特征之间的交互可能产生影响,但我们没有考虑特征交互结构上的先验假设。然而,对于高维感知数据,这种MLP
单一结构模型可能会变得笨拙。
我们之前讨论的
多层感知机十分适合处理表格数据。表格数据中的每行对应每个样本,每列分别对应每个特征。这些特征之间的交互可能产生影响,但我们没有考虑特征交互结构上的先验假设。有时我们缺乏足够的知识来指导模型的结构设计,此时多层感知机可能是最好的选择。然而,对于高维感知数据,这种多层感知机
单一结构模型可能会变得笨拙。
例如,在之前区分猫和狗的例子中。假设我们收集了一个照片数据集,每张照片具有百万级像素,这意味着
MLP的每个输入都有一百万个维度。然而即使将隐藏层维度降低到 $1000$ ,这个神经网络也将有 $10^6
\t
imes 10^3 = 10^9$ 个参数。除非我们有大量的GPU、分布式优化训练的经验以及超乎常人的耐心,否则很难学习这个网络
。
例如,在之前区分猫和狗的例子中。假设我们收集了一个照片数据集,每张照片具有百万级像素,这意味着
多层感知机的每个输入都有一百万个维度。然而即使将隐藏层维度降低到 $1000$ ,这个神经网络也将有 $10^6
\t
imes 10^3 = 10^9$ 个参数。想要训练这个模型很难,需要有大量的GPU、分布式优化训练的经验和超乎常人的耐心
。
细心的读者可能会反对这一论点,认为要求百万像素分辨率过分吹毛求疵。
...
...
@@ -21,7 +21,7 @@
这个游戏包括一些混乱的场景,游戏玩家的目标是找到沃尔多,而沃尔多通常潜伏在一些不太可能的位置。
所以尽管沃尔多的样子很有特点,在眼花缭乱的场景中找到他也如大海捞针。
由于沃尔多潜藏的地方并不取决于它出现的位置,我们可以使用一个“沃尔多检测器”扫描图像,该检测器将图像分成数个小方片,并为每个贴片包含沃尔多的可能性打分。而
CNN
将“空间不变性”的概念系统化,用较少参数来学习有用的特征。
由于沃尔多潜藏的地方并不取决于它出现的位置,我们可以使用一个“沃尔多检测器”扫描图像,该检测器将图像分成数个小方片,并为每个贴片包含沃尔多的可能性打分。而
卷积神经网络
将“空间不变性”的概念系统化,用较少参数来学习有用的特征。
![
沃尔多游戏示例图。
](
../img/where-wally-walker-books.jpg
)
...
...
@@ -29,7 +29,7 @@
:label:
`img_waldo`
现在,我们将
如上想法系统化,来设计一下
适合于计算机视觉的神经网络结构:
现在,我们将
上面想法总结一下,从而帮助我们设计
适合于计算机视觉的神经网络结构:
1.
平移不变性:不管出现在图像中的哪个位置,神经网络的底层应该对相同的图像区域做出类似的响应。这个原理即为“平移不变性”。
1.
局部性:神经网络的底层应该只探索输入图像中的局部区域,而不考虑远处区域的图像内容,这就是“局部性”原则。最终,这些局部特征可以融会贯通,在整个图像级别上做出预测。
...
...
@@ -38,14 +38,14 @@
## 限制
MLP
## 限制
多层感知机
首先,假设以二维图像 $
\m
athbf{X}$ 作为输入,那么我们
MLP
的隐藏表示 $
\m
athbf{H}$ 在数学上是一个矩阵,在代码中则是一个二维张量。
首先,假设以二维图像 $
\m
athbf{X}$ 作为输入,那么我们
多层感知机
的隐藏表示 $
\m
athbf{H}$ 在数学上是一个矩阵,在代码中则是一个二维张量。
其中 $
\m
athbf{X}$ 和 $
\m
athbf{H}$ 具有相同的二维形状。
我们可以认为,不仅输入有空间结构,隐藏表示也应该有空间结构。
我们用 $[
\m
athbf{X}]_{i, j}$ 和 $[
\m
athbf{H}]_{i, j}$ 分别表示输入图像和隐藏表示中的位置($i$, $j$)元素。
为了使每个输入像素都有神经元处理,我们将参数从权重矩阵替换为四阶权重张量 $
\m
athsf{W}$,如同我们先前在
MLP
中所做的那样。假设 $
\m
athbf{U}$ 包含偏差参数,我们可以将全连接层表示为
为了使每个输入像素都有神经元处理,我们将参数从权重矩阵替换为四阶权重张量 $
\m
athsf{W}$,如同我们先前在
多层感知机
中所做的那样。假设 $
\m
athbf{U}$ 包含偏差参数,我们可以将全连接层表示为
$$
\b
egin{aligned}
\l
eft[
\m
athbf{H}
\r
ight]_{i, j} &= [
\m
athbf{U}]_{i, j} +
\s
um_k
\s
um_l[
\m
athsf{W}]_{i, j, k, l} [
\m
athbf{X}]_{k, l}
\\
&= [
\m
athbf{U}]_{i, j} +
\s
um_a
\s
um_b [
\m
athsf{V}]_{i, j, a, b} [
\m
athbf{X}]_{i+a, j+b}.
\e
nd{aligned}$$
...
...
@@ -65,7 +65,9 @@ $$\begin{aligned} \left[\mathbf{H}\right]_{i, j} &= [\mathbf{U}]_{i, j} + \sum_k
$$[
\m
athbf{H}]_{i, j} = u +
\s
um_a
\s
um_b [
\m
athbf{V}]_{a, b} [
\m
athbf{X}]_{i+a, j+b}.$$
这就是卷积!我们使用系数 $(i+a, j+b)$ 有效地训练 $(i, j)$ 附近的像素以获得隐藏表示 $[
\m
athbf{H}]_{i, j}$。注意,$[
\m
athbf{V}]_{a, b}$ 的参数比 $[
\m
athsf{V}]_{i, j, a, b}$ 少很多,因为前者不再依赖于图像中的位置。太棒了,通过平移不变性,我们已经取得了重大进展!
这就是卷积!
我们使用系数 $[
\m
athbf{V}]_{a, b}$ 对位置 $(i, j)$ 附近的像素 $(i+a, j+b)$ 进行加权。
注意,$[
\m
athbf{V}]_{a, b}$ 的参数比 $[
\m
athsf{V}]_{i, j, a, b}$ 少很多,因为前者不再依赖于图像中的位置。
### 局部性
...
...
@@ -77,7 +79,7 @@ $$[\mathbf{H}]_{i, j} = u + \sum_{a = -\Delta}^{\Delta} \sum_{b = -\Delta}^{\Del
简而言之, :eqref:
`eq_conv-layer`
是一个卷积层,而卷积神经网络是包含卷积层的一类特殊的神经网络。
在深度学习研究社区中, $
\m
athbf{V}$ 被称为
*卷积核*
(convolution kernel) 或者
*滤波器*
(filter),是可学习的权重。
当图像处理的局部区域很小时,卷积神经网络
CNN与完全连接的网络MLP的训练差异可能是巨大的:以前,MLP可能需要数十亿个参数来表示,而现在CNN
通常只需要几百个参数,而且不需要改变输入或隐藏表示的维数。
当图像处理的局部区域很小时,卷积神经网络
与多层感知机的训练差异可能是巨大的:以前,多层感知机可能需要数十亿个参数来表示,而现在卷积神经网络
通常只需要几百个参数,而且不需要改变输入或隐藏表示的维数。
以上所有的权重学习都依赖于归纳偏差,当这种偏差与实际情况相符时,我们就可以得到有效的模型,这些模型能很好地推广到不可见的数据中。
但如果这些假设与实际情况不符,比如当图像不是平移不变时,我们的模型可能难以拟合。
...
...
@@ -118,7 +120,7 @@ $$(f * g)(i, j) = \sum_a\sum_b f(a, b) g(i-a, j-b).$$
实际上,图像不是二维张量,而是一个由高度、宽度和颜色组成的三维张量,例如形状为 $1024
\t
imes 1024
\t
imes 3$ 的像素。
因此,我们将 $
\m
athsf{X}$ 索引为 $[
\m
athsf{X}]_{i, j, k}$ 。由此卷积相应地调整为 $[
\m
athsf{V}]_{a,b,c}$ ,而不是 $[
\m
athbf{V}]_{a,b}$ 。
此外,由于输入图像是三维的,我们的隐藏表示
$
\m
athsf{H}$也可化为
一个三维张量。
此外,由于输入图像是三维的,我们的隐藏表示
$
\m
athsf{H}$ 也是
一个三维张量。
因此,我们可以把隐藏表示想象为一系列具有二维张量的
*通道*
(channel)。
这些通道有时也被称为
*特征映射*
(feature maps),因为每一层都向后续层提供一组空间化的学习特征。
在靠近输入的底层,一些通道专门识别边,而其他通道专门识别纹理。
...
...
@@ -141,7 +143,7 @@ $$[\mathsf{H}]_{i,j,d} = \sum_{a = -\Delta}^{\Delta} \sum_{b = -\Delta}^{\Delta}
-
图像的平移不变性使我们可以以相同的方式处理局部图像。
-
局部性意味着计算相应的隐藏表示只需一小部分局部图像像素。
-
在图像处理中,卷积层通常比全连接层需要更少的参数。
-
卷积神经网络
CNN
是一类特殊的神经网络,它可以包含多个卷积层。
-
卷积神经网络
(CNN)
是一类特殊的神经网络,它可以包含多个卷积层。
-
多个输入和输出通道使模型在每个空间位置可以获取图像的多方面特征。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录