自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

原创 大模型的评估指标

评估维度核心指标/方法适用场景内在语言能力困惑度预训练阶段,衡量基础语言建模质量特定任务性能准确率、F1、EM、BLEU、ROUGE、Pass@k评估模型在翻译、摘要、问答、代码生成等任务上的效果综合能力排名MMLU, GSM8K, C-Eval, HELM 等基准横向比较不同模型的整体能力强弱生成质量与安全人工评估(相关性、流畅性、忠实度、有害性)评估生成内容的实用性、可靠性和安全性工业应用可行性延迟、吞吐量、显存占用决定模型能否投入实际生产环境在实际工作中,通常会结合使用多种指标和基准。

2025-09-24 19:06:51 639

原创 MOE(专家混合模型)

专家混合模型(MoE)是一种神经网络架构,其核心思想是“分而治之”:将一个大问题分解为多个子问题,由一系列专门化的子网络(即“专家”)分别处理,再由一个“门控网络”动态决定如何组合这些专家的输出。它的主要目标是在不显著增加计算成本的前提下,极大地增加模型的参数量和表达能力。MoE是一种通过稀疏化来高效扩展模型规模的强大技术。它通过引入“专家”分工机制,在控制计算成本的同时,极大地提升了模型的容量和潜力,已成为当前构建超大规模语言模型的关键架构之一。

2025-09-24 19:04:06 714

原创 大模型微调的步骤

大模型微调的核心流程可以概括为以下五个关键步骤:1.明确目标与准备数据: 确定微调的具体任务(如客服问答、文本摘要等),并准备高质量、与任务强相关的标注数据集。这是微调成功的基石。2.选择模型与微调方法: 根据计算资源和任务需求,选择一个合适的预训练基座模型,并确定高效的微调技术(如LoRA、QLoRA),以降低计算成本。3.设置参数与进行训练: 配置关键的超参数(如学习率、批次大小),使用训练数据对模型进行迭代训练,并利用验证集监控训练过程,防止过拟合。

2025-09-24 18:54:01 381

原创 Transformer架构数据流梳理

输入:enc_inputs:(batch_size,s_seq_len,d_model),dec_inputs:(batch_size,d_seq_len,d_model),输入的形状enc_outs:(batch_size,s_seq_len,d_model),dec_inputs:(batch_size,d_seq_len,d_model)输入(batch_size,seq_len,d_model)----->输出(batch_size,seq_len,d_model)

2025-08-07 16:27:35 976

原创 CNN(池化层)

池化层 (Pooling)降低空间维度, 缩减模型大小,提高计算速度.即: 主要对卷积层学习到的特征图进行下采样(SubSampling)处理。池化层主要有两种:最大池化 max pooling最大池化是从每个局部区域中选择最大值作为池化后的值,这样可以保留局部区域中最显著的特征。最大池化在提取图像中的纹理、形状等方面具有很好的效果。平均池化 avgPooling平均池化是将局部区域中的值取平均作为池化后的值,这样可以得到整体特征的平均值。

2025-07-25 14:02:22 1044

原创 卷积神经网络(CNN)

卷积神经网络是深度学习在计算机视觉领域的突破性成果。在计算机视觉领域, 往往我们输入的图像都很大,使用全连接网络的话,计算的代价较高。另外图像也很难保留原有的特征,导致图像处理的准确率不高。​ 卷积神经网络(Convolutional Neural Network,CNN)是一种专门用于处理具有网格状结构数据的深度学习模型。最初,CNN主要应用于计算机视觉任务,但它的成功启发了在其他领域应用,如自然语言处理等。

2025-07-21 11:24:48 1046

原创 神经网络的优化器

​ 梯度下降算法通过不断更新参数来最小化损失函数,是反向传播算法中计算权重调整的基础。在实际应用中,根据数据的规模和计算资源的情况,选择合适的梯度下降方式(批量、随机、小批量)及其变种(如动量法、Adam等)可以显著提高模型训练的效率和效果。​ Adam是目前最为流行的优化算法之一,因其稳定性和高效性,广泛应用于各种深度学习模型的训练中。Adam结合了动量法和RMSProp的优点,能够在不同情况下自适应调整学习率,并提供快速且稳定的收敛表现。

