2024.01.13 过拟合解决方案之权重衰减

LLM工程落地四大技术突破:MoE优化、长上下文稳定、蒸馏提效与多模态鲁棒对齐 大语言模型(LLM)在工业场景落地的核心瓶颈,正从‘能否跑通’转向‘能否稳、快、省、抗噪’。MoE架构优化解决高并发下专家负载失衡导致的延迟抖动问题;长上下文推理稳定性聚焦RoPE梯度衰减这一底层机制,提升超长文本关键信息召回能力;开源模型蒸馏效率突破传统教师强迫范式,转向注意力熵等隐式知识迁移,显著降低训练成本;多模态对齐鲁棒性则直面真实世界输入噪声,通过对抗扰动与置信度校准保障图文对齐可靠性。这些技术共同构成当前LLM系统级工程优化的关键支点,适用于金融、医疗、电商、法律等强SLA与长文档处理场景。 阅读详情

2024.01.13 过拟合解决方案之权重衰减

范数

线性代数中最有用的一些运算符是范数(norm)。 非正式地说,向量的范数是表示一个向量有多大。 这里考虑的大小(size)概念不涉及维度,而是分量的大小。

范数听起来很像距离的度量。 欧几里得距离和毕达哥拉斯定理中的非负性概念和三角不等式可能会给出一些启发。 事实上,欧几里得距离是一个L2L_2L2​范数: 假设nnn维向量x\mathbf{x}x中的元素是x1,…,xnx_{1},\ldots,x_{n}x1​,…,xn​,其L2L_2L2​范数是向量元素平方和的平方根:
∥x∥2=∑i=1nxi2, \|\mathbf{x}\|_2=\sqrt{\sum_{i=1}^nx_i^2}, ∥x∥2​=i=1∑n​xi2​​,
其中,在L2L_2L2​范数中常常省略下标2,也就是说∥x∥\|\mathbf{x}\|∥x∥等同于∥x∥2\|\mathbf{x}\|_2∥x∥2​。在代码中,我们可以按如下方式计算向量的L2L_2L2​范数。

u = torch.tensor([3.0, -4.0])
torch.norm(u)

输出:

tensor(5.)

深度学习中更经常地使用L2L_2L2​范数的平方,也会经常遇到L1L_1L1​范数,它表示为向量元素的绝对值之和:
∥x∥1=∑i=1n∣xi∣ \|\mathbf{x}\|_1=\sum_{i=1}^n|x_i| ∥x∥1​=i=1∑n​∣xi​∣

权重衰退原理

在训练参数化机器学习模型时, 权重衰减(weight decay)是最广泛使用的正则化的技术之一, 它通常也被称为L2L_2L2​正则化。 这项技术通过函数与零的距离来衡量函数的复杂度。 但是我们应该如何精确地测量一个函数和零之间的距离呢? 没有一个正确的答案。 事实上,函数分析和巴拿赫空间理论的研究,都在致力于回答这个问题。

一种简单的方法是通过线性函数f(x)=w⊤xf(\mathbf{x})=\mathbf{w}^\top\mathbf{x}f(x)=w⊤x中的权重向量的某个范数来度量其复杂性, 例如∥w∥2\|\mathbf{w}\|^2∥w∥2。要保证权重向量比较小, 最常用方法是将其范数作为惩罚项加到最小化损失的问题中。 将原来的训练目标最小化训练标签上的预测损失, 调整为最小化预测损失和惩罚项之和。 现在,如果我们的权重向量增长的太大, 我们的学习算法可能会更集中于最小化权重范数∥w∥2\|\mathbf{w}\|^2∥w∥2。这正是我们想要的。

