赞
踩
深度学习的基础模型包括:Linear、MLP、CNN、RNN、Transformer。其他的GRU、LSTM、BERT和GPT都是这些基础模型的变体和组合。这些模型实际上都是为了挖掘数据的特征,不同数据的表达都有相较而言适合的模型来解决(如图中的表格、文本和音频对应的模型)。本篇笔记将对这五个基础模型进行概览。(摘录于李沐老师的b站视频课程)
线性回归是机器学习最基础的模型,也是所有深度学习模型的基础。
给定 n 维输入
x
=
[
x
1
,
x
2
,
.
.
.
,
x
n
]
T
\mathbf{x}=[x_1,x_2,...,x_n]^T
x=[x1,x2,...,xn]T
线性模型有一个 n 维权重和一个标量偏差:
w
=
[
w
1
,
w
2
,
.
.
.
,
w
n
]
T
,
b
\mathbf{w}=[w_1,w_2,...,w_n]^T,b
w=[w1,w2,...,wn]T,b
输出是n维输入的加权和外加偏差:
y
=
w
1
x
1
+
w
2
x
2
+
.
.
.
+
w
n
x
n
+
b
=
⟨
w
,
x
⟩
+
b
y=w_1 x_1+w_2 x_2+...+w_n x_n + b = \langle \mathbf{w},\mathbf{x} \rangle +b
y=w1x1+w2x2+...+wnxn+b=⟨w,x⟩+b
线性模型可以看作是单层神经网络。
Dense:全连接层(Fully Connected Layer, FC)。全连接层指深度学习中常用的一种神经网络层,也称为连接层或感知机层。
模型结构如下图所示:
(1)背景:CNN虽好,可以加很多层
(2)问题:随着网络越来越深,仅仅堆叠在一起就行了吗?
(3)解决方法:要学习的是
H
(
x
)
H(x)
H(x),原始层学的是
x
x
x,新添层学习的是
F
(
x
)
=
h
(
x
)
−
x
F(x)=h(x)-x
F(x)=h(x)−x,最后shortcut connection:
F
(
x
)
+
x
F(x)+x
F(x)+x
好处:不需要学习额外参数 不会增加模型复杂度 网络跟以前一样 没有任何变化
带有门的RNN(Gated RNN):更好的控制信息流 e.g. LSTM、GRU
双向RNN和深度RNN
主流序列转录模型(sequence transduction models):seq2seq,依赖于循环RNN或者卷积神经网络CNN,框架是 encode-decode+Attetion。
输入输出
编码器-解码器和解码器中的自回归(encode-decode + auto-regressive in decode )
堆叠的block(stacked self-attention and point-wise、fully-connected layers)
通用注意力函数
将query和key-value对映射成一个输出的函数。一个query的output是与它相似的value的加权和
2 种常见的注意力机制:
带掩码的注意力机制
权重
k
k
k会全算出来,怎么办?把
k
t
k_t
kt后面的值换成非常大的负数(mask掉),进入到softmax会变成0。这时只能看到
0
−
(
t
−
1
)
0 - (t-1)
0−(t−1)时刻的
q
q
q 和
k
k
k。
多头注意力机制
与其做一个单个的注意力函数,不如说把整个 query、key、value 整个投影 project 到 1个低维,投影 h 次。 然后再做 h 次的注意力函数,把每一个函数的输出拼接在一起,然后 again projected,会得到最终的输出。
TR如何使用注意力机制:使用上述的 3 种不一样的注意力层
交叉注意力(Cross-Attention)则是在两个不同序列上计算注意力,用于处理两个序列之间的语义关系。例如,在翻译任务中,需要将源语言句子和目标语言句子进行对齐,就需要使用交叉注意力来计算两个句子之间的注意力权重。
交叉注意力机制是一种特殊形式的多头注意力,它将输入张量拆分成两个部分:
X
1
,
X
2
X_1,X_2
X1,X2,一个部分作为 query 集合,另一个部分作为 key 集合。交叉注意力计算为:
C
r
o
s
s
A
t
t
e
n
t
i
o
n
(
X
1
,
X
2
)
=
S
o
f
t
m
a
x
(
Q
K
T
d
2
)
V
CrossAttention(X_1,X_2) = Softmax(\cfrac{QK^T}{\sqrt{d_2}})V
CrossAttention(X1,X2)=Softmax(d2
QKT)V
公式解释:
Q
=
X
1
W
Q
,
K
=
V
=
X
2
W
K
Q = X_1W^Q, K = V =X_2W^K
Q=X1WQ,K=V=X2WK 其中
X
1
∈
R
n
∗
d
1
,
W
Q
∈
R
d
1
∗
d
k
X_1\in{R^{n*d_1}},W^Q\in{R^{d_1*d_k}}
X1∈Rn∗d1,WQ∈Rd1∗dk
X
2
∈
R
n
∗
d
2
,
W
K
∈
R
d
2
∗
d
k
X_2\in{R^{n*d_2}},W^K\in{R^{d_2*d_k}}
X2∈Rn∗d2,WK∈Rd2∗dk
d
k
d_k
dk是 key / query 集合的维度。输出是一个大小为
n
∗
d
2
n*d_2
n∗d2的张量,对于每个行向量都给出了它对于所有行向量的注意力权重。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。