2025-07-15 20:00:46 585

原创 Adam计算流程

并不能很好的估计出前两次训练的梯度。是校正后的一阶和二阶动量估计。在计算指数加权平均时,初始化。所以这个估计是有偏差的。

2025-07-15 19:58:16 351

原创 指数加权的公式推导

[1,2,3,4,5],我们选择 β=0.1和β=0.9 来计算 EMA。最终,EMA 的值为 [1,1.9,2.89,3.889,4.8889]。最终,EMA 的值为 [1,1.1,1.29,1.561,1.9049]。

2025-07-15 19:33:18 331

原创 神经网络的参数初始化

在使用Torch构建网络模型时,每个网络层的参数都有默认的初始化方法,同时还可以通过以上方法来对网络参数进行初始化。

2025-07-11 20:05:06 804

原创 He参数初始化数学原理

(因为 ReLU 使一半神经元输出为 0,方差减半)

2025-07-11 19:57:13 429

原创 Xavier公式的原理

为了保持梯度的方差一致性,我们需要确保每个输入维度。out,以确保梯度的方差在反向传播过程中保持一致。out 的梯度方差相同。是输入维度(fan_in)。假设输入 x 的均值为 0,方差为。in 个独立的 Wx 项的方差之和。在反向传播中,梯度的方差受。是通过链式法则计算得到的,其中。在Xavier初始化中,我们选择。,权重 W的均值为 0,方差为。的线性组合得到的,每个输入。in 的梯度方差与输出维度。是当前层的输入神经元数量,在前向传播中,输出的方差受。在反向传播过程中,梯度。in 的原因是,输出。

2025-07-11 19:41:38 433

原创 期望和方差的计算

均匀分布:均匀分布的概率密度函数(PDF):pxb−a1​0​如果a≤x≤b其他情况​计算期望值(均值):EX∫ab​x⋅pxdx∫ab​x⋅b−a1​dx2ab​计算方差(二阶矩减去均值的平方):VarXEX−EX2EX2−EX2先计算 EX2:EX2∫ab​x2⋅b−a1​dx3b−ab3−a3​3a2。

2025-07-11 19:39:30 454

原创 神经网络的损失函数

当输出层使用softmax多分类时,使用交叉熵损失函数;当输出层使用sigmoid二分类时,使用二分类交叉熵损失函数, 比如在逻辑回归中使用;当功能为线性回归时,使用均方差损失-L2 loss;

2025-07-11 19:07:47 1067

原创 全连接神经网络的激活函数

激活函数通过,对于解决线性模型的局限性至关重要。由于反向传播算法(BP)用于更新网络参数,因此。

2025-07-10 20:17:17 787

原创 softmax公式推导

Softmax()对向量的值做了改变,但其位置不变。2.将所有指数变换后的值求和,得到。每个输出值在 (0,1)之间。1.指数变换:对每个。所有输出值之和为1,即。

2025-07-10 20:09:00 483

原创 全连接神经网络

前馈神经网络(Feedforward Neural Network,FNN)是一种最基本的神经网络结构,其特点是信息从输入层经过隐藏层单向传递到输出层,说明:三个等式中的w1和w2在这里只是为了方便表示对应x1和x2的权重,实际三个等式中的w值是不同的。,内置了自动的前向传播逻辑,它会自动将输入数据依次传递给其中的每一层,并执行前向传播,不需要显式定义。激活函数的作用是在隐藏层引入非线性,使得神经网络能够学习和表示复杂的函数关系,使网络具备。,其形状为(3,2),3是神经元节点个数,2是向量x的个数。

2025-07-10 19:42:03 1478

原创 全连接神经网络的步骤和方法

常见的初始化方法包括随机初始化(如Xavier初始化或He初始化)和零初始化(通常不推荐,因为会导致梯度消失)。隐藏层:定义一个或多个隐藏层,每个隐藏层包含一定数量的神经元。隐藏层的数量和每个隐藏层的神经元数量可以根据任务需求调整。在前向传播过程中,输入数据通过每一层的线性变换(权重乘法和偏置加法)和非线性激活函数,最终得到输出结果。例如,对于一个简单的图像分类任务,输入层的维度可能是图像的像素数量。通过计算损失函数对每个权重和偏置的梯度,利用链式法则反向传播这些梯度,更新网络的权重和偏置。

