2 预备知识

2.1. 数据操作

我们介绍n维数组,也称为张量(tensor)

image-20230718095317947image-20230718095355503

创建数组

image-20230718095510084

访问元素

可以按照自己的需求任意访问

image-20230718095549235

image-20230718095602323

张量表示一个由数值组成的数组,这个数组可能有多个维度。 具有一个轴的张量对应数学上的向量(vector); 具有两个轴的张量对应数学上的矩阵(matrix);
具有两个轴以上的张量没有特殊的数学名称。

可以通过张量的shape属性来访问张量(沿每个轴的长度)的形状
。要想改变一个张量的形状而不改变元素数量和元素值,可以调用reshape函数。虽然张量的形状发生了改变,但其元素值并没有变。
注意,通过改变张量的形状,张量的大小不会改变。

对于任意具有相同形状的张量,常⻅的标准算术运算符(+、-、*、/和****运算符是求幂运算))都可以被升级为按元素运算。我们可以在同⼀形状的任意两个张量上调⽤按元素操作。

在某些情况下,即使形状不同,我们仍然可以通过调⽤⼴播机制(broadcasting mechanism)来执⾏按元素操作。这种机制的⼯作⽅式如下:

  1. 通过适当复制元素来扩展⼀个或两个数组,以便在转换之后,两个张量具有相同的形状;
  2. 对⽣成的数组执⾏按元素操作。

2.2. 数据预处理

为了处理缺失的数据,典型的方法包括插值法和删除法, 其中插值法用一个替代值弥补缺失值,而删除法则直接忽略缺失值。

对于inputs中的类别值或离散值,我们将“NaN”视为一个类别。

1
2
inputs = inputs.fillna(inputs.mean()) #将数值类型用平均值填充
inputs = pd.get_dummies(inputs, dummy_na=True) #将文本内容按照类别分类

image-20230718113201331image-20230718113222966

2.3. 线性代数

image-20230718114138899image-20230718114210230

image-20230718114331041image-20230718114349892

image-20230718114436926image-20230718114447497

image-20230718114815388image-20230718114929677

image-20230718211940190image-20230718212031991

image-20230718212057671

2.4 矩阵计算

image-20230718215206494image-20230718215333557

image-20230718215344699image-20230718215459102

image-20230718215655743image-20230718215723143

image-20230718215758970image-20230718215841361

image-20230718220052061

2.5 自动求导

image-20230719092732473image-20230719093024611

image-20230719093232349image-20230719093445137

image-20230719093611759image-20230719093632034

image-20230718212057671

3. 线性神经网络

3.1 线性回归

image-20230719100441778image-20230719100456525

image-20230719100514806

优化方法

image-20230719100728046image-20230719101108218

学习率与批量都应当适当,不能太大或太小

在机器学习的上下文
中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。

3.4. softmax回归

softmax回归和线性回归一样也是将输入特征与权重做线性叠加,但是softmax回归的输出值个数等于标签中的类别数

image-20230719110230215
image-20230719110858768

image-20230719110437470
image-20230719110451386
image-20230719110502882

image-20230719110733103

4. 多层感知机

4.1. 多层感知机

image-20230719150417297
image-20230719150545912

image-20230719150906953
image-20230719150919170

image-20230719151201077

image-20230719151640329
image-20230719151757327

image-20230719153011110
image-20230719153020892
image-20230719153033915

image-20230719153515440
image-20230719153527949

4.4. 模型选择、欠拟合和过拟合

训练误差:模型在训练数据上的误差
泛化误差:模型在新数据上的误差

image-20230719160702475image-20230719160702475

训练数据集:训练模型参数
验证数据集:选择模型超参数
非大数据集上通常使用k折交叉验证

image-20230719162021447
image-20230719162042137

image-20230719162118138
image-20230719162143608

模型容量应当在泛化误差最低点是最好的

时序序列应保证时间连续性,不能从中间切开

4.5. 权重衰减

image-20230719191948193
image-20230719192516593

image-20230719192601536

4.6. 暂退法(Dropout)

image-20230719195247252
image-20230719195036807

Dropout和正则化都是为了防止过拟合。

4.8. 数值稳定性和模型初始化

image-20230719202458607
image-20230719203356742

image-20230719203842750
image-20230719203852028
image-20230719203909237

image-20230719205210732

**激活函数(Activation Function)**是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容,
通常是用在隐藏层中。

6. 卷积神经网络

image-20230720100746613

i,j是输出的宽高维度,k , l是输入的宽高维度;对下标做一定的变化,k = i + a , l = j + b ,v是w的重新索引v , 这里的索引a和b覆盖了正偏移和负偏移,对于隐藏表示中任意给定位置(i,j)处的像素值[H]{i,j} ,通过对x中以(i,j)为中心的像素进行加权求和得到,权重为v{i,j,a,b} ;

image-20230720100826680
image-20230720100839811

原则一:x的变换,会引起v的变化,故解决方案是把(i,j)去掉,只剩a、b纬度

卷积操作

no_padding_no_strides

image-20230720103226301image-20230720103232248

image-20230720103406407
image-20230720103504347

6.3. 填充和步幅

padding_strides

image-20230720110239052
image-20230720110313082

image-20230720110352045
image-20230720110743912

image-20230720110637482
image-20230720110652824

image-20230720111158955

6.4. 多输入多输出通道

image-20230720141905115
image-20230720141950559

image-20230720142026430
image-20230720142046022

image-20230720142548459
image-20230720142640495

6.5. 汇聚层(池化层)

image-20230720144834781

