您的位置:首页 > 新闻 > 热点要闻 > 文化传媒公司_如何开网店不用自己发货_品牌网络营销策划书_推广渠道平台

文化传媒公司_如何开网店不用自己发货_品牌网络营销策划书_推广渠道平台

2025/2/26 15:05:04 来源:https://blog.csdn.net/qq_37148940/article/details/145791216  浏览:    关键词:文化传媒公司_如何开网店不用自己发货_品牌网络营销策划书_推广渠道平台
文化传媒公司_如何开网店不用自己发货_品牌网络营销策划书_推广渠道平台

神经网络防"失忆"秘籍:弹性权重固化如何让AI学会"温故知新"

“就像学霸给重点笔记贴荧光标签,EWC给重要神经网络参数上锁”


一、核心公式对比表

公式名称数学表达式通俗解释类比场景文献
EWC主公式 L t o t a l = L n e w + λ 2 ∑ i F i ( θ i − θ o l d , i ) 2 L_{total} = L_{new} + \frac{\lambda}{2} \sum_i F_i (\theta_i - \theta_{old,i})^2 Ltotal=Lnew+2λiFi(θiθold,i)2给重要知识上锁给重点笔记贴荧光标签
贝叶斯推导式 log ⁡ p ( θ ∣ D ) ∝ log ⁡ p ( D B ∣ θ ) + log ⁡ p ( θ ∣ D A ) \log p(\theta|D) \propto \log p(D_B|\theta) + \log p(\theta|D_A) logp(θD)logp(DBθ)+logp(θDA)新旧知识平衡法则考试前既复习新题也温习旧题
费舍尔信息矩阵 F i = E [ ∇ θ 2 log ⁡ p ( y ∣ x , θ ) ] F_i = \mathbb{E}[\nabla_\theta^2 \log p(y|x,\theta)] Fi=E[θ2logp(yx,θ)]知识重要度评分卡根据笔记划重点的频率标记

二、公式详解与类比解释

公式1:EWC核心保护机制

L t o t a l = L n e w ( θ ) ⏟ 新任务 + λ 2 ∑ i F i ( θ i − θ o l d , i ) 2 ⏟ 旧知识防护罩 L_{total} = \underbrace{L_{new}(\theta)}_{\text{新任务}} + \underbrace{\frac{\lambda}{2} \sum_i F_i (\theta_i - \theta_{old,i})^2}_{\text{旧知识防护罩}} Ltotal=新任务 Lnew(θ)+旧知识防护罩 2λiFi(θiθold,i)2

参数数学符号类比解释作用原理
旧任务参数 θ o l d \theta_{old} θold学霸的旧笔记本知识基准锚点
重要性系数 F i F_i Fi荧光标签密度参数重要性量化
约束强度 λ \lambda λ胶水粘性系数平衡新旧知识权重

案例:在图像分类任务中,给识别"猫耳朵"的关键神经元增加3倍保护权重


公式2:费舍尔信息矩阵计算

F i = 1 N ∑ x , y ( ∂ log ⁡ p ( y ∥ x , θ ) ∂ θ i ) 2 F_i = \frac{1}{N} \sum_{x,y} \left( \frac{\partial \log p(y\|x,\theta)}{\partial \theta_i} \right)^2 Fi=N1x,y(θilogp(yx,θ))2
变量解读

  • x x x:输入数据(学生的练习题)
  • y y y:标签答案(标准答案)
  • log ⁡ p ( y ∥ x , θ ) \log p(y\|x,\theta) logp(yx,θ):答案正确率评分

类比解释

如同统计学生复习时翻看某页笔记的次数,翻看越频繁的页面(参数)获得越多荧光标签(高F值)


三、公式体系演进(关键推导步骤)

1. 贝叶斯推导路径

  1. 初始目标
    max ⁡ θ log ⁡ p ( θ ∥ D A , D B ) \max_\theta \log p(\theta\|D_A, D_B) θmaxlogp(θDA,DB)
  2. 任务分解
    ∝ log ⁡ p ( D B ∥ θ ) + log ⁡ p ( θ ∥ D A ) \propto \log p(D_B\|\theta) + \log p(\theta\|D_A) logp(DBθ)+logp(θDA)
  3. 拉普拉斯近似
    log ⁡ p ( θ ∥ D A ) ≈ − 1 2 ∑ i F i ( θ i − θ o l d , i ) 2 \log p(\theta\|D_A) \approx -\frac{1}{2} \sum_i F_i (\theta_i - \theta_{old,i})^2 logp(θDA)21iFi(θiθold,i)2