例如线性回归的损失函数如下:
L(w,b)=1n∑i=1n12(w⊤x(i)+b−y(i))2 L(\mathbf{w},b)=\frac1n\sum_{i=1}^n\frac12\Big(\mathbf{w}^\top\mathbf{x}^{(i)}+b-y^{(i)}\Big)^2 L(w,b)=n1​i=1∑n​21​(w⊤x(i)+b−y(i))2
其中,x(i)\mathbf{x}^{(i)}x(i)是样本iii的特征,y(i){y}^{(i)}y(i)是样本iii的标签, (w,b)(\mathbf{w},b)(w,b)是权重和偏置参数。 为了惩罚权重向量的大小, 我们必须以某种方式在损失函数中添加∥w∥2\|\mathbf{w}\|^2∥w∥2,但是模型应该如何平衡这个新的额外惩罚的损失? 实际上,我们通过正则化常数λ\lambdaλ来描述这种权衡, 这是一个非负超参数,我们使用验证数据拟合:
L(w,b)+λ2∥w∥2 L(\mathbf{w},b)+\frac\lambda2\|\mathbf{w}\|^2 L(w,b)+2λ​∥w∥2
对于λ=0\lambda = 0λ=0,我们恢复了原来的损失函数。 对于λ>0\lambda > 0λ>0,我们限制∣w∥|\mathbf{w}\|∣w∥的大小。 这里我们仍然除以2,当我们取一个二次函数的导数时, 2和1/2会抵消,以确保更新表达式看起来既漂亮又简单。为什么在这里我们使用平方范数而不是标准范数(即欧几里得距离)? 我们这样做是为了便于计算。 通过平方L2L_2L2​范数,我们去掉平方根,留下权重向量每个分量的平方和。 这使得惩罚的导数很容易计算。

L2L_2L2​正则化回归的小批量随机梯度下降更新如下式:
w←(1−ηλ)w−η∣B∣∑i∈Bx(i)(w⊤x(i)+b−y(i)) \mathbf{w}\leftarrow(1-\eta\lambda)\mathbf{w}-\frac\eta{|\mathcal{B}|}\sum_{i\in\mathcal{B}}\mathbf{x}^{(i)}\left(\mathbf{w}^\top\mathbf{x}^{(i)}+b-y^{(i)}\right) w←(1−ηλ)w−∣B∣η​i∈B∑​x(i)(w⊤x(i)+b−y(i))
根据之前章节所讲的,我们根据估计值与观测值之间的差异来更新w\mathbf{w}w。 然而,我们同时也在试图将w\mathbf{w}w的大小缩小到零。 这就是为什么这种方法有时被称为权重衰减。 我们仅考虑惩罚项,优化算法在训练的每一步衰减权重。 与特征选择相比,权重衰减为我们提供了一种连续的机制来调整函数的复杂度。 较小的值对λ\lambdaλ应较少约束的w\mathbf{w}w, 而较大的λ\lambdaλ值对w\mathbf{w}w的约束更大。

从零开始实现权重衰退

1 构造数据

import torch
from torch import nn
from torch.utils import data


def synthetic_data(w, b, num_examples):
    """生成y=Xw+b+噪声"""
    X = torch.normal(0, 1, (num_examples, len(w)))
    y = torch.matmul(X, w) + b
    y += torch.normal(0, 0.01, y.shape)
    return X, y.reshape((-1, 1))


def load_array(data_arrays, batch_size, is_train=True):
    """构造一个PyTorch数据迭代器"""
    dataset = data.TensorDataset(*data_arrays)
    return data.DataLoader(dataset, batch_size, shuffle=is_train)


n_train, n_test, num_inputs, batch_size = 20, 100, 200, 5
true_w, true_b = torch.ones((num_inputs, 1)) * 0.01, 0.05
train_data = synthetic_data(true_w, true_b, n_train)
train_iter = load_array(train_data, batch_size)
test_data = synthetic_data(true_w, true_b, n_test)
test_iter = load_array(test_data, batch_size, is_train=False)

2 初始化模型参数

def init_params():
    w = torch.normal(0, 1, size=(num_inputs, 1), requires_grad=True)
    b = torch.zeros(1, requires_grad=True)
    return [w, b]

3 定义L2{L}_2L2​范数惩罚

def l2_penalty(w):
    return torch.sum(w.pow(2)) / 2

4 定义模型和损失函数

def linreg(X, w, b): 
    """线性回归模型"""
    return torch.matmul(X, w) + b