与卷积层类似,汇聚层运算符由一个固定形状的窗口组成,该窗口根据其步幅大小在输入的所有区域上滑动,为固定形状窗口(有时称为
汇聚窗口)遍历的每个位置计算一个输出。 然而,不同于卷积层中的输入与卷积核之间的互相关计算,汇聚层不包含参数。
相反,池运算是确定性的,我们通常计算汇聚窗口中所有元素的最大值或平均值。这些操作分别称为最大汇聚层(maximum pooling)和
平均汇聚层(average pooling)。

image-20230720145419790

image-20230720145318773
image-20230720145346993

6.6. 卷积神经网络(LeNet)

image-20230720151818638

7. 现代卷积神经网络

7.1. 深度卷积神经网络(AlexNet)

image-20230720162053727

7.2. 使用块的网络(VGG)

image-20230720192051469

更大、更深,将卷积层封装成块

image-20230720193103591

7.3. 网络中的网络(NiN)

image-20230720194349962

image-20230718212057671
image-20230720194616068

image-20230718212057671

7.4. 含并行连结的网络(GoogLeNet)

image-20230718212057671
image-20230718212057671

蓝色用来提取空间信息,白色获取通道信息

7.5. 批量规范化

image-20230720204219499
image-20230720204248017

image-20230720204716433
image-20230720204809735

7.6. 残差网络(ResNet)

image-20230720211733678
image-20230720212001144

image-20230720212027514

13. 计算机视觉

13.1. 图像增广

image-20230721093542172

左右翻转可以,但上下翻转并不总是可行的。

image-20230721093808772

13.2. 微调

将以训练好的模型采用另一个数据集重新训练,这时因为有了先验经验,故只需要将参数微调。

image-20230721101519474
image-20230721101837711

image-20230721101943331
image-20230721101954074

image-20230721102025360

13.3. 目标检测和边界框

image-20230721141831313

image-20230721144231691

基于锚框预测真实的范围,而锚框的提出则是被预先提出的,会出现很多。

image-20230721144541723
image-20230721144605871
image-20230721144637378

image-20230721145216320
image-20230721145225804

13.8. 区域卷积神经网络(R-CNN)系列

image-20230721153544659
image-20230721153600232

image-20230721153612991
image-20230721153636475

Faster R-CNN:先进行预检测,随后再精检测

image-20230721155246654
image-20230721155305890

image-20230721155328725

13.9. 语义分割和数据集

image-20230721195145079

13.10. 转置卷积

image-20230721203812220
image-20230721203828948

image-20230721210115813
image-20230721210131493

image-20230721210142607
image-20230721210157363

image-20230721210503933
image-20230721210513460

13.11. 全卷积网络

image-20230721211044535

8. 循环神经网络

8.1. 序列模型

image-20230722102415161
image-20230722102432151

image-20230722102952625

image-20230722103010092
image-20230722103025175

8.3. 语言模型和数据集

image-20230722115210149
image-20230722115220793

image-20230722115242851

8.4. 循环神经网络

不建议使用RNN

image-20230722132216055
image-20230722132335961

Whh存储的就是隐变量的权重值,从而预测下一个的值

image-20230722132937557
image-20230722133130562

image-20230722133215698
image-20230722133223334

9. 现代循环神经网络

9.1. 门控循环单元(GRU)

image-20230722150037087
image-20230722150056740

使用sigmoid作为隐藏函数进行计算,通过该方法控制是否记忆,记忆多长时间的隐状态

image-20230722150617240
image-20230718212057671

image-20230722150707340

9.2. 长短期记忆网络(LSTM)

image-20230722153505487
image-20230722153519850

image-20230722153606307
image-20230722153617159
image-20230722153631773

image-20230722153659551

LSTM的状态包含两个,分别表示长期记忆和短期记忆,两者互相独立。

9.3. 深度循环神经网络

image-20230722160602509

9.4. 双向循环神经网络

image-20230722160723950
image-20230722160752683

image-20230722160829826
image-20230722160856547

有两个隐藏层,向前向后两个隐藏层,然后计算完合并,两个方向的含义同时出现。

主要作用是对句子进行操作。例如结合上下文翻译、识别语句等等,但是不能用来预测未来。

9.6. 编码器-解码器架构

image-20230722175908184
image-20230722175921449

编码:提取特征

解码:输出结果

image-20230722180017796

9.7. 序列到序列学习(seq2seq)

image-20230722183409490
image-20230722183419684

image-20230722183516923
image-20230722183525690

9.8. 束搜索

image-20230722190937781
image-20230722191025883

image-20230722192753130

10. 注意力机制

10.6. 自注意力和位置编码

image-20230722214511389
image-20230722214524122

image-20230722214544977
image-20230722214607607

10.7. Transformer

image-20230723101011486

image-20230723101401128

image-20230723103124705

image-20230723103138772

image-20230723103214933

等价于全连接层。

image-20230723103231254

image-20230723103245352

image-20230723103257393

image-20230723103307682

11. 优化算法

image-20230723131401682
image-20230723131434128

但最好的还是全局最小。凸优化则是一个特例。

image-20230723131604945
image-20230723131621807

image-20230723131924887
image-20230723131934348

image-20230723131953439
image-20230723132011958

随机梯度是一种近似,可以极大地减少梯度的运算,减小开销。

image-20230723132302143

随机采样子集,用一批子集的平均值作为梯度的平均值,减少运算量。

image-20230723132613482

用冲量代替梯度。

image-20230723132640710
image-20230718212057671

image-20230723133448102