人工智能前沿

人工智能前沿课程笔记,整理自 qsgg、bxgg 手写梳理稿和 B 站课程
  • 考试时间6.15

前言:这个结合了qsgg的整理和本人和bxgg手写梳理了一遍的原稿,以及一些自己在B站上看过的课程

考完了,考试其实感觉考得很简单,基础概念懂了,所有的概念都懂了的话就很好理解了

放在这里主要是回看用吧,可能还是自己梳理过的东西捡起来会比较容易一点

机器学习与深度学习

一、机器学习的概念与分类

  1. 概念:通过对数据的优化学习,建立能够刻画数据中所蕴含语义概念或分布结构等信息的模型
  2. 分类:从数据利用的角度,可分为:
    1. 监督学习
    2. 无监督学习
    3. 半监督学习

监督学习

基本概念

目标是给定带有标签信息数据的训练集 D={(xi,yi)}i=1nD = \{(x_i, y_i)\}_{i = 1}^n,学习一个从输入xix_iyiy_i的映射,其中D被称为训练集,n是训练样例的数量。

监督学习算法从假设空间(hypothesisspace)学习得到一个最优映射函数f(又称决策函数),映射函数f将输入数据映射到语义标注空间,实现数据的分类和识别。

有监督学习:训练集、验证集、测试集
  1. 训练集上完成模型参数优化
  2. 将训练集中⼀部分数据作为验证集(validation set)
  3. 最后在测试集上进⾏测试,将测试结果作为模型性能最终结果

要注意的是,训练集、验证集和测试集所包含数据之间没有任何交叉

无监督学习

无监督学习则是直接从无标签数据{xi;,i=1,..,n}\{x_i;,i=1,..,n\}出发学习映射函数,而半监督学习在学习映射函数过程中使用的一部分数据有标签、一部分数据没有标签。

二、模型评估与参数估计手段:损失函数

泛化能力(generalization)

在机器学习中,需要保证模型在训练集上所取得性能与在测试集上所取得性能保持一致,即模型具有泛化能力(generalization)。

img

img

经验风险与期望风险

经验风险

映射函数ff在训练集上所产⽣损失⼀般被称为经验风险 empℜ_{emp}(empirical risk)。。

经验风险越小说明模型对训练集数据拟合程度越好。经验风险被定义为:

1ni=1nLoss(yi,f(xi))\frac{1}{n}\sum_{i = 1}^n Loss(y_i,f(x_i))
期望风险

如果知道某⼀任务包含的所有数据,则可以从所有数据中计算模型产⽣的损失,这⼀误差损失被称为期望风险(expected risk)即真实风险或真实误差。记该任务中所有数据的联合分布为P(x,y)P(x,y),期望风险被定义为

x×yLoss(y,f(x))P(x,y)dxdy\int_{x \times y} Loss(y,f(x))P(x,y)dxdy

经验风险 ≈ 训练误差

期望风险 ≈ 真实的泛化误差

经验风险最小化

当然,由于无法事先就得到任何任务所对应的所有数据分布(如无法采取世界中所有人脸图像来写信完成人脸识别),使得计算期望风险这一目标可望不可及。因此,机器学习中模型优化目标一般为经验风险最小化(empirical risk minimization),虽然机器学习的目标是追求期望风险最小化,即不断提升模型泛化能力。

期望风险与经验风险的关系

期望风险 R\mathfrak{R} 与经验风险 Remp\mathfrak{R}_{emp} 之间存在如下关系:

img

errerr为误差项

其中 errerr 取值与机器学习模型的复杂程度训练集样本数目有关。在模型训练过程中,如果使用同一批训练数据反复训练,模型会变得越复杂,虽然经验风险 Remp\mathfrak{R}_{emp} 会降低,但是 errerr 取值会越大,导致期望风险 R\mathfrak{R} 增加。这一现象被称为过学习(过拟合)(overfitting)

让我为您详细解释模型泛化能力与经验风险、期望风险之间的关系:

四种典型情况分析

根据表格中的四种情况,我们可以看到:

情况类型经验风险期望风险模型泛化能力特点/说明
理想状态小(训练集上表现好)小(所有数据上表现好)泛化能力强这是我们最希望达到的状态
过拟合小(训练集上表现好)大(所有数据上表现不好)过学习(模型过于复杂)典型的过拟合现象
欠拟合大(训练集上表现不好)大(所有数据上表现不好)欠学习模型过于简单,无法捕捉数据规律
异常情况大(训练集上表现不好)小(所有数据上表现好)"神仙操作"或"贵族套餐"这种情况在实际中很少见,可能表示训练数据有问题

结构风险最小化

为了解决过拟合问题,我们引入结构风险最小化

核心思想

在模型优化中引入恰当先验约束可提升模型性能。通过正则化来降低模型复杂度,在最小化经验风险的同时,寻求降低模型复杂度的平衡。

数学表达
1ni=1nLoss(yi,f(xi))+λJ(f)\frac{1}{n}\sum_{i=1}^{n} Loss(y_i, f(x_i)) + \lambda J(f)

其中:

  • 第一项:经验风险(拟合训练数据)
  • J(f)J(f):正则化因子或惩罚项因子(控制模型复杂度)
  • λ\lambda:调整惩罚强度的系数
简单有效原理

"如无必要,勿增实体" - 即"简单有效原理"

这个哲学原理在机器学习中的体现就是:

  • 在能够解释数据的前提下,选择最简单的模型
  • 避免不必要的复杂性
  • 通过约束(如约束模型参数稀疏等)使建模过程"能够化繁为简、大巧不工"
实际应用意义——平衡拟合与泛化

结构风险最小化——防止过学习,结构风险最小化,求取二者的平衡

模型度量方法

以二分类问题(正类、负类)为例:

True、False表示真正结果,Positive、Negative表示预测,因此有TP、FP、FN、TN

但注意TP、FP、FN、TN,不代表TF就是真实类别,而PN确实是代表预测对错

T、F代表的是最后预测的对错

使用TP FN负负得正的出来的才是真实类别

”纵坐标“是预测,”横坐标“是真实值

img

准确率(accuracy)
ACC=TP+TNP+NACC = \frac{TP + TN}{P + N}

这个事情很显然,判断正确的几率

错误率(error rate)
errorRate=FP+FNP+NerrorRate = \frac{FP + FN}{P + N}

这个事情也很显然,1ACC=errorRate1-ACC = errorRate

精确率——“真”对了多少(precision)

精确率也叫查准率,预测结果为正确里面有多少个实际也是正确的,即真对了多少

precision=TPTP+FPprecision = \frac{TP}{TP + FP}
召回率——“找”对了多少(Recall)

也叫查全率,表示所有正例样本中被模型预测为正例的比例

Recall=TPTP+FNRecall = \frac{TP}{TP+FN}

在实际应用中,精确率和召回率之间是相互矛盾的,比如可以将所有样本分类为正例使得召回率为100%而精确率极低。因此为了综合考虑精确率和召回率,可采用F1-Score 这一综合分类率:

img

即调和平均数

二、回归分析

线性回归

一维线性回归

img

img

高维线性回归

img

矩阵形式

为了方便,我们使用矩阵来表示所有的训练数据和数据标签。

X=[x1,...,xm],y=[y1,...,ym]X = [x_1, ..., x_m], \quad \mathbf{y} = [y_1, ..., y_m]

其中每一个数据xix_i会扩展一个维度,其值为1,对应参数a0a_0。均方误差函数可以表示为:

Jm(a)=(yXTa)T(yXTa)J_m(\mathbf{a}) = (\mathbf{y} - X^T\mathbf{a})^T(\mathbf{y} - X^T\mathbf{a})

均方误差函数Jn(a)J_n(\mathbf{a})对所有参数a\mathbf{a}求导可得:

J(a)=2X(yXTa)\nabla J(\mathbf{a}) = -2X(\mathbf{y} - X^T\mathbf{a})

因为均方误差函数Jn(a)J_n(\mathbf{a})是一个二次的凸函数,所以函数只存在一个极小值点,也同样是最小值点,

所以令J(a)=0\nabla J(\mathbf{a}) = 0可得:

XXTa=XyXX^T\mathbf{a} = X\mathbf{y}a=(XXT)1Xy\mathbf{a} = (XX^T)^{-1}X\mathbf{y}
矩阵求梯度详解
基本概念

矩阵求梯度是指对标量函数相对于向量参数求偏导数,结果是一个与参数向量同维度的梯度向量。

常用矩阵求导公式

在推导前,我们需要掌握几个重要的矩阵求导公式:

img

img

具体推导过程

让我们详细推导均方误差函数的梯度:

Jm(a)=(yXTa)T(yXTa)J_m(\mathbf{a}) = (\mathbf{y} - X^T\mathbf{a})^T(\mathbf{y} - X^T\mathbf{a})
第一步:展开二次型
Jm(a)=(yXTa)T(yXTa)J_m(\mathbf{a}) = (\mathbf{y} - X^T\mathbf{a})^T(\mathbf{y} - X^T\mathbf{a})=yTyyTXTaaTXy+aTXXTa= \mathbf{y}^T\mathbf{y} - \mathbf{y}^T X^T\mathbf{a} - \mathbf{a}^T X \mathbf{y} + \mathbf{a}^T X X^T \mathbf{a}
第二步:利用对称性简化

注意到 yTXTa\mathbf{y}^T X^T\mathbf{a} 是标量,所以: yTXTa=(yTXTa)T=aTXy\mathbf{y}^T X^T\mathbf{a} = (\mathbf{y}^T X^T\mathbf{a})^T = \mathbf{a}^T X \mathbf{y}

因此: Jm(a)=yTy2aTXy+aTXXTaJ_m(\mathbf{a}) = \mathbf{y}^T\mathbf{y} - 2\mathbf{a}^T X \mathbf{y} + \mathbf{a}^T X X^T \mathbf{a}

第三步:对每一项求梯度
  1. 第一项yTy\mathbf{y}^T\mathbf{y} 是常数 a(yTy)=0\frac{\partial}{\partial \mathbf{a}}(\mathbf{y}^T\mathbf{y}) = \mathbf{0}
  2. 第二项2aTXy-2\mathbf{a}^T X \mathbf{y} 是线性项 a(2aTXy)=2Xy\frac{\partial}{\partial \mathbf{a}}(-2\mathbf{a}^T X \mathbf{y}) = -2X\mathbf{y}
  3. 第三项aTXXTa\mathbf{a}^T X X^T \mathbf{a} 是二次项
  4. 由于 XXTXX^T 是对称矩阵,根据公式: a(aTXXTa)=2XXTa\frac{\partial}{\partial \mathbf{a}}(\mathbf{a}^T X X^T \mathbf{a}) = 2XX^T\mathbf{a}
第四步:合并结果
Jm(a)=02Xy+2XXTa\nabla J_m(\mathbf{a}) = \mathbf{0} - 2X\mathbf{y} + 2XX^T\mathbf{a}=2XXTa2Xy= 2XX^T\mathbf{a} - 2X\mathbf{y}=2X(XTay)= 2X(X^T\mathbf{a} - \mathbf{y})=2X(yXTa)= -2X(\mathbf{y} - X^T\mathbf{a})
关键理解点
  1. 维度匹配
  • a\mathbf{a}n×1n \times 1 向量
  • XXn×mn \times m 矩阵
  • y\mathbf{y}m×1m \times 1 向量
  • 梯度 Jm(a)\nabla J_m(\mathbf{a}) 也必须是 n×1n \times 1 向量
  1. 链式法则

对于复合函数 f(g(x))f(g(\mathbf{x})),有: fx=fggx\frac{\partial f}{\partial \mathbf{x}} = \frac{\partial f}{\partial g} \cdot \frac{\partial g}{\partial \mathbf{x}}

  1. 矩阵求导的本质

矩阵求导实际上是对每个分量分别求偏导数: fx=[fx1 fx2  fxn]\frac{\partial f}{\partial \mathbf{x}} = \begin{bmatrix} \frac{\partial f}{\partial x_1} \ \frac{\partial f}{\partial x_2} \ \dots \ \frac{\partial f}{\partial x_n} \end{bmatrix}