def squared_loss(y_hat, y):
    """均方损失"""
    return (y_hat - y.reshape(y_hat.shape)) ** 2 / 2


def sgd(params, lr, batch_size):
    """小批量随机梯度下降"""
    with torch.no_grad():
        for param in params:
            param -= lr * param.grad / batch_size
            param.grad.zero_()

5 定义损失评估函数

class Accumulator:  #@save
    """在n个变量上累加"""
    def __init__(self, n):
        self.data = [0.0] * n

    def add(self, *args):
        self.data = [a + float(b) for a, b in zip(self.data, args)]

    def reset(self):
        self.data = [0.0] * len(self.data)

    def __getitem__(self, idx):
        return self.data[idx]


def evaluate_loss(net, data_iter, loss):
    """评估给定数据集上模型的损失"""
    metric = Accumulator(2)  # 损失的总和,样本数量
    for X, y in data_iter:
        out = net(X)
        y = y.reshape(out.shape)
        l = loss(out, y)
        metric.add(l.sum(), l.numel())
    return metric[0] / metric[1]

6 定义训练函数

def train(lambd):
    w, b = init_params()
    net, loss = lambda X: linreg(X, w, b), squared_loss
    num_epochs, lr = 100, 0.003
    for epoch in range(num_epochs):
        for X, y in train_iter:
            # 增加了L2范数惩罚项,
            # 广播机制使l2_penalty(w)成为一个长度为batch_size的向量
            l = loss(net(X), y) + lambd * l2_penalty(w)
            l.sum().backward()
            sgd([w, b], lr, batch_size)
        if (epoch + 1) % 10 == 0:
            print(evaluate_loss(net, train_iter, loss))
            print(evaluate_loss(net, test_iter, loss))
    print('w的L2范数是:', torch.norm(w).item())

7 定义训练函数

def train(lambd):
    w, b = init_params()
    net, loss = lambda X: linreg(X, w, b), squared_loss
    num_epochs, lr = 100, 0.003
    for epoch in range(num_epochs):
        for X, y in train_iter:
            # 增加了L2范数惩罚项,
            # 广播机制使l2_penalty(w)成为一个长度为batch_size的向量
            l = loss(net(X), y) + lambd * l2_penalty(w)
            l.sum().backward()
            sgd([w, b], lr, batch_size)
        if (epoch + 1) % 10 == 0:
            print(evaluate_loss(net, train_iter, loss))
            print(evaluate_loss(net, test_iter, loss))
    print('w的L2范数是:', torch.norm(w).item())

8 忽略正则化直接训练

我们现在用lambd = 0禁用权重衰减后运行这个代码。 注意,这里训练误差有了减少,但测试误差没有减少, 这意味着出现了严重的过拟合。

train(lambd=0)

输出:

6.718327045440674
111.89330017089844
0.769484794139862
110.775845413208
0.12477019131183624
110.69607948303222
0.023347004130482674
110.73360847473144
0.004730253014713526
110.76803649902344
0.0010142373736016451
110.78975273132325
0.0002265329472720623
110.80156417846679
5.242526312940754e-05
110.80791412353516
1.2483596856327495e-05
110.81120208740235
3.029539379895141e-06
110.8129093170166
w的L2范数是: 14.017784118652344

其图像如下:

image-20240113203220922

9 使用权重衰减

下面,我们使用权重衰减来运行代码。 注意,在这里训练误差增大,但测试误差减小。 这正是我们期望从正则化中得到的效果。

train(lambd=3)

输出:

3.4674706935882567
40.52239170074463
0.21071776300668715
19.59771007537842
0.017328211199492217
9.598615684509276
0.0028875970747321844
4.72015061378479
0.0016041443683207034
2.3360534596443174
0.0014270563377067446
1.169337533712387
0.001352554582990706
0.5967587316036225
0.0013034804665949195
0.31446478426456453
0.0012782146106474102
0.1743188387155533
0.0012224957521539182
0.103997398391366
w的L2范数是: 0.37360531091690063

图像:

image-20240113204401135

权重衰退简洁实现

1 构造数据