2025-07-10 19:38:40 311

原创 pytorch 神经网络

我们要学习的(Deep Learning)是神经网络的一个子领域,主要关注更深层次的神经网络结构,也就是所以,我们需要先搞清楚什么是神经网络!

2025-07-10 19:17:06 1926 4

原创 pytorch 自动微分

自动微分模块torch.autograd负责。自动微分模块是构成神经网络训练的必要模块,可以实现网络权重参数的更新,使得反向传播算法的实现变得简单而高效。

2025-07-09 18:21:10 1156

原创 pytorch tensor

​ PyTorch是一个基于Python的深度学习框架,它提供了一种灵活、高效、易于学习的方式来实现深度学习模型。PyTorch最初由Facebook开发,被广泛应用于计算机视觉、自然语言处理、语音识别等领域。​ PyTorch使用张量(tensor)来表示数据,可以轻松地处理大规模数据集,且可以在GPU上加速。

2025-07-08 19:52:19 869

原创 机器学习 集成学习方法之随机森林

每棵树都在不同的数据子集和特征子集上进行训练,最终通过投票或平均预测结果来产生更准确和稳健的预测。这种方法不仅提高了预测精度,也降低了过拟合风险,并且能够处理高维度和大规模数据集。集成算法可以说从一方面验证了中国的一句老话:三个臭皮匠,赛过诸葛亮。集成算法大致可以分为:Bagging,Boosting 和 Stacking 三大类型。(1)每次有放回地从训练集中取出 n 个训练样本,组成新的训练集;(2)利用新的训练集,训练得到M个子模型;(3)对于分类问题,采用投票的方法,机器学习中有一种大类叫。

2025-05-20 16:57:54 537

原创 机器学习 决策树-分类

0(分母是5的原因)。具体来说,对于一个特征,我们计算其所有可能的分割点对应的子节点的加权平均基尼指数,然后选择最小化这个值的分割点。对于一个二分类问题,如果一个节点包含的样本属于正类的概率是 p,则属于负类的概率是 (1-p)。同时,当平台=0时,工作都是好,无需继续划分,当平台=1,2时,工作都是不好,也无需继续划分。对比属性信息增益发现,"收入"和"学历"相等,并且是最高的,所以我们就可以选择"学历"或"收入"作为第一个。同理,当工资=0时,有5个样本,在这五个样本中,工作有3个是不好,2个是好。

2025-05-20 15:27:04 1495

原创 机器学习 朴素贝叶斯分类

通过这种方法,即使某个特征在训练集中从未出现过,它的概率也不会被估计为零,而是会被赋予一个很小但非零的值,从而避免了模型在面对新数据时可能出现的过拟合或预测错误。它的含义是,如果A和A’构成样本空间的一个划分,那么事件B的概率,就等于A和A’的概率分别乘以B对这两个事件的条件概率之和。这样,朴素贝叶斯分类器就可以通过计算每种可能类别的条件概率和先验概率,然后选择具有最高概率的类别作为预测结果。除了条件概率以外,在计算p1和p2的时候,还要用到全概率公式,因此,这里继续推导全概率公式。

2025-05-20 11:34:05 1031

原创 机器学习 模型选择与调优

可能发生的情况是,所有80%的 “0 “类数据都在训练集中,而所有 “1 “类数据都在测试集中。因此,我们的模型将不能很好地概括我们的测试数据,因为它之前没有见过 “1 “类的数据。每个分区被称为 一个”Fold”。,比如说:原始数据有3类,比例为1:2:1,采用3折分层交叉验证,那么划分的3折中,每一折中的数据类别保持着1:2:1的比例,这样的验证结果更加可信。在小数据集的情况下,有一部分数据将被保留下来用于测试模型,这些数据可能具有重要的特征,而我们的模型可能会因为没有在这些数据上进行训练而错过。

2025-05-19 15:53:26 1636

原创 机器学习 KNN算法

获取数据、数据处理、特征工程后,就可以交给预估器进行机器学习,流程和常用API如下。1.实例化预估器(估计器)对象(estimator), 预估器对象很多,都是estimator的子类(1)用于分类的预估器sklearn.neighbors.KNeighborsClassifier k-近邻sklearn.naive_bayes.MultinomialNB 贝叶斯sklearn.linear_model.LogisticRegressioon 逻辑回归。

2025-05-17 15:49:51 2863

原创 机器学习 特征降维

实际数据中,有时候特征很多,会增加计算量,降维就是去掉一些特征,或者转化多个特征为少量个特征:是减少数据集的维度,同时减少计算成本:在高维空间中处理数据可能非常耗时且计算密集。降维可以简化模型,降低训练时间和资源需求。去除噪声:高维数据可能包含许多无关或冗余特征,这些特征可能引入噪声并导致过拟合。降维可以帮助去除这些不必要的特征。

2025-05-17 12:56:44 1284

原创 机器学习 特征工程

在数学和计算机科学中,当一个矩阵的非零元素数量远小于总的元素数量,且非零元素分布没有明显的规律时,这样的矩阵就被认为是稀疏矩阵。非稀疏矩阵,或称稠密矩阵,是指矩阵中非零元素的数量与总元素数量相比接近或相等,也就是说矩阵中的大部分元素都是非零的。在这种情况下,矩阵的存储通常采用标准的二维数组形式,因为非零元素密集分布,不需要特殊的压缩或优化存储策略。特征提取, 如果不是像dataframe那样的数据,要进行特征提取,比如字典特征提取,文本特征提取。VarianceThreshold 底方差过滤降维。

2025-05-08 20:02:46 1001

原创 机器学习 数据集

Python语言机器学习工具Scikit-learn包括许多智能的机器学习算法的实现Scikit-learn文档完善,容易上手,丰富的API接口函数scikit-learn中文社区数据量小,数据在sklearn库的本地,只要安装了sklearn,不用上网就可以获取数据量大,数据只能通过网络获取。

2025-05-08 19:22:58 1662

原创 机器学习的基本介绍与定义

机器学习(Machine Learning)本质上就是让计算机自己在数据中学习规律,并根据所得到的规律对未来数据进行预测。机器学习包括如聚类、分类、决策树、贝叶斯、神经网络、深度学习(Deep Learning)等算法。机器学习的基本思路是模仿人类学习行为的过程,如我们在现实中的新问题一般是通过经验归纳,总结规律,从而预测未来的过程。

2025-05-06 16:31:45 1667

原创 opencv 霍夫变换

(Probabilistic Hough Transform),是一种改进的霍夫变换,它在获取到直线之后,会检测原图中在该直线上的点,并获取到两侧的端点坐标,然后通过两个点的坐标来计算该直线的长度,通过直线长度与最短长度阈值的比较来决定该直线要不要被保留。函数返回一个二维数组,每个元素是一个包含4个元素的数组,分别表示每条直线的起始点和结束点在图像中的坐标(x1, y1, x2, y2)。,它会计算图像中的每一个点,计算量比较大,另外它得到的是整一条线(r和θ),并不知道原图中直线的端点。

2025-04-29 17:55:33 842

原创 opencv 霍夫直线变换的原理

那么对于一个二值化后的图形来说,其中的每一个目标像素点(这里假设目标像素点为白色像素点)都对应了霍夫空间的一条直线,当霍夫空间中有两条直线相交时,就代表了直角坐标系中某两个点所构成的直线。而当霍夫空间中有很多条线相交于一点时,说明直角坐标系中有很多点能构成一条直线,也就意味着这些点共线,因此我们就可以通过检测霍夫空间中有最多直线相交的交点来找到直角坐标系中的直线。在极坐标系下是一样的,极坐标中的点对于霍夫空间中的线,霍夫空间中的点对应极坐标中的直线。

2025-04-29 17:26:49 297

原创 opencv 模板匹配

