Datawhale~水很深的深度学习~Task 4: 卷积神经网络(CNN)
作者:互联网
写在前面✍
\quad\quad 本系列笔记为Datawhale11月组队学习的学习笔记:水很深的深度学习。本次组队学习重理论知识学习,包含DL相关的基础知识,如CNN、RNN、Transformer等。参与本次组队学习两个目的:第一,提起自己DL学习的热情;第二,巩固基础知识,使得做实验更加得心应手。
DW 学习文档
卷积神经网络
本章内容是对于卷积神经网络的总结。卷积神经网络在多层感知器的基础上,CNN的核心内容是kernel(卷积核),平移不变性和参数共享。
回顾全连接神经网络,如下图,它的权重矩阵的参数非常多。
而且往往自然图像中的物体都具有局部不变性特征,即尺度缩放、平移、旋转等操作不影响其语义信息,但是全连接前馈网络很难提取这些局部不变特征,这就引出了我们将要介绍的卷积神经网络(Convolutional Neural Networks,CNN)。
卷积神经网络也是一种前馈神经网络,是受到生物学上感受野(感受野主要是指听觉系统、本体感觉系统和视觉系统中神经元的一些性质)的机制而提出的(在视觉神经系统中,一个神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该神经元)。
I CNN基本原理
卷积
卷积:(f*g)(n)成为
f
f
f 和
g
g
g 的卷积,连续卷积和离散卷积可以表达为如下形式:
(
f
∗
g
)
(
n
)
=
∫
−
∞
∞
f
(
τ
)
g
(
n
−
τ
)
d
τ
n
=
τ
+
(
n
−
τ
)
(
f
∗
g
)
(
n
)
=
∑
τ
=
−
∞
∞
f
(
τ
)
g
(
n
−
τ
)
(f * g)(n)=\int_{-\infty}^{\infty} f(\tau) g(n-\tau) d \tau \\ n = \tau + (n - \tau) \\ (f * g)(n) = \sum_{\tau = -\infty}^{\infty} f(\tau) g(n-\tau)
(f∗g)(n)=∫−∞∞f(τ)g(n−τ)dτn=τ+(n−τ)(f∗g)(n)=τ=−∞∑∞f(τ)g(n−τ)
卷积有很多应用,经常用于处理一个输入,通过系统产生一个适应需求的输出。
- 统计学中加权平均法
- 概率论中两个独立变量之和概率密度的计算
- 信号处理中的线性系统
- 物理学的线性系统
- 图像处理中的应用(卷积神经网络)
卷积经常用在信号处理中,用于计算信号的延迟累积。
例如,假设一个信号发生器每个时刻
t
t
t 产生一个信号
x
t
x_t
xt ,其信息的衰减率为
w
k
w_k
wk ,即在
k
−
1
k−1
k−1 个时间步长后,信息为原来的
w
k
w_k
wk 倍,假设
w
1
=
1
,
w
2
=
1
/
2
,
w
3
=
1
/
4
w_1 = 1,w_2 = 1/2,w_3 = 1/4
w1=1,w2=1/2,w3=1/4,则时刻
t
t
t 收到的信号
y
t
y_t
yt 为当前时刻产生的信息和以前时刻延迟信息的叠加,即:
y
t
=
1
×
x
t
+
1
/
2
×
x
t
−
1
+
1
/
4
×
x
t
−
2
=
w
1
×
x
t
+
w
2
×
x
t
−
1
+
w
3
×
x
t
−
2
=
∑
k
=
1
3
w
k
⋅
x
t
−
k
+
1
\begin{aligned} y_{t} &=1 \times x_{t}+1 / 2 \times x_{t-1}+1 / 4 \times x_{t-2} \\ &=w_{1} \times x_{t}+w_{2} \times x_{t-1}+w_{3} \times x_{t-2} \\ &=\sum_{k=1}^{3} w_{k} \cdot x_{t-k+1} \end{aligned}
yt=1×xt+1/2×xt−1+1/4×xt−2=w1×xt+w2×xt−1+w3×xt−2=k=1∑3wk⋅xt−k+1
其中
w
k
w_k
wk 就是滤波器,也就是常说的卷积核 convolution kernel。
给定一个输入信号序列
x
x
x 和滤波器
w
w
w,卷积的输出为:
y
t
=
∑
k
=
1
K
w
k
x
t
−
k
+
1
y_t = \sum_{k = 1}^{K} w_k x_{t-k+1}
yt=k=1∑Kwkxt−k+1
不同的滤波器来提取信号序列中的不同特征:
下面引入滤波器的滑动步长S和零填充P:
卷积的结果按输出长度不同可以分为三类: