当前位置: 首页 > news >正文

网站页面优化公告南京电商网站开发

网站页面优化公告,南京电商网站开发,外链网盘下载,哪家网站建设好1. 终身学习简介 神经网络的典型应用场景是,我们有一个固定的数据集,在其上训练并获得模型参数,然后将模型应用于特定任务而无需进一步更改模型参数。 然而,在许多实际工程应用中,常见的情况是系统可以不断地获取新数据,例如 Web 应用程序中的新用户数据或自动驾驶中的…

1. 终身学习简介

神经网络的典型应用场景是,我们有一个固定的数据集,在其上训练并获得模型参数,然后将模型应用于特定任务而无需进一步更改模型参数。

然而,在许多实际工程应用中,常见的情况是系统可以不断地获取新数据,例如 Web 应用程序中的新用户数据或自动驾驶中的新驾驶数据。 这些新数据需要被纳入训练集以增强模型的性能。 这被称为终身学习。

Life Long Learning (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/life_v2.pdf)

人工智能终身学习面临哪些挑战?似乎通过不断更新其数据和相应的网络参数就可以实现终身学习。然而,事实并非如此简单。一个关键障碍是灾难性遗忘。

如示例所示,在任务 1 上训练的神经网络达到了 90% 的准确率。在随后对任务 2 进行训练后,其在任务 2 上的性能提高到 97%。然而,该网络在原始任务 1 上的性能急剧下降至 80%。这表明学习新信息会导致网络“遗忘”先前学习的知识,阻碍其随着时间的推移积累知识的能力。

catastrophic forgetting (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/life_v2.pdf)

此外,这种遗忘并不是由于神经网络缺乏同时处理两个任务的能力。如附加图表所示,如果我们同时对两个任务进行训练(交替训练来自任务 1 和任务 2 的数据),它在两个任务上都达到了很高的准确率(任务 1 上为 89%,任务 2 上为 98%)。 这表明网络确实具有学习两个任务的能力;问题在于学习过程的顺序性,其中学习新任务会覆盖先前学习的知识。

network capacity (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/life_v2.pdf)

灾难性遗忘背后的核心问题在于不同任务之间的优化方向存在冲突。当神经网络在一个任务上进行训练时,它会调整其参数(用 θ 表示)以最小化该特定任务的损失函数。这个过程会找到一组对于该任务表现良好的最优参数( θ∗ )。然而,当网络随后在新的任务上进行训练时,它会再次调整其参数以最小化新任务的损失。这个新的优化过程通常会将参数从先前为原始任务找到的最优解中拉开,有效地“覆盖”了为第一个任务学习到的知识。当任务之间差异较大时,这种现象尤为明显。

why catastrophic forgetting (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/life_v2.pdf)

鉴于这一挑战,我们如何缓解灾难性遗忘?这篇综合综述论文概述了当前最先进的方法(截至 2024 年),将其分为五个关键方法。

A Comprehensive Survey of Continual Learning: Theory, Method and Application​icon-default.png?t=O83Ahttp://arxiv.org/abs/2302.00487