实用技巧
  1. 先展开再求导:复杂的矩阵表达式可以先展开成标量形式
  2. 利用对称性aTb=bTa\mathbf{a}^T\mathbf{b} = \mathbf{b}^T\mathbf{a}(当结果是标量时)
  3. 分项处理:把复杂函数分解为简单项的和
  4. 检查维度:每一步都要确保维度匹配

这样,通过系统的推导,我们就得到了均方误差函数的梯度表达式!

三、前馈神经网络与参数优化

1、人工神经网络概述

img

感知机

img

前馈神经网络

img

2、激活函数

激活函数必须是【单调递增的】

img

四、卷积神经网络

一个很形象的可视化视频,从2min29s开始看就好了

一些杂项

八股的概念

图像卷积操作符合“视觉系统信息分层处理”这一机制,即视觉感知是由低层细胞到高层细胞对原始输入信息不断抽象完成,更高层细胞拥有更高级的感受野,并且对一些偏移、旋转等具有一定的不变性

基本概念

感受野

感受野是卷积神经网络每一层输出的特征图(feature map)上的像素点输入图像映射的区域大小,是特征图上一个点对应输入图像上的区域

[h,w][h,w]:感受野大小/卷积核大小->对性能的影响

(i,j)(i,j):方向和距离->位移

下采样

图像卷积计算即对图像进行了下采样 (down sampling)操作

img

img

下采样的减抽象

感觉现场推就可以了

假设被卷积图像大小为W×WW×W,卷积核大小为F×FF×F,上下左右四个边缘填充像素行列数为P=F/2P = ⌊F/2⌋,步长为SS,则被卷积结果的分辨率是 WF+2PS+1\frac{W-F+2P}{S} + 1

Padding(填充)

填充可以补0或者复制

img

Stride(步长)

img

Dilation(膨胀)

img

Pooling(池化)

池化操作是卷积神经网络中常用的下采样方法,主要有最大池化(Max Pooling)、平均池化(Average Pooling)、 k-max 池化(K-Max Pooling)等

img

词嵌入(Word embedding)

词嵌入要达到的目的——经过word embedding,词意相近的两个词在特征空间会相隔比较近

img

通过将One-Hot编码表示的词与嵌入矩阵相乘就可以将高维稀疏的矩阵嵌入到一个低维稠密的矩阵中

五、循环神经网络(Recurrent Neural Network, RNN)

img

1、基本原理

循环神经网络的结构图如上所示。由"循环"两字可知,循环神经网络在处理数据过程中构成了一个循环体。对于一个序列数据,在每一时刻t,循环神经网络单元会读取当前输入数据xtx_t前一时刻输入数据xt1x_{t-1}对应的隐式编码结果ht1h_{t-1}一起生成tt时刻的隐式编码结果hth_t。接着将hth_t后传,去参与生成t+1t+1时刻输入数据xt+1x_{t+1}的隐式编码ht+1h_{t+1}。如此循环处理,直至该序列数据被处理完毕。

当输入序列过长时,循环神经网络也容易出现梯度消失(gradient vanishing)或者梯度爆炸(gradient exploding)的问题

2、序列误差

img

3、参数更新的问题

img

4、长短期记忆网络(LSTM)

速记

长短期记忆网络引入了记忆元(memory cell),或简称为单元(cell)。当前时间步的输入和前一个时间步的隐状态 作为数据送入长短期记忆网络的门中, 如图所示。 它们由三个具有sigmoid激活函数的全连接层处理, 以计算输入门、遗忘门和输出门的值。 因此,这三个门的值都在(0,1)的范围内。

输入门、遗忘门和输出门

img

假设有h个隐藏单元,批量大小为n,输入数为d。因此,输入为XtRn×dX_t ∈ ℝ^{n×d},前一时间步的隐状态为Ht1Rn×hH_{t-1} ∈ ℝ^{n×h}。相应地,时间步t的门被定义如下:输入门是ItRn×hI_t ∈ ℝ^{n×h},遗忘门是FtRn×hF_t ∈ ℝ^{n×h},输出门是OtRn×hO_t ∈ ℝ^{n×h}。它们的计算方法如下:

It=σ(XtWxi+Ht1Whi+bi),\mathbf{I}_t = \sigma(\mathbf{X}_t \mathbf{W}_{xi} + \mathbf{H}_{t-1} \mathbf{W}_{hi} + \mathbf{b}_i),Ft=σ(XtWxf+Ht1Whf+bf),\mathbf{F}_t = \sigma(\mathbf{X}_t \mathbf{W}_{xf} + \mathbf{H}_{t-1} \mathbf{W}_{hf} + \mathbf{b}_f),Ot=σ(XtWxo+Ht1Who+bo)\mathbf{O}_t = \sigma(\mathbf{X}_t \mathbf{W}_{xo} + \mathbf{H}_{t-1} \mathbf{W}_{ho} + \mathbf{b}_o)

其中Wxi,Wxf,WxoRd×h 和 Whi,Whf,WhoRh×h\mathbf{W}_{xi}, \mathbf{W}_{xf}, \mathbf{W}_{xo} \in \mathbb{R}^{d \times h} \text{ 和 } \mathbf{W}_{hi}, \mathbf{W}_{hf}, \mathbf{W}_{ho} \in \mathbb{R}^{h \times h}是权重参数,bi,bf,boR1×h\mathbf{b}_i, \mathbf{b}_f, \mathbf{b}_o \in \mathbb{R}^{1 \times h}是偏置参数。

候选记忆元 (candidate memory cell)
C~tRn×h\tilde{\mathbf{C}}_t \in \mathbb{R}^{n \times h}

它的计算与上面描述的三个门的计算类似,但是使用tanh函数作为激活函数,函数的值范围为(-1,1)。下面导出在时间步t处的方程:

C~t=tanh(XtWxc+Ht1Whc+bc)\tilde{\mathbf{C}}_t = \tanh(\mathbf{X}_t \mathbf{W}_{xc} + \mathbf{H}_{t-1} \mathbf{W}_{hc} + \mathbf{b}_c)

其中WxcRd×h 和 WhcRh×h\mathbf{W}_{xc} \in \mathbb{R}^{d \times h} \text{ 和 } \mathbf{W}_{hc} \in \mathbb{R}^{h \times h}是权重参数,bcR1×h\mathbf{b}_c \in \mathbb{R}^{1 \times h}是偏置参数。

img

记忆控制

在长短期记忆网络中,也有两个门用于这样的目的:输入门控制采用多少来自C~t\tilde{\mathbf{C}}_t的新数据,而遗忘门Ft\mathbf{F}_t控制保留多少过去的记忆元Ct1Rn×h\mathbf{C}_{t-1} \in \mathbb{R}^{n \times h}的内容。使用按元素乘法,得出:

Ct=FtCt1+ItC~t\mathbf{C}_t = \mathbf{F}_t \odot \mathbf{C}_{t-1} + \mathbf{I}_t \odot \tilde{\mathbf{C}}_t

如果遗忘门始终为1且输入门始终为0,则过去的记忆元Ct1\mathbf{C}_{t-1}将随时间被保存并传递到当前时间步。引入这种设计是为了缓解梯度消失问题,并更好地捕获序列中的长距离依赖关系。

隐状态计算

定义如何计算隐状态HtRn×h\mathbf{H}_t \in \mathbb{R}^{n \times h}这就是输出门发挥作用的地方。在长短期记忆网络中,它仅仅是记忆元的tanh的门控版本。这就确保了Ht\mathbf{H}_t的值始终在区间(-1,1)内:

Ht=Ottanh(Ct).(9.2.4)\mathbf{H}_t = \mathbf{O}_t \odot \tanh(\mathbf{C}_t). \quad (9.2.4)

只要输出门接近1,我们就能够有效地将所有记忆信息传递给预测部分,而对于输出门接近0,我们只保留记忆元内的所有信息,而不需要更新隐状态。

5、门控循环单元(GRU)

门控循环单元与普通的循环神经网络之间的关键区别在于: 前者支持隐状态的门控。 这意味着模型有专门的机制来确定应该何时更新隐状态, 以及应该何时重置隐状态。 这些机制是可学习的

img

重置门和更新门
重置门 (Reset Gate) - 控制"遗忘" RtRn×h\mathbf{R}_t \in \mathbb{R}^{n \times h}
  • 重置门 ≈ 0:完全忘记过去信息,候选隐状态只依赖当前输入(像全新开始)
  • 重置门 ≈ 1:完全保留过去信息,候选隐状态同时考虑当前输入和历史状态
更新门 (Update Gate) - 控制"更新" ZtRn×h\mathbf{Z}_t \in \mathbb{R}^{n \times h}
  • 更新门 ≈ 0:大量采用新信息(候选隐状态),少量保留旧信息
  • 更新门 ≈ 1:大量保留旧信息(前一时刻隐状态),少量采用新信息

门控循环单元的数学表达。对于给定的时间步t,假设输入是一个小批量XtRn×d\mathbf{X}_t \in \mathbb{R}^{n \times d}(样本个数n,输入个数d),上一个时间步的隐状态是Ht1Rn×h\mathbf{H}_{t-1} \in \mathbb{R}^{n \times h}(隐藏单元个数h)。那么,重置门RtRn×h\mathbf{R}_t \in \mathbb{R}^{n \times h}和更新门ZtRn×h\mathbf{Z}_t \in \mathbb{R}^{n \times h}

的计算如下所示:

Rt=σ(XtWxr+Ht1Whr+br)\mathbf{R}_t = \sigma(\mathbf{X}_t \mathbf{W}_{xr} + \mathbf{H}_{t-1} \mathbf{W}_{hr} + \mathbf{b}_r)Zt=σ(XtWxz+Ht1Whz+bz)\mathbf{Z}_t = \sigma(\mathbf{X}_t \mathbf{W}_{xz} + \mathbf{H}_{t-1} \mathbf{W}_{hz} + \mathbf{b}_z)

接下来,让我们将重置门Rt\mathbf{R}_t常规隐状态更新机制集成,得到在时间步t的候选隐状态 (candidate hidden state)H~tRn×h\tilde{\mathbf{H}}_t \in \mathbb{R}^{n \times h}

H~t=tanh(XtWxh+(RtHt1)Whh+bh),(9.1.2)\tilde{\mathbf{H}}_t = \tanh(\mathbf{X}_t \mathbf{W}_{xh} + (\mathbf{R}_t \odot \mathbf{H}_{t-1}) \mathbf{W}_{hh} + \mathbf{b}_h), \quad (9.1.2)

其中WxhRd×h 和 WhhRh×h\mathbf{W}_{xh} \in \mathbb{R}^{d \times h} \text{ 和 } \mathbf{W}_{hh} \in \mathbb{R}^{h \times h}是权重参数,bhR1×h\mathbf{b}_h \in \mathbb{R}^{1 \times h}是偏置项,符号\odot是Hadamard积(按元素乘积)运算符。

Ht=ZtHt1+(1Zt)H~t\mathbf{H}_{t}=\mathbf{Z}_{t} \odot \mathbf{H}_{t-1}+\left(1-\mathbf{Z}_{t}\right) \odot \tilde{\mathbf{H}}_{t}
6、Padding

在循环神经网络中,输入序列的长度通常是不一致的,因此需要对输入序列进行Padding 操作,将所有输入序列填充到相同长度

img

PAD加到后面——不好;加到前面——好,因为语句越往后越重要,由此也引出了双向循环神经网络

7、双向循环神经网络(Bidirectional Recurrent Neural Network, BiRNN)

双向循环神经网络(Bidirectional Recurrent Neural Network, BiRNN)是一种特殊的循环神经网络结构,它通过在时间序列的正向和反向两个方向上同时进行信息处理,从而更好地捕捉序列数据中的上下文信息

img

六、Transformer结构

1、注意力机制

基本概念

img

首先生成每个单词的内嵌向量(包含了单词在句子中位置编码向量信息),记为wi(1i4)w_i(1≤i≤4),如下计算每个单词wiw_i查询向量(query)、键向量(key)和值向量(value)

  1. 查询向量:qi=Wq×wiq_i=W^q×w_i
  2. 健向量:ki=Wk×wik_i=W^k×w_i
  3. 值向量:vi=Wv×wiv_i=W^v×w_i

