文章目录
- 零、计算机视觉概述
- 一、深度学习相关概念
- 1.学习率η
- 2.batchsize和epoch
- 3.端到端(End-to-End)、序列到序列(Seq-to-Seq)
- 4.消融实验
- 5.学习方式
- 6.监督学习的方式
- (1)有监督学习
- (2)强监督学习
- (3)弱监督学习
- (4)半监督学习
- (5)自监督学习
- (6)无监督学习
- (7)总结:不同学习方式的关系
- 7.模型性能的评估
- 8.凸优化问题
- 9.最小二乘法
- 二、深度学习网络
- 1.深度神经网络
- (1)神经元
- (2)感知机
- (3)全连接神经网络 FCNN / 多层感知机 MLP
- 2.池化 (Pooling)
- 3.激活函数 (Activation Function)
- (1)Sigmoid:二分类
- (2)tanh
- (3)ReLU
- (4)Leaky ReLU
- (5)ELU
- (6)Softmax:多分类
- (7)Maxout
- 4.损失函数 (Loss Function)
- ①绝对误差损失 / L1损失
- ②均方误差 / L2损失
- ③交叉熵损失 (Cross-Entropy Loss)
- ④铰链损失 (hinge-loss)
- 5.优化算法
- (1)梯度下降算法
- (2)反向传播梯度算法 BP
- 9.SVM
- 10.文本与图像的发展
- 11.KL散度 (相对熵)
- 12.马尔科夫链
- 13.张量 Tensor
- (1)张量的概念
- (2)张量的维度
- (3)卷积神经网络 CNN、批量大小 batch size
- 14.矩阵求导
- 15.深度学习的显卡
- 三、经典神经网络架构
- 1.RNN:循环神经网络
- 2.CNN:卷积神经网络
- (1)概念
- (2)AlexNet
- (3)U-Net:分割
- (4)ResNet:残差网络,分类
- (5)VGG
- (6)GoogLeNet
- (7)MobileNet
- (8)R-CNN、Fast R-CNN、Faster R-CNN:目标检测
- 3.Transformer
- (1)Embedding
- (2)Transformer的结构
- (3)self-attention mechanism:自注意力机制
- (4)Swin Transformer
- (5)ViT:Vision Transformer
- 4.深度自编码器
- (1)判别学习 vs 生成学习
- (2)生成对抗网络 GAN
- (3)三种深度自编码器
- ①降噪自编码器
- ②稀疏自编码器
- ③变分自编码器 VAE
- 四、数据集
- 1.ImageNet
- 五、常见的问题种类
- 1.分类问题
- 2.回归问题
- 3.聚类、降维、时间序列分析、异常检测、强化学习、排序
- 六、自然语言处理(NLP)的大模型介绍
- 1.RNN
- 2.LSTM
- 3.BERT
- 4.GPT
- 5.vLLM
- 6.LLaMA
- 7.ChatGLM-3
- 七、(新)视觉网络介绍
- 1.Res-Net
- 2.FAISS:相似搜索 (2015)
- 3.SAM:分割 (2023)
- 八、研究方向
- 1.虚拟数字人
- 3.自动驾驶
- 3.三维重建
- (1)原理
- (2)modeling 的4种presentation
- ①点云相关(Point Cloud)
- ②基于体积的建模(Volume-based modeling)
- ③神经辐射场(Neural Radiance Fields,NeRF)
- ④3D高斯
- (3)应用
零、计算机视觉概述
1.CV四大任务:分类、定位、检测、分割。
图像分割的本质是对像素的分类,分割包含了前三个任务。
2.本科生和研究生最重要的是思维逻辑:思考问题的逻辑和做事的逻辑
3.梯度:变化的强度
(1)梯度越大,表示在该点上图像变化越剧烈
(2)图像中的边缘位置,梯度大
4.关键词
①感受野、二分类、注意力机制、CNN、Transformer、Loss、随机梯度下降算法
②欠拟合、过拟合、归一化(Softmax)
③大模型微调/精调
一、深度学习相关概念
1.学习率η
学习率η控制每次更新步长的大小:
①如果学习率太小,收敛速度会很慢。
②如果学习率太大,可能会导致更新过度,错过最小值,甚至导致发散
2.batchsize和epoch
1.batchsize
批量大小,越大需要显卡性能越好
2.epoch
epoch是训练的轮次
3.端到端(End-to-End)、序列到序列(Seq-to-Seq)
端到端关注的是一个完整的处理链条,从输入到输出的整个过程是自动化且无中间人工干预的。
黑盒强调的是系统的内部过程对外部不可见,外部观察者只关心输入和输出的关系,而忽略系统如何实现这个过程。
4.消融实验
控制变量实验是改变某个变量,而消融实验是去掉某个部分,以观察该部分对整体的影响是大还是小。
5.学习方式
1.迁移学习,大模型微调
2.联邦学习
3.强化学习
4.监督学习
6.监督学习的方式
(1)有监督学习
全部依赖高质量标签,全部标注数据
(2)强监督学习
强监督学习(Supervised Learning):全都有有标签。
完全依赖精细标签,全部且精确标注(逐像素、边界框等),是有监督学习的子集
(3)弱监督学习
部分或粗粒度标签,部分标注或低质量标注
(4)半监督学习
半监督学习:小部分数据有标签,大部分数据无标签。
依赖一小部分有标签数据,同时利用无标签数据提升模型性能。
部分依赖标签,少量标注数据+大量未标注数据,同时结合有监督和无监督信号
(5)自监督学习
1.概念
自监督学习(Self-supervised learning):
数据完全没有人工标注,模型通过设计预训练任务,从数据本身生成伪标签 。
无需人工标注数据,伪标签由数据本身生成。
学到的特征可以迁移到有监督学习任务中(如分类、分割)。
不依赖人工标签。伪标签生成,利用无标注数据。属于无监督学习,但为监督任务服务
2.举例
(1)DINO、DINOv2:图像领域的自监督学习,通过对比学习方法学习全局特征。
(2)BERT:自然语言处理中的自监督方法,通过掩码词预测任务学习上下文特征。
(6)无监督学习
1.概念
无监督学习(Unsupervised Learning):不需要标签来进行学习,直接分析数据的内在结构。
2.举例
(1)自编码器(Autoencoder):去噪、抠图修复
(2)聚类(Clustering):K-means聚类
(3)降维(Dimensionality Reduction):主成分分析(PCA),可视化高维数据或减少维度以便后续建模
(4)数据生成:如生成对抗网络(GAN)用于生成图片
①(有)监督学习:学习数据的表征,使其对下游任务(如分类、预测)有用。包括:强监督、弱监督、半监督、自监督
②无监督学习:找出数据的潜在结构或分布模式,不依赖标签,直接分析数据的内在结构。
近年来大模型突然间变好了的原因:数据集变多了。因为掌握了一种自动化打标签的方法
(7)总结:不同学习方式的关系
7.模型性能的评估
计算准确率、精确率、召回率、F1分数等评估指标。
这些指标能帮助我们衡量模型的性能,并判断模型是否过拟合或欠拟合。
8.凸优化问题
凸优化有个非常重要的定理,即任何局部最优解即为全局最优解。
由于这个性质,只要设计一个较为简单的局部算法,例如贪婪算法(Greedy Algorithm)或梯度下降法(Gradient Decent),收敛求得的局部最优解即为全局最优。因此求解凸优化问题相对来说是比较高效的。
而非凸优化问题被认为是非常难求解的,因为可行域集合可能存在无数个局部最优点,通常求解全局最优的算法复杂度是指数级的(NP难)。如下图:
最经典的算法要算蒙特卡罗投点法了,大概思想便是随便投个点,然后在附近区域(可以假设convex)用2中方法的进行搜索,得到局部最优值。然后随机再投个点,再找到局部最优点–如此反复,直到满足终止条件。
假设有1w个局部最优点,你至少要投点1w次吧?并且你还要假设每次投点都投到了不同的区域,不然你只会搜索到以前搜索过的局部最优点。
学习链接:【优化】为什么凸优化这么重要?http://www.nuovasme.com/index.php/article/gongsidongtai/4178.html
9.最小二乘法
找到一条直线,使得所有点的误差的平方和最小。
二、深度学习网络
模型 + Loss + 优化参数
1.深度神经网络
深度网络的组成:神经元和感知机
多层感知机(MLP,multilayer perceptron)
线性变换 + 非线性激活
(1)神经元
(2)感知机
感知机(Perceptron)是最早的人工神经网络模型之一,是一种二分类线性模型,可以看作是一个单层的神经网络。它由输入层、权重、偏置、激活函数(通常是阶跃函数)组成。感知机的基本功能是通过输入特征来进行线性分类,决定输出是属于某一类别还是另一类别。
感知机是一个简单的二分类模型,基于线性函数,通过加权和和激活函数来进行预测。
感知机是神经网络的基础,但它的能力非常有限。为了克服这个限制,后来提出了多层感知机(MLP),即在感知机基础上增加隐藏层,通过多个感知机层的堆叠来解决非线性问题。这是深度学习中最基础的前馈神经网络结构。
(3)全连接神经网络 FCNN / 多层感知机 MLP
1.概念
全连接神经网络(Fully Connected Neural Network, FCNN),也被称为多层感知器(Multilayer Perceptron, MLP),是一种基础且常见的人工神经网络结构,广泛应用于分类、回归等任务。全连接神经网络由多层神经元构成,其中每一个神经元都与相邻层的所有神经元相连接,是神经网络中最基本的形式之一。
MLP是一个典型的全连接神经网络(FCNN),每一层的神经元与前后层的神经元都有连接。两者都依赖于“全连接”的机制来进行信息传递。
y
=
f
(
w
x
+
b
)
y=f(wx+b)
y=f(wx+b)
f是激活函数,w是权重矩阵,b是偏置项
2.结构
①输入层
②隐藏层
③输出层
3.工作原理
①前向传播
②激活函数
③损失函数
④反向传播和随机梯度下降
4.应用
①分类任务:图像分类、文本分类、处理表格数据等
②回归任务:时间序列预测、金融建模;预测连续数值,如房价预测、天气预测
③特征提取:全连接网络可以作为复杂神经网络(例如 CNN)的最后几层,用于对提取到的特征进行组合和最终预测。常见的做法是在 CNN 的卷积层后面连接一到两层全连接层,以输出最终的分类结果。
④推荐系统:在一些推荐系统中,MLP被用来进行用户和物品之间的预测。
2.池化 (Pooling)
Pooling(池化) 是卷积神经网络(CNN)中的一个关键操作,用于降低特征图的维度,同时保留关键信息。通过池化操作,神经网络可以减少计算量、控制过拟合,并且提升特征的平移不变性(shift invariance),使得网络对输入图像的微小变化更加鲁棒。
卷积后的图像通常也非常大,也可能提取到了太多弱的特征,因此需要压缩降维。
池化就是对一块区域内的结果取等效值,可以是取最大值(最大池化),也可以是取平均值(平均池化)。经过池化后,图像的大小会显著降低。
1.池化的目的:
①降维、防止过拟合:减小图的尺寸
②平移不变性
2.几种池化的操作
①最大池化(Max Pooling)
②平均池化(Average Pooling)
③全局池化(Global Pooling)
④L2 池化(L2 Pooling)
3.激活函数 (Activation Function)
激活函数的作用是引入非线性,使得神经网络能够拟合复杂的非线性关系。
(1)Sigmoid:二分类
Sigmoid适用于图像二分类, σ ( x ) = 1 1 + e − x σ(x)=\dfrac{1}{1+e^{-x}} σ(x)=1+e−x1
(2)tanh
1.tanh(双曲正切函数) 常用于隐藏层的激活函数
2.公式
tanh
(
x
)
=
e
x
−
e
−
x
e
x
+
e
−
x
=
2
σ
(
2
x
)
−
1
\tanh(x)=\dfrac{e^x-e^{-x}}{e^x+e^{-x}}=2σ(2x)-1
tanh(x)=ex+e−xex−e−x=2σ(2x)−1
3.tanh对比Sigmoid
(3)ReLU
1.ReLUs:Rectified Linear Units (修正线性单元)
2.公式:x为正,输出x本身;x为负数,输出0
R
e
L
U
(
x
)
=
max
(
0
,
x
)
ReLU(x)=\max(0,x)
ReLU(x)=max(0,x)
3.优点:
①解决梯度消失问题:
ReLU 函数在正数部分的梯度始终为 1,这意味着反向传播时梯度不会像 Sigmoid 或 Tanh 那样迅速衰减,从而有效缓解了深层网络中的梯度消失问题。这使得 ReLU 特别适合于深层网络的训练。
②效率高、好记也好算:x>0时导数为1;x<0时导数为0
③稀疏性
4.Relu的缺点
①Dying ReLU 问题:ReLU 函数的一个主要问题是,当输入为负值时,输出总是 0,而对应的梯度也是 0。这意味着当很多神经元的输入小于 0 时,经过多次训练更新后,这些神经元可能永远不会再被激活(因为它们的梯度是 0,无法再更新),这就是所谓的 Dying ReLU(死亡 ReLU) 问题。
②无限输出:ReLU 的输出可以达到非常大的值,因此可能会在训练中引发数值不稳定的情况。
5.应用场景:
不知道用什么,就用ReLU。再想提升,就用Leaky ReLUh和ELU (两个ReLU的变体,为了克服ReLU的缺点)
(4)Leaky ReLU
(5)ELU
(6)Softmax:多分类
1.Softmax 将输入转换成一个范围在 0 到 1 之间的概率分布,各类的概率之和为 1。
2.Softmax公式: e x 1 e x 1 + e x 2 + e x 3 \dfrac{e^{x1}}{e^{x1}+e^{x2}+e^{x3}} ex1+ex2+ex3ex1,非负,和为1
3.使用场景:
Softmax函数用于将实数向量转换为概率分布,广泛用于多分类问题中
(7)Maxout
4.损失函数 (Loss Function)
1.定义
损失函数是用于评估模型预测结果与真实结果之间差距的函数。
损失函数的值越小,说明模型的预测结果与真实标签越接近,模型的性能也就越好。
2.分类
①绝对误差损失 / L1损失
定义:绝对误差损失 (Mean Absolute Error, MAE),也叫 L1损失(L1 Loss),常用于回归问题的损失函数,通过计算 预测值与真实值之间的绝对误差的平均值 来评估模型的性能。
优点:①对离群点更鲁棒,不会被极端误差放大,适用于异常值较多的数据集
缺点:①在零点处不可导,梯度不平滑 ②对小误差不敏感
②均方误差 / L2损失
定义:均方误差 (Mean Squared Error, MSE),也叫 L2损失(L2 Loss),常用于回归问题的损失函数,计算 预测值与真实值之间的平方误差的平均值 来评估模型的误差。
优点:对于噪声较少的数据,能得到比L1更好的训练模型
缺点:但如果离群异常点较多,模型就不如L1准确
我的理解是L2适合更准确、噪声少的数据集。L2损失比起L1损失,上限更高,下限更低。
③交叉熵损失 (Cross-Entropy Loss)
通常与Softmax激活函数联用。常用于分类任务。二分类任务使用二分类交叉熵,多分类任务使用多分类交叉熵。逻辑回归的损失是交叉熵损失。
④铰链损失 (hinge-loss)
L h i n g e ( f ( x i ) , y i ) = max ( 0 , 1 − y i ( w T x i + b ) ) L_{hinge}(f(x_i),y_i)=\max(0,1-y_i(w^Tx_i+b)) Lhinge(f(xi),yi)=max(0,1−yi(wTxi+b))
5.优化算法
在机器学习任务中,模型的目标是通过不断调整参数来最小化损失函数。
梯度告诉我们,如何改变模型参数,才能最有效地减小损失函数的值。
(1)梯度下降算法
1.概念:
(1)梯度下降(Gradient Descent)是一种优化算法,用于通过迭代的方式寻找损失函数(或目标函数)的最小值。在机器学习中,梯度下降通常用于训练模型,使得模型的参数尽量减少误差,从而提升模型的性能。
(2)梯度:是一个多维函数的导数(或偏导数)的向量,表示该函数在某一点上最大变化的方向。换句话说,梯度指向损失函数上升最快的方向。
如果你想最小化一个函数,那么你应该朝着相反的方向(即梯度的反方向)移动。
(3)梯度下降:通过沿着梯度的反方向更新参数,逐步减少损失函数的值,从而找到最小值。这个过程是迭代的,每次迭代都会根据当前点的梯度来调整参数
2.梯度下降的分类
(1)随机梯度下降(SGD,Stochastic Gradient Descent)
每次更新使用一个样本来计算梯度,更新频繁,适合大数据集。
这样计算效率高,但噪声较大,可能使得损失函数曲线波动较大。
但是随机梯度下降有随机初始化,有可能跳出局部最值。
(2)批量梯度下降 (BGD,Batch Gradient Descent):
在每一次迭代中使用整个数据集来计算梯度。优点是计算精确,但缺点是计算量大,尤其在数据集非常大的时候。
(3)小批量梯度下降 (Mini-batch Gradient Descent)
每次迭代使用一小部分样本(小批量)来计算梯度。它综合了批量和随机梯度下降的优点,既提高了计算效率,又减少了噪声
3.随机梯度下降算法 SGD (Random Search)
①每次迭代仅使用一个样本来计算梯度。这样计算效率高,但噪声较大,可能使得损失函数曲线波动较大
②SGD是机器学习界最主流的优化算法
J
=
1
N
∑
n
=
1
N
J
(
x
n
,
y
n
,
w
)
J=\dfrac{1}{N}\sum\limits_{n=1}^NJ(x_n,y_n,w)
J=N1n=1∑NJ(xn,yn,w)
▽
w
=
1
N
∑
n
=
1
N
∂
J
n
∂
w
▽w=\dfrac{1}{N}\sum\limits_{n=1}^N\dfrac{\partial J_n}{\partial w}
▽w=N1n=1∑N∂w∂Jn
4.结束条件
梯度为0,或函数不变化了
(2)反向传播梯度算法 BP
1.概念
反向传播梯度算法 (BP算法,Backpropagation Gradient Algorithm),是一种用于神经网络训练的算法,主要用于通过梯度下降法来优化模型的参数(如权重和偏置),从而最小化损失函数。BP算法是神经网络中训练的核心算法,特别适用于多层感知机(MLP)等深度神经网络的监督学习任务。
反向传播算法的核心思想是利用链式法则,逐层计算损失函数对网络权重的偏导数,并通过梯度下降法更新权重,使得网络的输出越来越接近真实值。反向传播使得训练深层神经网络变得高效和可行,是深度学习中的关键算法之一。
2.反向传播梯度算法和随机梯度下降算法的异同点
9.SVM
支持向量机 (Support Vector Machine, SVM)是一种常用于分类、回归和异常检测任务的机器学习算法。SVM 在监督学习领域表现优异,尤其适合处理复杂的分类问题,是一种功能强大且具有理论支持的机器学习工具。
10.文本与图像的发展
文本:RNN→LSTM→Transformer→BERT→GPT→LLM
图像:CNN→ResNet→GAN→Vision Transformer(ViT)→Swin Transformer→Diffusion Models
Vision Transformer(ViT):将 Transformer 引入图像领域,将图像分割成固定大小的 Patch 并作为输入,展示了 Transformer 在图像分类任务上的强大能力。
Swin Transformer:提出了一种基于滑动窗口的分层 Transformer 结构,可以更有效地处理高分辨率图像,成为视觉 Transformer 的典型架构之一。
11.KL散度 (相对熵)
K-L散度:求概率之间的距离
KL散度(Kullback-Leibler Divergence)是衡量两个概率分布之间差异的一个重要度量,它告诉我们从一个分布Q到另一个分布P的信息损失或"相对熵",是用来度量从一个分布到另一个分布的"效率损失"。
D K L ( P ∣ ∣ Q ) = ∫ p ( x ) log p ( x ) q ( x ) d x = E P [ log P ( x ) Q ( x ) ] D_{KL}(P||Q)=\int p(x)\log\dfrac{p(x)}{q(x)}dx=E_P[\log\dfrac{P(x)}{Q(x)}] DKL(P∣∣Q)=∫p(x)logq(x)p(x)dx=EP[logQ(x)P(x)]
【双竖线表示的是散度】 D(P||Q),表示从Q到P的散度,即衡量在Q分布下预测P的信息丧失或差异。
12.马尔科夫链
1.概念
马尔科夫链 (Markov Chain)是一种数学模型,用于描述具有无记忆性质的随机过程。在马尔科夫链中,系统的状态在每一个时间步骤的变化只依赖于当前状态,而与之前的历史状态无关,这种特性被称为马尔科夫性质。
2.特点
马尔科夫链的关键特性是无记忆性(Markov Property),即:
3.马尔科夫链的组成
①状态空间(State Space)
②转移概率矩阵(Transition Probability Matrix)
③初始分布(Initial Distribution)
4.马尔科夫链的类型
①离散时间马尔科夫链(DTMC, Discrete-Time Markov Chain):每个状态的转移发生在离散的时间步骤上
②连续时间马尔科夫链(CTMC, Continuous-Time Markov Chain):在每个状态停留的时间是随机的
5.特性
①遍历性(Irreducibility)
②周期性(Periodicity)
③正则性(Aperiodicity)
④平稳分布(Stationary Distribution)
6.应用
①PageRank算法
②蒙特卡洛方法(MCMC)
7.例子
天气模型
13.张量 Tensor
(1)张量的概念
0阶张量:标量(如一个普通的数字)。
1阶张量:向量(如一个一维数组)。
2阶张量:矩阵(二维数组)。
3阶及以上的张量:更高维度的数组,可以表示图像、视频、音频等数据。比如,3阶张量可以表示一组图像数据,每张图像是一个矩阵,整个数据集是一个三维结构。
图像是三阶张量,视频是四阶张量
(2)张量的维度
将 tensor1 的维度从 [H, W, C] 改变为 [C, H, W],请问C、H、W这三个字母是什么意思?
答案:
在计算机视觉和深度学习中,C、H 和 W 通常代表图像张量的三个重要维度:
①C是Channers,通道数。对于RGB彩色图像,通道数是3;对于灰度图像,通道数是1。
②H是Height,高度。
③W是Width,宽度。
(3)卷积神经网络 CNN、批量大小 batch size
卷积神经网络中,图像通常以这种四维张量的格式输入:[Batch Size, Channels, Height, Width]
,这样可以轻松处理多个图像的批量数据。
定义一个随机的NumPy数组im,大小为 [1, C, H, W],这里的1代表批量大小(batch size),即数组中只含有一个样本。
14.矩阵求导
15.深度学习的显卡
①NVIDIA A100
更适合企业级 AI 研究、数据中心和科学计算,适合处理大规模数据、复杂的深度学习和高性能计算任务。
②RTX 4090
更适合高端个人用户、游戏爱好者和内容创作者,同时也适用于开发和测试小规模深度学习模型。
1.评价GPU:CUDA核心数、显存大小
2.pytorch的官方文档,是深度学习的入门的最好选择。
3.BERT与GPT的异同
①BERT可认为是一个大的编码器(Encoder),双向检索上下文。
②GPT可认为是一个大的解码器(Decoder),单向的从左到右逐次生成。
三、经典神经网络架构
①RNN是处理时序数据的经典神经网络,通过循环连接来建模时间依赖性,常用于自然语言处理和时间序列预测等任务。但传统RNN存在梯度问题,LSTM和GRU是其改进版本。
②CNN是经典的图像处理神经网络,通过卷积层进行局部特征提取,主要应用于图像和视频数据的处理。
③Transformer是一种较新的架构,基于自注意力机制,能够高效处理长序列数据,广泛应用于NLP和其他领域,如计算机视觉。
1.RNN:循环神经网络
顺序处理:RNN 是一种顺序计算模型,它在处理每个时间步时,都依赖前一个时间步的计算结果。它是一个逐步的过程,即先处理第一个元素,再处理第二个元素,依此类推。这使得 RNN 在长序列上训练时容易受到梯度消失或梯度爆炸问题的影响
早期用于NLP
1.应用场景:
RNN(Recurrent Neural Network):主要用于处理具有时间依赖或顺序依赖的数据,例如自然语言、时间序列、语音信号等。RNN 通过递归连接可以保留序列数据中的上下文信息,适合需要考虑数据顺序的任务,比如文本生成、语言翻译、时间序列预测等。
2.网络结构
RNN:RNN 的结构中,隐藏层之间有递归连接,使得每个时间步的输出依赖于当前输入和前一个时间步的隐藏状态。RNN 处理的是序列数据,输入的数据往往是一系列的向量(例如单词的词向量),通过递归的方式保留上下文信息。
3.处理方式
RNN 则通过对序列数据中的时间依赖关系进行建模来保持历史信息。每个时间步的隐藏状态可以被传递到下一个时间步,从而有效记忆上下文信息,但传统 RNN 容易遇到梯度消失的问题。
RNN是循环核,CNN是卷积核
2.CNN:卷积神经网络
(1)概念
1.概念
卷积(Convolution)
①卷积核:size
②步长:stride>1,图像尺寸就会减小。
③填充:padding
填充(padding)是指在输入高和宽的两侧填充元素(通常是 0 元素)。为了避免卷积之后图片尺寸变小,通常会在图片的外围进行填充(padding),如下图所示:
④channel:提高
填充可以增加输出的高和宽。这常用来使输出与输入具有相同的高和宽。
步幅可以减小输出的高和宽
2.CNN:随着网络深度增加(不停地Conv),空间尺寸会变小,通道数channels会变大。
过拟合(overfitting):模型太强大了,模型参数过多,数据不足。模型在训练集上表现非常好,但在验证集或测试集上的表现较差。
(2)AlexNet
- 提出年份:2012年
- 特点:AlexNet是第一个成功应用在大规模图像分类任务(ImageNet)的深度神经网络。它通过多个卷积层和全连接层叠加,并使用ReLU激活函数,大大提高了训练效率。此外,AlexNet引入了Dropout和数据增强来防止过拟合。
- 结构:包含5个卷积层和3个全连接层。AlexNet通过最大池化层逐渐减少特征图大小,使得计算效率较高。
(3)U-Net:分割
U-Net 主要应用于图像分割任务,特别是在医学图像分割中表现突出。编码器、解码器。
ResNet 更侧重于图像分类及深度网络训练的优化。
(4)ResNet:残差网络,分类
ResNet (何恺明,2015)
1.参数
Total depths of 34,50,101 layers
2.过程:
四个残差块
3.功能
分类、分割
(5)VGG
1.参数
TOTAL params: 138M parameters
2.卷积核尺寸 3×3
- 提出年份:2014年
- 特点:VGG网络进一步加深了网络结构,使用小卷积核(3×3)和更深的网络结构(例如16或19层)。其设计思想是通过多个3×3卷积层堆叠来提取特征,而不是使用大卷积核,从而增强了模型的表征能力。
- 结构:典型的 VGG-16 和 VGG-19 都是深度卷积神经网络,包含16层或19层卷积层和全连接层。相比AlexNet,VGG的结构更深,但也因此计算量更大。
(6)GoogLeNet
1.参数
only 5M parameters!
Total: 358M ops
2.计算量的计算
feature map → output size ??补
- 提出年份:2014年
- 特点:GoogleNet的创新之处在于引入了Inception模块,在同一层中使用不同大小的卷积核来提取不同尺度的特征。此外,GoogleNet的结构相较于VGG和AlexNet更复杂,但参数量更少。
- 结构:由多个Inception模块组成,每个模块包含1×1、3×3和5×5卷积核,允许模型自动学习特征图的多尺度信息,减少了参数量的同时保持了较高的表现。
(7)MobileNet
轻量化网络
(8)R-CNN、Fast R-CNN、Faster R-CNN:目标检测
RPN:Region Proposal Network
预测:两阶段(Two Stage Detection)、一阶段(One-Stage Detection)
①backbone + Region Proposal Network
②预测object
Faster R-CNN 对比 End-to-End Object Detection with Transformer
简单场景、小物体为主:CNN(如Faster R-CNN)更为适合。
复杂场景、大物体为主或需要全局推理:Transformer(如DETR)具有更大潜力。
DETR的创新在于直接采用Transformer将目标检测简化为集合预测问题,展示了在未来目标检测系统中全面采用自注意力机制的可能性。
3.Transformer
(1)Embedding
Embedding 是一种将离散数据(如单词、句子、物品等)映射到连续向量空间的方法,目的是将高维的稀疏数据表示成低维的密集向量表示
(2)Transformer的结构
Transformer由四部分组成:输入、编码器、解码器,以及输出。
输入字符首先通过Embedding转为向量,并加入位置编码(Positional Encoding)来添加位置信息。
然后,通过使用多头自注意力和前馈神经网络的「编码器」和「解码器」来提取特征,最后输出结果。
(3)self-attention mechanism:自注意力机制
self-attention layer
2017年,Google发表《Attention is All You Need》
基于自注意力机制的架构,通常用于处理序列数据,但也逐渐被用于视觉任务。
(4)Swin Transformer
Hierarchical ViT:Swin Transformer,Window Attention
(5)ViT:Vision Transformer
ViT vs CNN:
①CNN不断的下采样,增加特征表达能力、通道数
②ViT不会去真正的改变
MLP-Mixer
2020年10月,谷歌提出的Vision Transformer (ViT),不用卷积神经网络(CNN),可以直接用Transformer对图像进行分类。
2021年,OpenAI连仍两颗炸弹,发布了基于Transformer打造的DALL-E,还有CLIP
这两个模型借助Transformer实现了很好的效果。DALL-E能够根据文字输出稳定的图像。而CLIP能够实现图像与文本的分类。
再到后来的DALL-E进化版DALL-E 2,还有Stable Diffusion,同样基于Transformer架构,再次颠覆了AI绘画。
便是基于Transformer诞生的模型的整条时间线。
4.深度自编码器
(1)判别学习 vs 生成学习
1.模型分类
生成型模型(Generative Model):P(x),联合分布、联合概率
判别型模型(Discriminative Model):P(y|x),条件概率
2.在机器学习领域,主流的生成模型共有几类:
(1)生成式对抗网络(Generative adversarial net, GAN)
(2)变分自编码器(variational autoencoder, VAE)
(3)流模型(Flow-based model)
(2)生成对抗网络 GAN
1.概念
生成对抗网络(GAN,Generative Adversarial Network)是一种深度学习模型,旨在通过对抗训练的方式生成逼真的数据,尤其适用于图像、音频和文本生成等领域。GAN模型由两个主要组成部分组成:生成器(Generator)和判别器(Discriminator),两者相互对抗,从而提升生成数据的质量。以下是GAN的基本原理:
(1)生成器(Generator):
①生成器的任务是生成与真实数据类似的假数据。
②它接受一个随机噪声向量(通常是从某个简单分布中抽取,例如高斯分布),并将其转化为具有真实数据特征的样本。
③生成器的目标是“欺骗”判别器,使得判别器无法区分这些生成的数据和真实数据
(2)判别器(Discriminator):
①判别器是一个二分类器,判别器的目标是将生成的数据和真实的数据区分开,最大程度地提高区分真实数据和生成数据的准确率。
②它接收真实数据和生成器生成的假数据,判断它们是真实样本还是生成器生成的假样本(输出一个概率值,表示输入数据是真实的还是生成的)。
③判别器在训练过程中学习捕捉真实数据的特征,从而更好地区分真伪数据
(3)对抗训练过程:GAN的训练过程是一个“零和博弈”,即生成器和判别器相互对抗,通过竞争共同进步,同时提升自己的性能。
①生成器的目标是生成越来越逼真的数据,使得判别器难以区分真伪。
②判别器的目标是尽可能准确地区分真实数据和生成数据。
③这种对抗式的训练会促使生成器不断改进生成数据的质量,而判别器则不断提高分辨真假数据的能力,直到达到平衡状态,即生成数据与真实数据难以区分。
(4)损失函数:GAN的损失函数可以理解为生成器和判别器的目标优化函数。生成器的损失是希望判别器认为其生成的数据是真实的,判别器的损失是区分真实数据和生成数据的差异。通过优化该损失函数,生成器和判别器逐步提升各自的性能。
这种对抗机制使得GAN在图像生成等生成任务上表现出色,但训练GAN通常面临难以收敛、不稳定、模式崩溃(Mode Collapse)等挑战。
训练过程中,生成器和判别器的损失函数相互依赖。
GAN中的损失函数是基于极大极小(minimax)博弈的思想,损失函数形式为:
2.特点
(1)生成对抗网络(GAN)是隐式密度模型的一种。
在GAN的整体框架中,用于训练的模型由两个网络组成,一个网络是生成器G(generator),用于数据的生成;另一个网络是判别器 D(discriminator),用于对生成器生成的数据和训练数据进行真假判别。
(2)训练一个判别器容易,训练一个生成器比较难。
(3)三种深度自编码器
①降噪自编码器
x加噪声,降噪自编码器通过Encoder和Decoder能够将x还原回来
②稀疏自编码器
14岁的神经元数量低于6岁
③变分自编码器 VAE
变分自编码器(variational autoencoder,VAE)
MAE,Masked Autoencoder,无监督学习
变分自编码器VAE链接:https://blog.csdn.net/Edward1027/article/details/136317311
四、数据集
1.ImageNet
ImageNet 是计算机视觉领域最著名的图像数据集之一,特别适用于图像分类任务。可以通过 ImageNet 网站 注册并获取。
五、常见的问题种类
1.分类问题
2.回归问题
预测房价、天气预报、股票市场预测
3.聚类、降维、时间序列分析、异常检测、强化学习、排序
六、自然语言处理(NLP)的大模型介绍
1.RNN
RNN是一类能够处理序列数据的神经网络架构,它通过在网络中引入循环连接,使得网络的输出不仅依赖于当前的输入,还依赖于之前的输入。因此,RNN适用于处理时间序列数据或具有时序依赖性的任务。
2.LSTM
LSTM(长短期记忆网络):通过引入门控机制解决RNN的梯度消失问题,能够记忆长时间依赖的信息
3.BERT
BERT的训练过程分为两个阶段:
①预训练阶段:
预训练:BERT 在大量的无标签文本数据上进行预训练,使用 Masked Language Model(MLM) 和 Next Sentence Prediction(NSP) 两种任务进行训练。
BERT-Large通过大量的无标注文本进行预训练,学习语言的基本规律。在预训练时,BERT使用了Masked Language Model(MLM)和Next Sentence Prediction(NSP) 两种任务。MLM要求模型在句子中随机遮盖(mask)一些词,然后预测这些被遮盖的词;NSP任务则让模型判断两句话是否在原文中相邻。
②微调阶段:
在特定的下游任务(如问答、情感分析、命名实体识别等)上对BERT进行微调,模型会根据任务的需要进一步优化。
在特定的下游任务(如问答、文本分类、命名实体识别等)中,BERT-Large会进行微调,优化针对具体任务的参数。预训练和微调的结合,使得BERT可以通过少量的标注数据迅速适应不同的NLP任务。
4.GPT
5.vLLM
vLLM 是一种高效的、开源的大规模语言模型推理框架,旨在提供高效的推理性能,特别是在处理大型语言模型(如 GPT 类模型)时,能够在推理过程中显著减少内存占用和计算延迟。
vLLM 是由 UC Berkeley 的研究团队和社区开发的,它的核心目标是优化推理过程中的计算效率,尤其是对大型语言模型的多轮对话和高吞吐量任务进行加速。它不仅适用于高效推理,还通过专门的算法设计,改进了 GPU 和 CPU 上的计算资源分配。
vLLM 支持通过 CUDA 和 NVIDIA A100 等硬件加速技术,能够在支持的硬件平台上获得更高的推理性能。它能够有效地利用多GPU、多机器的计算能力,优化并行推理。
6.LLaMA
LLaMA(Large Language Model Meta AI)是由Meta(前身为Facebook)推出的一系列大型语言模型。LLaMA的目标是成为一种具有高效性能和良好适应性的语言模型,能够在多种自然语言处理任务中表现出色。
7.ChatGLM-3
ChatGLM-3 是由 清华大学智源研究院(THU Zhiyuan Institute)推出的一款大型对话生成语言模型。它是 ChatGLM 系列模型的最新版本,基于 GLM(General Language Model)架构,并特别优化了对话场景中的生成效果和理解能力。ChatGLM-3延续了前两个版本的设计理念,并在性能、规模和应用场景上进行了一系列的改进。
七、(新)视觉网络介绍
1.Res-Net
ResNet-50 是用于计算机视觉(CV)的卷积神经网络(CNN)
ResNet-50 是 Residual Networks(残差网络) 的一个变种,属于卷积神经网络(CNN)架构,主要应用于计算机视觉领域。ResNet 在 2015 年由 Microsoft Research 的 Kaiming He 等人提出,具有开创性的创新,即残差块(Residual Block),大大缓解了深度网络中的梯度消失问题。
ResNet-50 经常被用于迁移学习,尤其是在大规模数据集(如 ImageNet)上进行预训练,之后将模型微调应用到特定任务中,如物体检测、人脸识别、医学影像分析等
2.FAISS:相似搜索 (2015)
FAISS(Facebook AI Similarity Search)是由Facebook人工智能研究团队开发的一个高效、开源的库,用于执行相似性搜索(或近似最近邻搜索)。它特别适用于大型数据集中的向量相似度搜索任务,在机器学习和信息检索等领域有着广泛的应用。
3.SAM:分割 (2023)
Meta Segement Anything Model (SAM) for video and image
2023年刚出来的时候,边缘检测做的很好,边缘切割切的非常好,但是语义分割做的不好,有重叠的东西可能不能很好的分割出来。
八、研究方向
1.虚拟数字人
1.传统方法
①人体骨架
②相位函数神经网络(PFNN):2Π有4个相位
③神经状态机
专家网络
2.技术进步
①动作先验:MDM
②场景人物行为模拟:策略学习(显式策略、隐式策略)
3.自动驾驶
1.三种装置:
①雷达(radar)
②照相机(camera):针孔摄像头、鱼眼相机(fisheye camera)
③激光雷达(LIDAR)
2.四种方法:
①BEV(鸟瞰图)
②TPV(三视角)
③OCC(占据预测感知)
④Compact OCC (紧致OCC,对空间进行下采样,即实验室的顶会COTR)
3.mIoU
4.媒体与视觉实验室,代表性成果:
①单模态教师网络到跨模态学生网络
②自动驾驶场景下点云与图像的对齐。我们实验室的工作排名全球第二。第一为某自动驾驶巨头公司。
③2D视觉监督辅助3D点云弱标注识别:先验,小目标检测。(数据集,全标注为5hours,弱标注15min。申请了华为专利)
④通用的3D感知模型
⑤到2D中去
⑥深度估计大模型,助力华为高阶智驾泊车系统:
ABC三种车型做了泛化
<1>高速行车+雾天场景
<2>城市道路+雨天+镜头污染
⑦应用推广及经济社会效益:
工业锂电池极耳缺陷检测:创造了平均1.7秒制造一颗电池的世界纪录。一颗电池需要A B C D四个组件,假设分别耗时0.5、0.6、0.7、0.8秒,则经过流水线,生产一颗电池的总耗时就是0.8秒,即耗时最长的那一个组件的生产时间。
3.三维重建
硕士的三维重建:https://blog.csdn.net/Edward1027/article/details/143815793
3d reconstruction
(1)原理
深度图 vs 三维图
Camera model:小孔成像
camera的位姿
(2)modeling 的4种presentation
①点云(Point Cloud):通过离散的点集表示三维形状。
②基于体积的建模(Volume-based Modeling):通过体素或隐式表示来描述物体的体积。
③神经辐射场(NeRF):基于神经网络生成高度真实的三维图像。
④基于曲面的建模(Surface-based Modeling):通过数学曲面或网格表示物体的表面,通常用于精细的设计和动画制作
①点云相关(Point Cloud)
point cloud:点
变种:Surfel:椭圆盘,小碟子,像鱼鳞
(1)点云(Point Cloud):
点云是三维重建中的一种常见表示方法,通过点的集合来描述物体或场景的几何形状。每个点包含空间坐标和可选的额外属性(如颜色、强度、法线方向等)。
(2)变种:Surfel(表面元素)
Surfel是点云的一种变种,通常用椭圆形或小碟子的方式来近似描述每个点的位置和表面法线方向。Surfel可以比普通的点云提供更多的表面信息,特别是在表示光滑表面时,它更适合描述物体的局部形态和光照特性。想象它像鱼鳞一样,每个“盘”表示点周围的一小块区域。
②基于体积的建模(Volume-based modeling)
Implicit Surface Representation (隐式的记录)
三角面片
Neural Recon
(1)隐式曲面表示(Implicit Surface Representation):
隐式曲面是一种通过方程隐式定义曲面的表示方法。与显式表示不同,隐式表示不直接提供顶点和面,而是通过一个数学函数(如距离函数)来描述曲面。隐式曲面具有较好的数学性质,特别是在处理复杂形状、曲面修补和体积建模时具有优势。例如,可以用一个距离场来表示一个物体表面。
(2)三角面片(Triangle Mesh):
三角面片是最常见的网格表示方法,三维对象通过一组三角形面片的组合来描述。每个面片由三个顶点构成,面片之间的连接关系决定了物体的形状。三角网格在计算机图形学和三维建模中广泛应用。
(3)Neural Reconstruction(神经重建):
神经重建指的是使用神经网络模型(如深度学习方法)对三维物体进行重建,通常用于从图像或点云中恢复物体的三维形状。神经网络能够通过学习大量的数据集,自动化地对物体表面进行重建,通常会利用卷积神经网络(CNN)或图神经网络(GNN)进行空间特征的提取和建模。
③神经辐射场(Neural Radiance Fields,NeRF)
优点:
效果好 (Accurate)
缺点:
计算量大,三维重建的速度慢
④3D高斯
速度很快,NeRF要48h,而3D Gaussian 只需要6分钟
3D高斯的参数:
①均值向量(μ)
②协方差矩阵(Σ)
③球协和函数(Spherical Harmonics Function)
(3)应用
①虚拟现实,重建完视频,可以在视频里向家具扔一些虚拟的物品
②AR/VR
加权平均:本质上是在求 期望E
噪声:一般是高频的