import torch
from torch import nn
from torch.utils import data


def synthetic_data(w, b, num_examples):
    """生成y=Xw+b+噪声"""
    X = torch.normal(0, 1, (num_examples, len(w)))
    y = torch.matmul(X, w) + b
    y += torch.normal(0, 0.01, y.shape)
    return X, y.reshape((-1, 1))


def load_array(data_arrays, batch_size, is_train=True):
    """构造一个PyTorch数据迭代器"""
    dataset = data.TensorDataset(*data_arrays)
    return data.DataLoader(dataset, batch_size, shuffle=is_train)


n_train, n_test, num_inputs, batch_size = 20, 100, 200, 5
true_w, true_b = torch.ones((num_inputs, 1)) * 0.01, 0.05
train_data = synthetic_data(true_w, true_b, n_train)
train_iter = load_array(train_data, batch_size)
test_data = synthetic_data(true_w, true_b, n_test)
test_iter = load_array(test_data, batch_size, is_train=False)

2 定义损失评估函数

class Accumulator:  #@save
    """在n个变量上累加"""
    def __init__(self, n):
        self.data = [0.0] * n

    def add(self, *args):
        self.data = [a + float(b) for a, b in zip(self.data, args)]

    def reset(self):
        self.data = [0.0] * len(self.data)

    def __getitem__(self, idx):
        return self.data[idx]


def evaluate_loss(net, data_iter, loss):
    """评估给定数据集上模型的损失"""
    metric = Accumulator(2)  # 损失的总和,样本数量
    for X, y in data_iter:
        out = net(X)
        y = y.reshape(out.shape)
        l = loss(out, y)
        metric.add(l.sum(), l.numel())
    return metric[0] / metric[1]

3 定义训练函数

在下面的代码中,我们在实例化优化器时直接通过weight_decay指定weight decay超参数。 默认情况下,PyTorch同时衰减权重和偏移。 这里我们只为权重设置了weight_decay,所以偏置参数b不会衰减。

def train_concise(wd):
    net = nn.Sequential(nn.Linear(num_inputs, 1))
    for param in net.parameters():
        param.data.normal_()
    loss = nn.MSELoss(reduction='none')
    num_epochs, lr = 100, 0.003
    # 偏置参数没有衰减
    trainer = torch.optim.SGD([
        {"params":net[0].weight,'weight_decay': wd},
        {"params":net[0].bias}], lr=lr)
    for epoch in range(num_epochs):
        for X, y in train_iter:
            trainer.zero_grad()
            l = loss(net(X), y)
            l.mean().backward()
            trainer.step()
        if (epoch + 1) % 10 == 0:
            print(evaluate_loss(net, train_iter, loss))
            print(evaluate_loss(net, test_iter, loss))
    print('w的L2范数:', net[0].weight.norm().item())

4 忽略正则化直接训练

我们现在用lambd = 0禁用权重衰减后运行这个代码。 注意,这里训练误差有了减少,但测试误差没有减少, 这意味着出现了严重的过拟合。

train_concise(0)

输出:

0.7942435622215271
147.39787200927734
0.026174949016422033
147.1616212463379
0.0011757630854845047
147.12282012939454
5.728952528443188e-05
147.11509490966796
2.8377404078128167e-06
147.11357345581055
1.435657850379357e-07
147.11323837280273
7.450126027208626e-09
147.11319473266602
3.930717806799322e-10
147.11319717407227
4.2250853510283905e-11
147.1131950378418
1.3290707423507797e-11
147.1131904602051
w的L2范数: 13.41625690460205

其图像如下:

image-20240113203220922

5 使用权重衰减

下面,我们使用权重衰减来运行代码。 注意,在这里训练误差增大,但测试误差减小。 这正是我们期望从正则化中得到的效果。

train_concise(3)

输出:

0.44908093512058256
79.26161060333251
0.014182116836309433
38.39419065475464
0.005516740120947361
18.69626650810242
0.0047397946938872336
9.167555465698243
0.004471739660948515
4.554769878387451
0.004199517332017422
2.32014231801033
0.004032817389816046
1.2366495299339295
0.003825438302010298
0.7090656226873397
0.003553233714774251
0.45032487854361536
0.003349584457464516
0.32078503906726835
w的L2范数: 0.3820874094963074