Continual Learning Method (source: https://arxiv.org/abs/2302.00487)

基于正则化的方法中一个值得注意的技术是选择性突触可塑性。“突触权重”表示神经元(节点)之间连接的强度,“可塑性”被用作对生物学概念神经可塑性的类比,后者描述了大脑改变神经元之间连接强度(突触权重)的能力。选择性可塑性是指神经网络期望具有的特性,即选择性地调节其整个结构中单个突触的可塑性。

Selective Synaptic Plasticity (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/life_v2.pdf)

如图所示,参数 b 控制着可塑性的水平。在一个极端情况下,当 b 等于 0 时,正则化项消失,有效地消除了对参数更新的任何约束。这种约束的缺失导致了灾难性遗忘,其中学习新任务完全覆盖了先前获得的知识。在另一个极端情况下,当 b 接近无穷大时,正则化变得无限强,阻止了对参数的任何重大更改。在这种情况下,模型变得“固执”,无法学习任何新东西,只能停留在其初始知识上。

how b affects the performance (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/life_v2.pdf)

所以,关键问题是如何计算这种“可塑性”?李宏毅教授在课程中推荐了以下论文:

Elastic Weight Consolidation (EWC) (弹性权重巩固 ):

Overcoming catastrophic forgetting in neural networksicon-default.png?t=O83Ahttp://​arxiv.org/abs/1612.00796

EWC 使用 Fisher 信息矩阵 (FFF) 来衡量每个权重的重要性,并在学习新任务时惩罚对关键权重的更改:

L_{\text{total}} = L_{\text{task}} + \frac{\lambda}{2} \sum_i F_i (\theta_i - \theta^*_{i})^2 \\

  • L_{\text{task}}​: 任务特定的损失

  • F_i : 权重 \theta_i 的 Fisher 信息

  • \theta^*_{i} ​: 来自先前任务的最优权重

  • \lambda: 正则化强度

F 的定义如下所示:

F = [ \nabla \log(p(y_n | x_n, \theta^{*})) \nabla \log(p(y_n | x_n, \theta^{*}))^T ] \\

我们仅取矩阵的对角线值来近似每个参数的 F_i .

相应的代码实现为:

# EWC
class ewc(object):"""@article{kirkpatrick2017overcoming,title={Overcoming catastrophic forgetting in neural networks},author={Kirkpatrick, James and Pascanu, Razvan and Rabinowitz, Neil and Veness, Joel and Desjardins, Guillaume and Rusu, Andrei A and Milan, Kieran and Quan, John and Ramalho, Tiago and Grabska-Barwinska, Agnieszka and others},journal={Proceedings of the national academy of sciences},year={2017},url={https://arxiv.org/abs/1612.00796}}"""def __init__(self, model, dataloader, device, prev_guards=[None]):self.model = modelself.dataloader = dataloaderself.device = device# extract all parameters in modelsself.params = {n: p for n, p in self.model.named_parameters() if p.requires_grad}# initialize parametersself.p_old = {}# save previous guardsself.previous_guards_list = prev_guards# generate Fisher (F) matrix for EWCself._precision_matrices = self._calculate_importance()# keep the old parameter in self.p_oldfor n, p in self.params.items():self.p_old[n] = p.clone().detach()def _calculate_importance(self):precision_matrices = {}# initialize Fisher (F) matrix(all fill zero)and add previous guardsfor n, p in self.params.items():precision_matrices[n] = p.clone().detach().fill_(0)for i in range(len(self.previous_guards_list)):if self.previous_guards_list[i]:precision_matrices[n] += self.previous_guards_list[i][n]self.model.eval()if self.dataloader is not None:number_data = len(self.dataloader)for data in self.dataloader:self.model.zero_grad()# get image datainput = data[0].to(self.device)# image data forward modeloutput = self.model(input)# Simply use groud truth label of dataset.label = data[1].to(self.device)# generate Fisher(F) matrix for EWCloss = F.nll_loss(F.log_softmax(output, dim=1), label)loss.backward()for n, p in self.model.named_parameters():# get the gradient of each parameter and square it, then average it in all validation set.precision_matrices[n].data += p.grad.data ** 2 / number_dataprecision_matrices = {n: p for n, p in precision_matrices.items()}return precision_matricesdef penalty(self, model: nn.Module):loss = 0for n, p in model.named_parameters():# generate the final regularization term by the ewc weight (self._precision_matrices[n]) and the square of weight difference ((p - self.p_old[n]) ** 2)._loss = self._precision_matrices[n] * (p - self.p_old[n]) ** 2loss += _loss.sum()return lossdef update(self, model):# do nothingreturn

Synaptic Intelligence (SI) (突触智能):

Continual Learning Through Synaptic Intelligenceicon-default.png?t=O83Ahttp://arxiv.org/abs/1703.04200

SI 通过计算参数 i 的重要权重 \Omega_i 来衡量其重要性,计算方法如下:

\Omega_i^{\text{new}} \leftarrow \Omega_i^{\text{old}} + \frac{W_i}{(\theta_i - \theta_i^*)^2 + \epsilon} \\

其中:

  • \Omega_i^{\text{new}} :参数 i 的更新重要权重

  • \Omega_i^{\text{old}}​:来自先前任务的重要权重

  • W_i​:累积梯度信息

  • \theta_i - \theta_i^* ​:任务期间的参数变化

  • \epsilon : 防止出现零除数的小正数常量

然后,正则化惩罚项 LSI 被计算为:

http://www.yayakq.cn/news/17599/

相关文章:

  • 中国建设局网站招聘山西网站建设免费
  • 在线动画手机网站模板下载素材下载网站模板
  • 企业网站建设规划可行性分析WordPress互联
  • 吴川网站建设云南省建设厅官方网站证书
  • 多个网站 备案企业官网定制
  • 秦皇岛市 网站建设名表网站
  • 电商 网站模板想做一个网站平台怎么做
  • 太原做网站多少钱在线看国内永久免费crm
  • 开展我国电子网站建设抖音广告投放代理商
  • 购物网站主页设计图网站分析报告怎么做
  • 用ps软件做ppt模板下载网站有哪些内容英文模板网站
  • 邯郸移动网站建设买房
  • 茶叶 企业 网站建设网站升级维护中 模板
  • 义乌商城集团的网站建设食药监局网站建设方案
  • 昆明网站服务平面设计工作室创业计划书
  • 合肥哪个公司做网站好艺术品展览公司网站建设
  • 大视觉网站建设网站流量图怎么做
  • 网站 代理 备案 费用带佣金的旅游推广平台有哪些
  • 建设网站的费用明细大概有哪些在北京注册个公司要多少钱
  • wordpress admin-ajax.php远程sql注入漏洞中山seo
  • 维护网站的职位叫什么传统营销与网络营销的整合方法
  • 有没有做牛羊角的网站wordpress 插件 ftp
  • 百度小程序可以根据网站的要求做吗福田区网络建设
  • 网站域名绑定ip平面设计主要做什么工作内容
  • 合肥响应式网站开发方案东营做网站多少钱
  • 网站开发和有了域名 建设自己的网站
  • 电子商务网站开发问题研究品牌建设理论包括哪些内容
  • 如何自己做优惠卷网站wordpress标签文档
  • 建站网站那个好南京网站制作希丁哥
  • 怎么查看网站是什么软件做的网站开发作业代做