
深度学习
文章平均质量分 89
深度学习
瞻邈
老菜鸟一个。
展开
-
大模型核心技术:微调、推理与优化指南
大语言模型(LLM)是非常庞大的深度学习模型,它们在大量数据上进行预训练。其底层的Transformer是一组神经网络,由具有自注意力能力的编码器和解码器组成。编码器和解码器从文本序列中提取含义,并理解其中单词和短语之间的关系。Transformer神经网络架构允许使用非常大的模型,这些模型通常包含数千亿个参数。如此大规模的模型可以摄取大量数据,这些数据通常来自互联网,也可以来自如包含超过500亿个网页的Common Crawl,以及约有5700万页面的维基百科等来源。转载 2025-04-28 17:13:42 · 307 阅读 · 0 评论 -
模型训练技巧
模型太简单(欠拟合):增加层数、神经元数量,或使用更复杂的架构(如ResNet、Transformer)。使用自动化工具(如Grid Search、Random Search、贝叶斯优化)搜索最佳超参数。模型太复杂(过拟合):减少层数、神经元数量,或添加正则化(L1/L2正则化、Dropout)。增加正则化(L1/L2、Dropout、Early Stopping)。使用预训练模型(如BERT、ResNet、GPT)进行迁移学习。集成学习(如Bagging、Boosting、模型融合)。原创 2025-03-27 16:54:48 · 459 阅读 · 0 评论 -
学习率调度器 (Learning Rate Scheduler)
学习率调度器(Learning Rate Scheduler)是一种在训练过程中动态调整学习率的工具。学习率是优化器中的一个超参数,它决定了模型参数在每次更新时的调整步幅。合适的学习率可以加速模型收敛,而不合适的学习率可能导致训练过程不稳定或收敛速度慢。常见的学习率调度器StepLR:每隔一定的步数将学习率乘以一个衰减因子。ExponentialLR:每个epoch将学习率乘以一个固定的衰减因子。CosineAnnealingLR:学习率按照余弦函数曲线变化,适用于周期性训练。原创 2025-03-27 16:34:24 · 580 阅读 · 0 评论 -
神经网络训练:模型参数初始化方法详解
在训练过程中,梯度下降算法试图最小化损失函数,但由于对称性,很难确定哪个参数配置是最优的,即梯度下降算法可能会陷入局部最小值或平坦区域,使网络无法得到更好的优化结果,因为在这些区域中,梯度几乎为零,导致优化过程停滞不前。当我们训练深度神经网络时,梯度的传播是非常关键的。He初始化是一种常用的参数初始化方法,它针对使用Rectified Linear Units (ReLU)激活函数的神经网络进行了优化,其核心思想是,根据每一层的激活函数的特性来设置权重的初始范围,以更好地平衡信号和梯度的传播。转载 2025-03-27 15:56:08 · 96 阅读 · 0 评论 -
分布式训练
分布式训练的动机很简答:单节点算力和内存不足,因此不得不做分布式训练。训练机器学习模型需要大量内存。假设一个大型神经网络模型具有 1000 亿的参数(LLM 时代有不少比这个参数量更大的模型),每个参数都由一个 32 位浮点数(4 个字节)表达,存储模型参数就需要 400GB 的内存。在实际中,我们需要更多内存来存储激活值和梯度。假设激活值和梯度也用 32 位浮点数表达,那么其各自至少需要 400GB 内存,总的内存需求就会超过 1200GB(即 1.2TB)。原创 2025-03-27 11:29:22 · 870 阅读 · 0 评论 -
为何LoRA初始化B=0而A为高斯分布初始化?
回答:首先肯定不能A和B全部都为0的,全部都为0的话,梯度是没有的;所以,需要一部分为0初始化,一部分正常初始化,这样的目的是可以保证模型初始化的时候和原模型一样的输出;如果A不为0且B也不为0,会导致模型初始化就相对于原先的模型产生了扰动,引入了噪声会导致后续训练的时候收敛性没有一个初始化为0的好。Init[A] 可能导致一种“内部不稳定性”,在这种情况下,对于某些输入 z,特征 Az 很大,但 LoRA 输出 BAz 很小。Init[A] 允许使用比 Init[B] 更大的学习率。转载 2024-11-26 20:30:48 · 128 阅读 · 0 评论 -
当Batch Size增大时,学习率该如何随之变化?
最后,稍微感慨一下,OpenAI 对 SGD 的分析其实已经是 2018 年的工作了,而 Surge 现象这篇论文则是今年中才发布的,从 SGD 到 Adam 居然花了 6 年时间,这是让人比较意外的,大体是 OpenAI 的“威望”以及猜测(29),让大家觉得Adam已经没什么好做了,没想到 Adam 可能会有一些新的特性。可以肯定的是,不管是平方根缩放还是线性缩放,它们都只能在局部范围内近似成立,因为它们都包含了“只要 Batch Size 足够大,那么学习率就可以任意大”的结论,这显然是不可能的。转载 2024-11-26 18:19:42 · 102 阅读 · 0 评论 -
Hugging Face使用笔记
Hugging Face Hub和 Github 类似,都是Hub(社区)。Hugging Face可以说的上是机器学习界的Github。hugging face在NLP领域最出名,其提供的模型大多都是基于Transformer的。原创 2024-07-09 09:58:25 · 2703 阅读 · 0 评论 -
锚框 (anchor box)
目标检测算法通常会在输入图像中抽样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边界,从而更准确地预测目标的真实边界框(ground-truth bounding box)。不同的模型所使用的区域抽样方法可能不同。这里我们介绍其中的一种方法:以每个像素为中心,生成多个缩放比和宽高比不同的边界框,这些边界框被称为锚框(anchor box)。原创 2024-04-12 11:25:43 · 3245 阅读 · 0 评论 -
点云检测网络PointPillar
在此之前对于不规则的稀疏的点云的做法普遍分为两派:一是把点云数据量化到一个个Voxel里,常见的有VoxelNet和SECOND , 但是这种做法比较普遍的问题是由于voxel大部分是空集所以会浪费算力(SECOND利用稀疏卷积解决了它) ,但是二者都还存在高度的信息所以还需要计算三维卷积的。一是从俯视角度将点云的数据进行处理,将高度信息通过一系列手段去除从而获得一种类似Pseudo image的方式从而去用一些经典的图像网络去处理一些任务比如,MV3D和AVOD。原创 2024-02-28 21:54:19 · 1322 阅读 · 0 评论 -
稀疏卷积Sparse Convolution
使用以下稀疏图像作为输入如图所示,我们有一个5×5的3通道图像。除了P1和P2两点外,所有像素都是空,我们称像P1和P2这样的非空点为active input site。在稀疏格式中,数据列表是[[0.1,0.1,0.1], [0.2,0.2,0.2] ,索引列表是[1,2] ,[2,3] ,并且是YX顺序。在卷积过程中卷积核如下定义,每个卷积核是一个3x3矩阵。深色和浅色代表两种滤镜。有两种稀疏卷积。原创 2024-02-28 21:25:37 · 2416 阅读 · 0 评论 -
深度学习中的Droupout
Dropout的作用是防止过拟合。Dropout在训练模型中是如何实现的呢?Dropout的做法是在训练过程中按一定比例(比例参数可设置)随机忽略或屏蔽一些神经元。这些神经元被随机“抛弃”,也就是说它们在正向传播过程中对于下游神经元的贡献效果暂时消失了,反向传播时该神经元也不会有任何权重的更新。所以,通过传播过程,dropout将产生和L2范数相同的收缩权重的效果。原创 2024-02-06 00:30:43 · 1977 阅读 · 0 评论 -
深度学习相关网址
本文整理了一系列与深度学习相关的重要网址,涵盖了模型资源、学习资料、研究动态等多个方面。这些网址是深度学习爱好者和研究者的宝藏,能帮助大家获取最新的信息、提升技能、深入探索前沿领域。原创 2023-04-09 18:32:42 · 997 阅读 · 0 评论 -
Transformer模型详解
transformer结构是google在2017年的Attention Is All You Need论文中提出,在NLP的多个任务上取得了非常好的效果,可以说目前NLP发展都离不开transformer。最大特点是抛弃了传统的CNN和RNN,整个网络结构完全是由Attention机制组成。 由于其出色性能以及对下游任务的友好性或者说下游任务仅仅微调即可得到不错效果,在计算机视觉领域不断有人尝试将transformer引入,近期也出现了一些效果不错的尝试,典型的如目标检测领域的detr和可变形detr,分原创 2023-01-19 11:07:43 · 29668 阅读 · 0 评论 -
注意力机制
自下而上的无意识的注意力,称为基于显著性的注意力( SaliencyBased Attention).基于显著性的注意力是由外界刺激驱动的注意,不需要主动干预,也和任务无关.如果一个对象的刺激信息不同于其周围信息,一种无意识的“赢者通吃”( Winner-Take-All)或者门控( Gating)机制就可以把注意力转向这个对象.不管这些注意力是有意还是无意,大部分的人脑活动都需要依赖注意力,比如记忆信息、阅读或思考等.。那么在预测某个词yt时,任何输入单词对于它的重要性都是一样的,也就是注意力分散了。原创 2023-01-15 16:49:12 · 10553 阅读 · 0 评论 -
深度学习中的Batch Size
Batch的选择,首先决定的是下降的方向。如果数据集比较小,可采用全数据集的形式,好处是:由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。由于不同权重的梯度值差别巨大,因此选取一个全局的学习率很困难。可以使用Rprop只基于梯度符号并且针对性单独更新各权值。对于更大的数据集,假如采用全数据集的形式,坏处是:随着数据集的海量增长和内存限制,一次性载入所有的数据进来变得越来越不可行。以Rprop的方式迭代,会由于各个Batch。原创 2022-03-23 13:28:30 · 391 阅读 · 1 评论 -
深度学习中的激活函数
激活函数对模型学习、理解非常复杂和非线性的函数具有重要作用。激活函数可以引入非线性因素。如果不使用激活函数,则输出信号仅是一个简单的线性函数。线性函数一个一级多项式,线性方程的复杂度有限,从数据中学习复杂函数映射的能力很小。没有激活函数,神经网络将无法学习和模拟其他复杂类型的数据,例如图像、视频、音频、语音等。激活函数可以把当前特征空间通过一定的线性映射转换到另一个空间,让数据能够更好的被分类。1.2.假若网络中全部是线性部件,那么线性的组合还是线性,与单独一个线性分类器无异。这样就做不。原创 2022-03-23 10:22:42 · 1540 阅读 · 0 评论 -
深度学习的算法实践和演进
回顾深度学习模型过去的发展历史,我们看到过去一些明显的规律和局限:更宽、更深、更大的模型持续带来效果和能力上的惊喜,但是似乎在22年走到了一个反思的节点。用VGG的100M和Megatron的530B相比,规模提升了1000~10000倍。然而,规模的边际效用降低,能耗和迭代效率都成为较大的问题。模型越来越全能,算法越来越归一。放在10年前,CV和NLP的研究员可能风马牛不相及。但是现在我发现CV,NLP,语音的SOTA模型都能用上Transformer结构,都能用上自监督训练。转载 2022-02-10 13:26:16 · 627 阅读 · 0 评论 -
深度学习中的20种卷积
大多数的卷积结构都是在精度-参数量-计算量这三个维度上进行不同的侧重取舍。两个矛盾:追求计算效率的卷积结构由于计算预算较低,无论是限制卷积层的深度,还是限制了卷积的宽度,不可避免地会导致性能的下降。追求精度提升的卷积结构由于其引入过多的卷积运算或其他额外的操作(如注意力),势必会增大内存或计算开销,从而影响模型的容量和整体的训练或推理速度。一个设计的原则就是我们如何在不增加额外参数量的情况下,尽可能利用有效的信息或者从降低冗余空间信息的角度出发,来提高模型的计算效率和卷积提取特征的能力。转载 2021-07-13 14:32:04 · 17651 阅读 · 0 评论 -
深度学习常用的激活函数
那就让我们来整理一下深度学习中离不开的激活函数!激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。因此,激活函数是确定神经网络输出的数学方程式,本文概述了深度学习中常见的十种激活函数...原创 2021-06-17 13:51:50 · 1039 阅读 · 1 评论