图像:

image-20240113204401135

欢迎关注公众号

在这里插入图片描述

AutoML、NAS与超参调优:工业级AI落地的三层导航术 自动机器学习(AutoML)是一类通过算法自动化建模流程的技术统称,其核心在于降低人工干预强度、提升模型迭代效率;神经架构搜索(NAS)聚焦于模型结构层面的自动发现,而超参数优化(HPO)则作用于固定架构下的配置调优。三者构成从细粒度控制到端到端交付的递进式技术谱系,本质差异在于自动化深度、资源消耗与工程可控性。在工业场景中,技术选型需回归成本-收益精算:HPO具备高ROI与强可解释性,适配多数业务冷启动;NAS适用于算力充足、性能瓶颈明确的专项优化;AutoML则需配套MLOps能力,否则易引发特征穿越、 阅读详情

相关推荐

手搓神经网络:从零实现MLP理解前向传播与反向传播

神经网络是深度学习的基石,其核心在于前向传播与反向传播的协同运作。前向传播完成输入到输出的映射,依赖权重初始化、激活函数和维度对齐;反向传播则通过链式法则计算梯度,驱动梯度下降优化损失函数。这一过程的技术价值在于建立可调试、可解释的模型认知,避免Keras等高级API带来的‘黑箱幻觉’。典型应用场景包括图像分类(如MNIST)、轻量级CV/NLP模型部署及教学验证。本文聚焦纯NumPy手写三层MLP,深入剖析权重初始化、Softmax数值稳定实现、ReLU梯度流动等关键细节,直击‘loss不降’‘nan溢出

long_yu2的专栏 422

Runtime Reinforcement:防御大模型长上下文中的指令衰减

大语言模型在处理长上下文时,常出现指令遵循能力随token位置递减的现象——这并非幻觉或训练缺陷,而是由注意力归一化、位置编码衰减与KV缓存稀释共同导致的系统性信号劣化。理解这一机制,是构建高保真RAG、法律合同审查、医疗结构化等强约束任务系统的前提。Runtime Reinforcement作为一种轻量级推理时干预技术,不修改模型权重、不切分文档、不依赖重训,而是通过实时监测注意力熵、动态注入logit偏置、重嵌指令向量与智能KV裁剪,在毫秒级完成指令信号加固。它直面‘指令衰减’与‘长上下文可靠性’两大工

weixin_30279671的博客 418

PyTorch全连接神经网络实战:从MNIST手写识别入门

神经网络是深度学习的基石概念,其核心在于前向传播、反向传播与梯度优化的协同机制。理解这一原理需回归最简结构——全连接网络(MLP),它剥离了卷积、注意力等复杂模块的干扰,直指线性变换+非线性激活的本质。PyTorch凭借动态计算图和原生张量操作,成为调试训练过程的理想工具,尤其适合初学者建立对张量形状、权重初始化、学习率warmup等关键环节的手感。在MNIST手写数字识别任务中,MLP不仅可实现98%+准确率,更承载着模型收敛诊断、梯度监控、早停策略等工程实践逻辑,是通往CNN、Transformer等高

weixin_33895475的博客 471

深度学习基础:解决过拟合现象之权重衰减

针对于过拟合现象,有两种可以解决的办法:权重衰减、丢弃法。这篇文章先总结权重衰减。 一、权重衰减介绍及参数迭代方式推导 权重衰减是等价于L2L_2L2​范数正则化的。那么什么是正则化呢? 正则化是通过为模型损失函数添加惩罚项使得学习出的模型参数值较小的办法,是应对过拟合的常用手段。下面先描述L2L_2L2​范数正则化,再解释为何它叫权重衰减。 L2L_2L2​范数惩罚项是指:模型的权重参数每个元素的平方和 × 正常数。以线性回归 中的损失函数 为例。将权重参数用向量w=[w1,w2]\boldsymbol