需要先计算模板与目标图像的均值,然后通过每个像素与均值之间的差的乘积再求和来表示其匹配程度,越大越匹配,计算过程举例如下。与平方差匹配类似,只不过需要将值统一到0到1,计算结果越小,代表匹配程度越高,计算过程举例如下。与相关匹配类似,只不过是将其值统一到0到1之间,值越大,代表匹配程度越高,计算过程举例如下。也是将相关系数匹配的结果统一到0到1之间,值越接近1代表匹配程度越高,计算过程举例如下。找的目标图像中匹配程度最高的点,我们可以设定一个匹配阈值来筛选出多个匹配程度高的区域。最大值对应的最佳匹配位置。

2025-04-29 17:15:40 2173 1

原创 opencv 直方图均衡化

接下来我们就要进行计算,就是将要缩放的范围(通常是缩放到0-255,所以就是255-0)乘以累计比例,得到新的像素值,并将新的像素值放到对应的位置上,比如像素值为50的像素点,将其累计比例乘以255,也就是0.33乘以255得到84.15,取整后得到84,并将84放在原图像中像素值为50的地方,像素值为100、210、255的计算过程类似,最终会得到如下图所示的结果,这样就完成了最基本的直方图均衡化的过程。,图像的细节不够清晰且对比度较低的情况,然而,传统的直方图均衡化方法会引入噪声,

2025-04-29 12:39:01 1586

原创 opencv绘制图像轮廓,凸包特征检测,轮廓特征查找

轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。相对于边缘,轮廓是连续的,边缘不一定连续,如下图所示。其实边缘主要是作为图像的特征使用,比如可以用边缘特征可以区分脸和手,而轮廓主要用来分析物体的形态,比如物体的周长和面积等,可以说边缘包括轮廓。

2025-04-22 16:52:46 1183

原创 opencv图像的梯度处理,边缘检测

是因为经过第二步得到的边缘不经过处理是没办法使用的,因为高斯滤波的原因,边缘会变得模糊,导致经过第二步后得到的边缘像素点非常多,因此我们需要对其进行一些过滤操作,幅值处于最高像素与最低像素之间时,如果它能连接到一个高于阈值的边缘时,则被认为是边缘像素,否则就不会被认为是边缘。Canny 边缘检测算法是一种非常流行的边缘检测算法,是 John F. Canny 于 1986年提出的,被认为是最优的边缘检测算法。通过这个公式我们就可以计算出图片中所有的像素点的梯度值与梯度方向,然后根据梯度方向获取边缘的方向。

2025-04-22 14:43:32 1198

原创 opencv 噪点的消除

然而,边缘(edge)信息是图像中很重要的一个特征,所以这才有了双边滤波。

2025-04-22 10:33:02 1355

原创 opencv 双边滤波的原理

双边滤波的基本思路是同时考虑将要被滤波的像素点的空域信息(周围像素点的位置的权重)和值域信息(周围像素点的像素值的权重)。为什么要添加值域信息呢?是因为假设图像在空间中是缓慢变化的话,那么临近的像素点会更相近,但是这个假设在图像的边缘处会不成立,因为图像的边缘处的像素点必不会相近。双边滤波采用了两个高斯滤波的结合,一个负责计算空间邻近度的权值(也就是空域信息),也就是上面的高斯滤波器,另一个负责计算像素值相似度的权值(也就是值域信息),也是一个高斯滤波器。S(i,j):指以(i,j)为中心的邻域的范围。

2025-04-22 10:22:21 376

原创 opencv 对图片的操作

由图像的旋转我们知道,图像在旋转的时候需要有旋转中心,而图像的镜像旋转虽然都是围绕x轴和y轴进行旋转,但是我们也需要确定x轴和y轴的坐标。图像的旋转是围绕一个特定点进行的,而图像的镜像旋转则是围绕坐标轴进行的。水平垂直翻转就是水平翻转和垂直翻转的结合,具体到像素点来说就是其坐标从(x,y)翻转为(-x,-y)。水平翻转就是将图片的像素点沿y轴翻转,具体到像素点来说就是令其坐标从(x,y)翻转为(-x,y)。src:原图像上需要进行透视变化的四个点的坐标,这四个点用于定义一个原图中的四边形区域。

2025-04-21 15:53:24 1258