自注意力模型就是要挖掘单词Wi与其他单词在句子中因为上下文(context)关联而具有的自注意力取值大小

ia3i×vi∑_ia_{3i}^′×v_i, 这个结果作为在当前句子语境下单词w3w_3 “注意”到与其他单词的关联程度(self-attention)

多头注意力机制——找多重关系

可引入“多头”注意力(multi-headed attention)机制从更多角度来挖掘某个单词与其他单词之间概率关联,每个单词自注意力关联可以并行计算

img

多头注意⼒机制是由于两个token之间可能存在【多种不同类型的关系】(如语法关系、语义关系等)

2、正则化与批归一化

正则化

img

批归一化

通过规范化手段,把神经网络每层中任意神经元的输入值分布改变成均值为0、方差为1的标准正态分布,把偏移较大的分布强制映射为标准正态分布。经过批归一化处理,激活函数的输入值被映射到非线性函数梯度较大的区域,使得梯度变大从而克服梯度消失问题,进而加快收敛速度

img

img

实际上就是概统里面的正态分布估计——大数定律

3、Transformer

不同于传统卷积神经网络使用固定的卷积核(感受野),Transformer 模型使用自注意力来自适应计算感受野

基本组件
  • Image: IRC×NI \in \mathbb{R}^{C \times N} (N=H×W)(N = H \times W)
    • 绝对位置编码:I(x,y)=F(x,y)+Emb(x,y)I^{(x,y)} = \mathbf{F}^{(x,y)} + \text{Emb}(x, y)
  • Query: Q=WqIRC×N\mathbf{Q} = \mathbf{W}_q \cdot \mathbf{I} \in \mathbb{R}^{C' \times N}, WqRC×C\mathbf{W}_q \in \mathbb{R}^{C' \times C}
  • Key: K=WkIRC×N\mathbf{K} = \mathbf{W}_k \cdot \mathbf{I} \in \mathbb{R}^{C' \times N}, WkRC×C\mathbf{W}_k \in \mathbb{R}^{C' \times C}
  • Scaled Dot Product: P=QTKCRN×N\mathbf{P} = \frac{\mathbf{Q}^T \cdot \mathbf{K}}{\sqrt{C'}} \in \mathbb{R}^{N \times N}
  • Attention: A=softmax(P)RN×N\mathbf{A} = \text{softmax}(\mathbf{P}) \in \mathbb{R}^{N \times N}
  • Value: V=WvIRC×N\mathbf{V} = \mathbf{W}_v \cdot \mathbf{I} \in \mathbb{R}^{C' \times N}, WvRC×C\mathbf{W}_v \in \mathbb{R}^{C' \times C}
    • Value 没有对方向、距离信息编码
自注意力计算
Fa=b=1NAab×Vb\mathbf{F}_a = \sum_{b=1}^{N} \mathbf{A}_{ab} \times \mathbf{V}_b

其中 Aab\mathbf{A}_{ab} 表示 patchaa 对 patchbb 之间的相关性,Vb\mathbf{V}_b 表示 patch bb 的表征,最终求和得到以 patch aa 为中心的相关区域的表征

img

卷积 vs Transformer
  • Transformer——使用绝对编码,会污染特征
  • 为什么Transfomer还做得很好呢——大数据,力大砖飞

img

七、图神经网络

  • 节点表示:在图神经网络中,每个节点都会有一个向量表示,该向量捕获了与节点相关的特征信息(包括固有属性和结构性特征)
  • 边表示:在图神经网络中,边的表示通常是一个向量,捕获了连接两个节点之间的关系信息(例如边的权重、类型、方向等)
  • 消息传递:图神经网络的核心是消息传递机制,节点通过边向其邻居发送消息(通常是特征信息的某种变换),并基于收到的消息更新自己的状态。这 个过程通常包括
  • 聚合(Aggregation)和更新(Update)两个步骤 img

人工智能基础历年卷

大二春夏
数字系统设计

评论区