1.单隐藏层MLP
2.重新考察全连接层
- 将输入和输出变形为矩阵(宽度,高度)
- 将权重变形为4-D张量(h,w) 到 (h‘,w’)
- h i , j = ∑ k , l w i , j , k , l x k , l = ∑ a , b v i , j , a , b x i + a , j + b \large h_{i,j} = \sum_{k,l}w_{i,j,k,l}x_{k,l} = \sum_{a,b}v_{i,j,a,b}x_{i+a,j+b} hi,j=∑k,lwi,j,k,lxk,l=∑a,bvi,j,a,bxi+a,j+b
- V是W的重新索引 v i , j , a , b = w i , j , k , l \large v_{i,j,a,b} = w_{i,j,k,l} vi,j,a,b=wi,j,k,l
3.两个原则
- 平移不变性:不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对相同的图像区域具有相似的反应
- x的平移导致h的平移 h i , j = ∑ a , b v i , j , a , b x i + a , j + b \large h_{i,j} = \sum_{a,b}\limits v_{i,j,a,b}x_{i+a,j+b} hi,j=a,b∑vi,j,a,bxi+a,j+b
- v不应该依赖于(i,j)
- 因此 v i , j , a , b = v a , b \large v_{i,j,a,b} = v_{a,b} vi,j,a,b=va,b
- h i , j = ∑ a , b v a , b x i + a , j + b \large h_{i,j} = \sum_{a,b}\limits v_{a,b}x_{i+a,j+b} hi,j=a,b∑va,bxi+a,j+b
- 这就是二维交叉相关
- 局部性:神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远区域的关系
- h i , j = ∑ a , b v a , b x i + a , j + b \large h_{i,j} = \sum_{a,b}\limits v_{a,b}x_{i+a,j+b} hi,j=a,b∑va,bxi+a,j+b
- 当评估 h i , j h_{i,j} hi,j时,我们不应该用远离 x i , j x_{i,j} xi,j的参数
- 解决方案:当|a|,|b|> Δ \Delta Δ,使得 v a , b = 0 v_{a,b} = 0 va,b=0
- h i , j = ∑ a = − Δ Δ ∑ b = − Δ Δ v a , b x i + a , j + b \large h_{i,j} = \sum_{a= -\Delta}^{\Delta} \limits \sum_{b= -\Delta}^{\Delta} \limits v_{a,b}x_{i+a,j+b} hi,j=a=−Δ∑Δb=−Δ∑Δva,bxi+a,j+b
- 即:用一个卷积核进行限制
4.卷积是特殊的全连接层,对全连接层使用平移不变形和局部性得到卷积层
- h i , j = ∑ a , b v a , b x i + a , j + b \large h_{i,j} = \sum_{a,b}\limits v_{a,b}x_{i+a,j+b} hi,j=a,b∑va,bxi+a,j+b ===> h i , j = ∑ a = − Δ Δ ∑ b = − Δ Δ v a , b x i + a , j + b \large h_{i,j} = \sum_{a= -\Delta}^{\Delta} \limits \sum_{b= -\Delta}^{\Delta} \limits v_{a,b}x_{i+a,j+b} hi,j=a=−Δ∑Δb=−Δ∑Δva,bxi+a,j+b
5.卷积的含义
-
卷积公式 ∫ − ∞ ∞ f ( τ ) g ( t − τ ) \int_{-∞}^∞ f(τ)g(t-τ) ∫−∞∞f(τ)g(t−τ): 以人体消化为例:
- f(x) 当前的总量 ,g(t-x):t时刻后,所消耗的比例 因此 计算t时刻后 ∫ 0 t f ( x ) g ( t − x ) \int_0^t f(x)g(t-x) ∫0tf(x)g(t−x)
-
总结:一个系统,输入不稳定 f(),输出稳定g(),就可以用卷积求系统存量
-
6.卷积神经网络
-
取一个卷积核(3*3) ,将卷积核映射在图像的点阵上,
-
然后进行点阵与卷积核相乘后结果相加得到一个新的像素值然后得到一个新的图像,
-
因为映射会少一圈,因此会在图像的最外层加一圈0,最后就可以得到一个新的同样大小的图片
-
-
∫ − ∞ ∞ f ( τ ) g ( t − τ ) \int_{-∞}^∞ f(τ)g(t-τ) ∫−∞∞f(τ)g(t−τ)
-
卷积核:规定了周围的像素点是如何对当前像素点产生影响的,
-
图像的卷积操作:通过卷积核对周围像素点的主动试探和选择,通过卷积核把周围有用的特征保留下来
-
-
总结一下卷积层
- 不稳定输入、稳定输出 =》求系统存量 (信号系统应用)
- 周围像素点如何产生影响 (图像处理应用)
- 一个像素点如何试探 (图像识别应用)
-
7.二维卷积层
- 输入X: n h × n w n_h × n_w nh×nw
- 核W: k h × k w k_h × k_w kh×kw
- 偏差b∈R
- 输出Y : ( n h − k h + 1 ) × ( n w − k w + 1 ) (n_h - k_h +1) × (n_w - k_w + 1) (nh−kh+1)×(nw−kw+1) Y=X×W+b
- W和b是可学习的参数
二维交叉相关 VS 卷积
- 二维交叉相关
- h i , j = ∑ a = 1 h ∑ b = 1 w w a , b x i + a , j + b \huge h_{i,j} = \sum_{a= 1}^{h} \limits \sum_{b= 1}^{w} \limits w_{a,b}x_{i+a,j+b} hi,j=a=1∑hb=1∑wwa,bxi+a,j+b
- 二维卷积
- h i , j = ∑ a = 1 h ∑ b = 1 w w − a , − b x i + a , j + b \huge h_{i,j} = \sum_{a= 1}^{h} \limits \sum_{b= 1}^{w} \limits w_{-a,-b}x_{i+a,j+b} hi,j=a=1∑hb=1∑ww−a,−bxi+a,j+b
- 由于对称性,在实际使用中没有区别
一维和三维交叉相关
- 一维:
y
i
=
∑
a
=
1
h
w
a
x
i
+
a
\huge y_{i} = \sum_{a= 1}^{h} \limits w_{a}x_{i+a}
yi=a=1∑hwaxi+a
- 文本、语言、时序序列
- 三维:
y
i
,
j
,
k
=
∑
a
=
1
h
∑
b
=
1
w
∑
c
=
1
h
w
a
,
b
,
c
x
i
+
a
,
j
+
b
,
k
+
c
\huge y_{i,j,k} = \sum_{a= 1}^{h} \limits \sum_{b= 1}^{w} \limits \sum_{c= 1}^{h} \limits w_{a,b,c}x_{i+a,j+b,k+c}
yi,j,k=a=1∑hb=1∑wc=1∑hwa,b,cxi+a,j+b,k+c
- 视频、医学图像、气象地图
对卷积的总结
- 卷积层将输入和核矩阵进行交叉相关,加上偏移后得到输出
- 核矩阵和偏移是可学习参数
- 核矩阵的大小是超参数
8关于卷积的一些操作
8.1.填充
- 填充 p h p_h ph 行 和 p w p_w pw列,输出形状为 ( n h − k h + p h + 1 ) × ( n w − k w + p w + 1 ) (n_h-k_h+p_h + 1) × (n_w- k_w+ p_w +1) (nh−kh+ph+1)×(nw−kw+pw+1)
- 通常取
p
h
=
k
h
−
1
,
p
w
=
k
w
−
1
p_h = k_h -1,p_w = k_w-1
ph=kh−1,pw=kw−1
- 当 k h k_h kh 为奇数时,在上下两侧填充 p h / 2 p_h/2 ph/2
- 当 k h k_h kh 为偶数时,在上下两侧填充 p h / 2 p_h/2 ph/2,在左右两侧填充 p h / 2 p_h/2 ph/2
8.2.步幅
-
填充减小的输出大小与层数线性相关
- 给定数大小224x224,在使用5x5卷积核的情况下,需要55层将输出降低到4x4
- 需要大量计算才能得到较小输出
-
步幅是指行/列的滑动步长
- 例:高度3宽度2的步幅
- 例:高度3宽度2的步幅
-
给定高度 s h s_h sh,和宽度 s w s_w sw 的步幅,输出形状是 [ ( n h − k h + p h + s h ) / s h ] × [ ( n w − k w + p w + s w ) / s w ] [(n_h-k_h+p_h + s_h)/s_h] × [(n_w- k_w+ p_w +s_w)/s_w] [(nh−kh+ph+sh)/sh]×[(nw−kw+pw+sw)/sw]
-
如果 p h = k h − 1 , p w = k w − 1 p_h = k_h -1,p_w = k_w-1 ph=kh−1,pw=kw−1,
- [ ( n h + s h − 1 ) / s h ] × [ ( n w + s w − 1 ) / s w ] [(n_h+ s_h-1)/s_h] × [(n_w +s_w-1)/s_w] [(nh+sh−1)/sh]×[(nw+sw−1)/sw] # [ ] 内数值向上取整
-
如果输入高度和宽度可以被步幅整除 ( n h / s h ) × ( n w / s w ) (n_h/s_h)×(n_w/s_w) (nh/sh)×(nw/sw)
8.3.多输入通道
- 彩色图片有RGB三个通道
- 转换为灰度会丢失信息
- 多通道情况:每个通道都有一个卷积核,结果是所有通道卷积结果的和
- 输入X: c i × n h × n w c_i× n_h × n_w ci×nh×nw
- 核W: c i × k h × k w c_i× k_h × k_w ci×kh×kw
- 输出Y : m h × m w m_h × m_w mh×mw
8.4.多个输出通道
- 无论有多输入通道,都只用到单输出通道
- 我们可以有多个三维卷积核,每个核生成一个输出通道
- 输入X: c i × n h × n w c_i× n_h × n_w ci×nh×nw
- 核W: c i × c o × k h × k w c_i× c_o× k_h × k_w ci×co×kh×kw
- 输出Y : c o × m h × m w c_o× m_h × m_w co×mh×mw
8.5.多个输入和输出通道
- 每个输出通道可以识别特定模式
- - 输入通道核识别并组合输入中的模式
8.6. 关于1x1卷积层
- k h = k w = 1 k_h = k_w = 1 kh=kw=1是一个受欢迎的选择,不识别空间模式,只是融合通道
- 相当于输入形状 n h n w × c j n_h n_w × c_j nhnw×cj,权重为 c o × c j c_o×c_j co×cj的全连接
8.7.池化层:返回窗口中的最大或平均值
- 卷积对位置敏感,不是一个特别好的事情
- 需要一定程度的平移不变性
- 缓解卷积层对位置的敏感性
最大池化:每个窗口中最强的模式信号
- 返回滑动窗口中的最大值
-
平均池化层:柔和化
- 返回滑动窗口中的平均值
填充、步幅和多个通道
- 池化层与卷积层类似,都具有填充和步幅
- 没有可学习参数
- 每个输入通道应用池化层以获得相应的输出通道
- 输出通道数=输入通道数
8.8关于填充和步幅
- 填充和步幅是卷积层的超参数
- 填充在输入周围添加额外的行/列,来控制输出形状的减少量
- 步幅是每次滑动核窗口时的行/列的步长,可以成倍的减少输出形状