原创 opencv 图像矫正的原理

图像矫正的原理是透视变换,下面来介绍一下透视变换的概念。听名字有点熟,我们在图像旋转里接触过仿射变换,知道仿射变换是把一个二维坐标系转换到另一个二维坐标系的过程,转换过程坐标点的相对位置和属性不发生变换,是一个线性变换,该过程只发生旋转和平移过程。因此,一个平行四边形经过仿射变换后还是一个平行四边形。而透视变换是把一个图像投影到一个新的视平面的过程,在现实世界中,我们观察到的物体在视觉上会受到透视效果的影响,即远处的物体看起来会比近处的物体小。透视投影是指将三维空间中的物体投影到二维平面上的过程,这个过程会

2025-04-21 15:36:46 503

【数据可视化】matplotlib.pie函数参数详解:饼图绘制与自定义配置选项说明

**参数说明:** - **x**:浮点型数组或列表,用于绘制饼图的数据,表示每个扇形的面积。 - **explode**:数组,表示各个扇形之间的间隔,默认值为0。 - **labels**:列表,各个扇形的标签,默认值为 None。 - **colors**:数组,表示各个扇形的颜色,默认值为 None。 - **autopct**:设置饼图内各个扇形百分比显示格式,**%d%%** 整数百分比,**%0.1f** 一位小数, **%0.1f%%** 一位小数百分比, **%0.2f%%** 两位小数百分比。 - **labeldistance**:标签标记的绘制位置,相对于半径的比例,默认值为 1.1,如 **<1**则绘制在饼图内侧。 - **pctdistance:**类似于 labeldistance,指定 autopct 的位置刻度,默认值为 0.6。 - **shadow:**布尔值 True 或 False,设置饼图的阴影,默认为 False,不设置阴影。 - **radius:**设置饼图的半径,默认为 1。 - **startangle:**用于指定饼图的起始角度,默认为从 x 轴正方向逆时针画起,如设定 =90 则从 y 轴正方向画起。 - **counterclock**:布尔值,用于指定是否逆时针绘制扇形,默认为 True,即逆时针绘制,False 为顺时针。 - **wedgeprops:**字典类型,默认值 None。用于指定扇形的属性,比如边框线颜色、边框线宽度等。例如:wedgeprops={'linewidth':5} 设置 wedge 线宽为5。 - **textprops:**字典类型,用于指定文本标签的属性,比如字体大小、字体颜色等,默认值为 None。 - **center:**浮点类型的列表,用于指定饼图的中心位置,默认值:

2025-04-09

【数据可视化】直方图绘制参数详解:Python Matplotlib库中hist函数的参数配置与应用

**参数说明:** - `x`:表示要绘制直方图的数据,可以是一个一维数组或列表。 - `bins`:可选参数,表示直方图柱子个数。默认为10。 - `range`:可选参数,表示直方图的值域范围,可以是一个二元组或列表。默认为None,即使用数据中的最小值和最大值。 - `density`:可选参数,表示是否将直方图归一化。默认为False,即直方图的高度为每个箱子内的样本数,而不是频率或概率密度。 - `weights`:可选参数,表示每个数据点的权重。默认为None。 - `cumulative`:可选参数,表示是否绘制累积分布图。默认为False。 - `bottom`:可选参数,表示直方图的起始高度。默认为None。 - `histtype`:可选参数,表示直方图的类型,可以是'bar'、'barstacked'、'step'、'stepfilled'等。默认为'bar'。 - `align`:可选参数,表示直方图箱子的对齐方式,可以是'left'、'mid'、'right'。默认为'mid'。 - `orientation`:可选参数,表示直方图的方向,可以是'vertical'、'horizontal'。默认为'vertical'。 - `rwidth`:可选参数,表示每个箱子的宽度。默认为None。 - `log`:可选参数,表示是否在y轴上使用对数刻度。默认为False。 - `color`:可选参数,表示直方图的颜色。 - `label`:可选参数,表示直方图的标签。 - `stacked`:可选参数,表示是否堆叠不同的直方图。默认为False。 - `**kwargs`:可选参数,表示其他绘图参数。

2025-04-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除