destiny_balabala的博客 1292

空间分析三把手术刀:Moran‘s I、GWR与Haversine-DBSCAN实战指南

空间数据分析的核心在于应对‘非独立同分布(Non-IID)’这一根本挑战——地理邻近性导致数据天然存在自相关、异质性与密度不均。传统机器学习算法如随机森林或Transformer因忽略空间依赖,常在真实场景中泛化失败。Moran’s I 通过全局/局部空间自相关检验,揭示‘模式是否存在’;地理加权回归(GWR)建模空间异质性,生成可解释的‘系数地图’;而结合Haversine距离的DBSCAN则精准识别球面尺度下的真实功能区。这三类方法共同构成空间问题诊断的底层逻辑链:从格局检验→关系建模→结构发现。适用于

365

Stata面板数据OLS回归分析实战指南

OLS回归作为计量经济学的核心分析方法,通过最小化残差平方和实现参数估计,广泛应用于经济学实证研究。其技术价值在于模型简洁、结果易于解释,特别适合处理面板数据中的复杂关系。在实际应用中,配合robust标准误能有效解决异方差问题,而固定效应模型则可控制个体特异性。本文以Stata软件为例,详细演示从数据导入、描述性统计到混合OLS和固定效应模型构建的全流程,重点解析面板数据特有的格式设定、模型选择标准以及结果呈现技巧,为经济学研究者提供可直接复用的分析框架。

weixin_29051811的博客 268

权重衰减来解决过拟合问题

过拟合是因为模型过于复杂使得噪声都训练数据集中的噪声都拟合进去了,从而导致训练出来的模型泛化能力变差。(训练误差减小而泛化误差增大) 为了解决过拟合现象,使用权重衰减的方法,就是将原来的损失函数加上一个权重范数。 思路:通过加上一个权重范数来降低模型的复杂程度,从而解决过拟合问题。 为什么加上权重范数就能降低模型的复杂程度,因为权重范数越小或越少 ...

wzfafabga的博客 1256

python爬取《你好, 李焕英》豆瓣评论数据

# 导入工具包 import requests from bs4 import BeautifulSoup import time import pandas as pd import numpy as np # 请求头 headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'} # =

python技巧分享 3457

正则化与权重衰减

1. 权重衰减(weight decay) L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化。 L2正则化与权重衰减系数L2正则化就是在代价函数后面再加上一个正则化项: 其中C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。...

前进ing的博客 4126

C++游戏开发入门:从环境配置到第一个完整项目

C++ 作为游戏开发领域的关键语言,其学习路径常因语法枯燥而令初学者却步。以项目驱动的方式学编程,能帮助学习者将变量、循环、函数、指针等基础概念融入实际游戏逻辑中,获得即时反馈与完整项目经验。掌握合适的开发环境是高效实践的前提,例如在 Windows 下使用 VS Code 搭配 MinGW-w64 编译器,配合调试器与构建脚本,即可搭建轻量可扩展的 C++ 游戏开发工作流。此类课程通常面向无基础人群,从控制台小游戏逐步过渡到带游戏循环的完整作品,过程中还需关注性能观察、素材授权与版本管理。无论你是刚接触编

weixin_30621959的博客 542

003:大疆智图新手入门:从下载安装到首次建模实战

本文为大疆智图新手提供从下载安装到首次三维建模的完整实战指南。详细介绍了软件安装的硬件要求、试用许可申请流程,并指导用户如何准备航拍数据或使用开源样例进行首次建模。通过分步操作演示与核心参数设置讲解,帮助初学者快速掌握使用大疆智图进行实景三维重建的核心流程与常见问题解决方案。

t8u9v0的博客 702

欠拟合、过拟合——解决方法

在机器学习或者深度神经网络中经常会出现:欠拟合和过拟合。 这些问题的出现原因以及解决之道如下文。 1.3 判断是否过拟合 判断究模型否过拟合方法: 1.4 过拟合原因 (1)建模样本抽取错误,包括(但不限于)样本数量太少,抽样方法错误, 抽样时没有足够正确考虑业务场景或业务特点,不能有效足够代表业务逻辑或业务场景。 (2)样本里的噪音数据干扰过大,模型学习了噪音特征,反而忽...