2. 方法对比

方法核心公式优势局限
L2正则 L = L n e w + λ ∣ θ − θ o l d ∣ 2 L = L_{new} + \lambda |\theta - \theta_{old}|^2 L=Lnew+λθθold2简单易实现无差别保护所有参数
EWC L = L n e w + λ 2 ∑ F i ( θ i − θ o l d , i ) 2 L = L_{new} + \frac{\lambda}{2} \sum F_i(\theta_i - \theta_{old,i})^2 L=Lnew+2λFi(θiθold,i)2智能参数保护需计算二阶导数
LwF L = L n e w + α D K L ( p o l d ∣ p n e w ) L = L_{new} + \alpha D_{KL}(p_{old}|p_{new}) L=Lnew+αDKL(poldpnew)保持输出分布稳定依赖旧模型推理

四、代码实战:MNIST/FashionMNIST增量学习

import torch
import torch.nn as nnclass EWC_CNN(nn.Module):def __init__(self):super().__init__()self.conv = nn.Sequential(nn.Conv2d(1,32,3), nn.ReLU(),nn.MaxPool2d(2))self.fc = nn.Linear(32*13*13,10)def forward(self, x):x = self.conv(x)return self.fc(x.view(x.size(0),-1))# EWC核心实现
class EWC_Regularizer:def __init__(self, model, dataloader, device):self.model = modelself.params = {n:p.detach().clone() for n,p in model.named_parameters()}  # 旧参数快照self.fisher = {}# 计算Fisher信息矩阵for batch in dataloader:inputs, labels = batchoutputs = model(inputs.to(device))loss = nn.CrossEntropyLoss()(outputs, labels.to(device))loss.backward()for n,p in model.named_parameters():if p.grad is not None:self.fisher[n] = p.grad.data.pow(2).mean()  # 梯度平方均值def penalty(self, current_params):loss = 0for n,p in current_params.items():loss += (self.fisher[n] * (p - self.params[n]).pow(2)).sum()return loss# 训练流程示例
device = torch.device('cuda')
model = EWC_CNN().to(device)
old_task_loader = ...  # 旧任务数据加载器
new_task_loader = ...  # 新任务数据加载器# 第一阶段:训练旧任务
optimizer = torch.optim.Adam(model.parameters())
for epoch in range(10):for batch in old_task_loader:# 常规训练流程...# 第二阶段:计算EWC约束
ewc = EWC_Regularizer(model, old_task_loader, device)# 第三阶段:增量学习新任务
for epoch in range(10):for batch in new_task_loader:inputs, labels = batchoutputs = model(inputs.to(device))ce_loss = nn.CrossEntropyLoss()(outputs, labels.to(device))ewc_loss = ewc.penalty(dict(model.named_parameters()))total_loss = ce_loss + 1000 * ewc_loss  # λ=1000optimizer.zero_grad()total_loss.backward()optimizer.step()

五、可视化解析

1. 参数空间分布

import matplotlib.pyplot as plt
import seaborn as sns# 生成模拟数据
theta_old = np.random.normal(0,1,1000)  # 旧任务参数分布
theta_new = np.random.normal(3,1,1000)  # 新任务参数分布
theta_ewc = 0.3*theta_old + 0.7*theta_new  # EWC约束参数# 可视化
plt.figure(figsize=(12,6))
sns.kdeplot(theta_old, label="Old Task", color='grey', linewidth=3)
sns.kdeplot(theta_new, label="New Task", color='gold', linewidth=3)
sns.kdeplot(theta_ewc, label="EWC Compromise", color='red', linestyle='--')
plt.title("Parameter Space Distribution")
plt.xlabel("Parameter Value"), plt.ylabel("Density")
plt.legend()
plt.show()

六、技术演进路线

阶段代表方法关键突破局限
1.0参数冻结物理隔离旧知识丧失模型扩展能力
2.0L2正则简单约束参数漂移无差别保护所有参数
3.0EWC智能参数重要性加权计算二阶导数开销大
4.0动态网络独立适配器模块模型体积膨胀

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com