红叶谷 wsp_1138886114的博客 1万+

保姆级教程:用YOLOv8/9/10搞定仪表盘指针识别,附完整数据集和Python环境配置

本文提供了一份基于YOLOv8/v9/v10的仪表盘指针检测全流程指南,涵盖环境配置、数据集构建、模型选型、训练调优和部署落地等关键步骤。通过详细的代码示例和实战经验,帮助开发者高效解决工业视觉中的仪表盘检测难题,特别适合电力巡检、智能监控等应用场景。

weixin_29031057的博客 1335

权重衰减系数

1. 权重衰减(weight decay) L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化。 1.1 L2正则化与权重衰减系数 L2正则化就是在代价函数后面再加上一个正则化项: 其中C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0...

hellocsz的博客 7845

一种导弹追踪算法的MATLAB仿真实现

以下是一个用于模拟机动变轨导弹和防空导弹追踪过程的 MATLAB 代码,同时会提供 3D 效果展示。你可以运行这段代码,从而观察机动变轨导弹和防空导弹的速度与位置变化。

SmartGridequation的博客 935

大模型部署指南:LM Studio

本文介绍使用LM Studio部署大模型

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1952

【阿里Qwen大模型微调实战】过拟合、欠拟合与训练失败诊断

过拟合、欠拟合与训练失败诊断

人工智能(AI)技术,大模型技术,深度学习,机器学习,计算机视觉,AI工具实践应用等分享 212

PCL点云库入门(第1讲)——PCL库简介和安装(Win10/11+VS2019+PCL 1.12.0)

PCL,全称为,即点云库,是一个专注于2D/3D图像和点云处理的大型开源项目。该项目最初由斯坦福大学的杰出计算机视觉专家Radu博士及其团队开发和维护,经过十余年的发展,目前(2024年12月)已更新至1.14.1版本。PCL点云库集成了众多尖端的点云处理算法,这些算法不仅包括基础的滤波、特征估计、表面重建、配准、模型拟合和分割等,还涵盖了更高级的功能,如点云数据的语义理解、场景解析以及动态环境下的实时处理。这些算法能够对含有噪声的点云数据进行有效过滤,去除异常值;

qq_36812406的博客 1万+

动态时间序列模型更新:面向生产环境的增量学习实战指南

时间序列预测模型在真实业务中面临数据持续演化、分布漂移和时效性衰减等核心挑战。其本质是让模型具备‘边看边学’能力,而非依赖周期性全量重训。增量更新通过参数微调、在线学习与模型融合等范式,在保障预测精度的同时显著降低计算开销与响应延迟。该技术广泛应用于零售销量预测、工业设备异常检测、金融风控等对实时性与稳定性双高要求的场景。本文聚焦可落地的工程实践,涵盖数据管道状态化处理、Prophet与线性模型的增量适配、学习率动态缩放、KS检验驱动的漂移触发机制等关键环节,直击‘模型越更新越差’‘预测忽高忽低’等高频生产

hwpokay的专栏 343

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

EmoLLM:构建专业心理健康对话系统的开源解决方案

在当今AI技术快速发展的背景下,情感支持和心理健康服务领域面临着专业性与可访问性的双重挑战。传统心理咨询资源有限且成本高昂,而通用大语言模型在心理健康领域的专业性和安全性存在明显不足。EmoLLM通过**角色化情感对话**、**检索增强生成(RAG)** 和**多模型微调框架**三大核心功能,为开发者提供了构建专业心理健康AI系统的完整技术栈。 ## 技术架构解析:从数据处理到服务部署 Emo

gitblog_00498的博客 427

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

深度探索VAR视觉自回归模型:310M到2.3B参数的性能揭秘与实战指南

VAR(Visual Autoregressive Modeling)作为NeurIPS 2024最佳论文提出的创新视觉生成方法,彻底改变了传统自回归模型的图像生成范式。这种基于"下一尺度预测"(next-scale prediction)的新型架构,首次让GPT风格的自回归模型在图像生成质量上超越了扩散模型,同时发现了显著的幂律缩放规律。本文将深入解析VAR模型的技术原理、应用场景、性能表现,并

gitblog_01158的博客 725

机器学习三要素深度解析:一个完整的故事带你彻底掌握 ML 核心框架

本文系统阐述了机器学习的三大核心要素:模型、策略与算法。模型(如线性回归、神经网络)是对数据规律的数学抽象;策略通过损失函数(如均方误差、交叉熵)定义优化目标;算法(如梯度下降)则负责高效求解最优参数。三者协同工作,构成了机器学习的基础框架。文中通过线性回归的完整代码示例,生动展示了梯度下降如何优化模型参数。理解这一框架,有助于把握各类机器学习方法的本质,为后续学习奠定坚实基础。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 304

【信息科学与工程学】【产品体系】第二十篇 CDN网络 01

CDN技术体系全景解析​1. 业务类型与随机过程建模​​类型​​随机过程描述​​测度空间​​突发流量冲击​复合泊松过程X_i为请求强度)​区域热点聚集​空间霍克斯过程​分布式共振​耦合振子模型相空间​2. PRD核心指标(泛函约束)​​:节点队列状态向量A:网络拓扑关联矩阵(图论邻接矩阵):随机需求过程(Levy过程驱动)时间状态特征与代数结构​1. 系统状态流形​graph LRS[状态空间 S] -->|微分同胚| M[特征流形 M]

weixin_49199313的博客 4116

LLM强化微调实战:冷启动DAPO训练方法解析

强化学习是机器学习的重要分支,通过奖励机制引导模型优化策略。在自然语言处理领域,强化微调(RLHF)已成为提升大语言模型(LLM)性能的关键技术。其核心原理是通过人类偏好数据训练奖励模型,再使用PPO等算法优化生成策略。GRPO作为新兴算法,通过组内相对奖励计算优势值,显著降低了显存占用。针对冷启动场景,DAPO算法创新性地结合了自适应约束和稳定性机制,无需奖励模型即可实现高效微调。这些技术在数学推理、代码生成等复杂任务中表现突出,特别是在处理全量偏好数据时展现出独特优势。本文将深入解析DAPO的实现细节和

weixin_30245867的博客 470

LoRA高效微调实战:参数高效微调的工程落地指南

参数高效微调(PEFT)是大语言模型在资源受限场景下适配新任务的核心范式,其本质是在冻结主干权重的前提下,通过低秩结构引入可学习增量参数,显著降低显存占用与训练成本。LoRA作为当前最主流的PEFT方法,以极小参数量(通常<0.1%)实现接近全量微调的效果,在LLM推理优化、边缘部署、快速迭代等工程场景中展现出强鲁棒性与高兼容性。它不改变原始模型结构,支持权重合并后无缝接入现有服务框架,特别适用于GPU预算紧张、业务需求高频变更、需灰度发布与AB测试的AI交付现场。本文聚焦LoRA的技术原理、配置权衡、QL

weixin_34353714的博客 458

XGBoost在工业场景中的不可替代性:稳健性、可解释性与工程落地

XGBoost作为一种基于梯度提升的决策树集成模型,其核心价值不在于理论新颖性,而在于对现实工业场景中数据噪声、小样本偏移、线上低延迟和业务可解释等多重约束的综合平衡。它通过二阶泰勒展开优化、内置缺失值处理、原生类别特征支持及SHAP高效归因等机制,在统计稳健性与计算确定性之间取得独特优势。相比LightGBM的直方图近似或深度学习对GPU与标准化的强依赖,XGBoost在CPU环境下的轻量部署、跨平台结果一致性及模型文件JSON化等能力,使其持续成为金融风控、供应链预测与IoT边缘推理等关键系统的主干模型

weixin_34414650的博客 362
上一篇: 2024.01.12 多层感知机和常见激活函数
下一篇: 2024.01.13 过拟合解决方案之暂退法(dropout)
cyber_security
博客等级 码龄7年 134粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值