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

做网站需要买主机那网站制作的重要流程图

做网站需要买主机那,网站制作的重要流程图,东莞小程序开发制作,如何做网络营销方案策划在深度学习中#xff0c;权重衰减#xff08;Weight Decay#xff09;是一种常用的正则化技术#xff0c;旨在减少模型的过拟合现象。权重衰减通过向损失函数添加一个正则化项#xff0c;以惩罚模型中较大的权重值。 一、权重衰减 在深度学习中#xff0c;模型的训练过程…       在深度学习中权重衰减Weight Decay是一种常用的正则化技术旨在减少模型的过拟合现象。权重衰减通过向损失函数添加一个正则化项以惩罚模型中较大的权重值。 一、权重衰减 在深度学习中模型的训练过程通常使用梯度下降法或其变种来最小化损失函数。梯度下降法的目标是找到损失函数的局部最小值使得模型的预测能力最好。然而当模型的参数即权重过多或过大时容易导致过拟合问题即模型在训练集上表现很好但在测试集上表现较差。 权重衰减通过在损失函数中引入正则化项来解决过拟合问题。正则化项通常使用L1范数或L2范数来度量模型的复杂度。L2范数正则化也称为权重衰减是指将模型的权重的平方和添加到损失函数中乘以一个较小的正则化参数。这个额外的项迫使模型学习到较小的权重值从而减少模型的复杂度。 具体而言对于一个深度学习模型的损失函数其中表示模型的参数权重和偏置权重衰减可以通过以下方式实现 其中是添加了权重衰减的损失函数表示参数的L2范数的平方和是正则化参数用于控制正则化项的重要性。 在训练过程中梯度下降法将同时更新损失函数和权重。当计算梯度时权重衰衰减的正则化项将被添加到梯度中从而导致权重更新的幅度减小。这使得模型的权重趋向于减小避免过拟合现象。 需要注意的是正则化参数的选择对模型的性能有重要影响。较小的值会导致较强的正则化效果可能会使模型欠拟合。而较大的值可能会减少正则化效果使模型过拟合。因此选择合适的正则化参数是权衡模型复杂度和泛化能力的关键。 偏置biases在神经网络中起到平移激活函数的作用通常不会像权重那样导致过度拟合。偏置的主要作用是调整激活函数的位置使其更好地对应所需的输出。由于偏置的影响较小因此将权重衰减应用于偏置通常不是常见的做法。 二、权重衰减数学解释 L2范数正则化在解决过拟合问题方面具有一定的效果这是因为它在损失函数中引入了权重的平方和作为正则化项。下面我将解释一下L2范数正则化的数学原理。 在深度学习中我们的目标是最小化损失函数该函数包括两部分经验误差和正则化项。对于L2范数正则化我们将正则化项定义为权重的平方和的乘以一个正则化参数。 针对损失函数我们使用梯度下降法来最小化这个损失函数。在梯度下降的每一步中我们计算损失函数的梯度然后更新权重。对于L2范数正则化梯度的计算中包含了正则化项的贡献。 具体来说我们计算损失函数对权重w的梯度记为。那么加入L2范数正则化后的梯度可以写为 这里是正则化项的梯度贡献其中是正则化参数的倍数是权重的梯度。 当我们使用梯度下降法更新权重时梯度的负方向指示了损失函数下降的方向。由于L2范数正则化项的存在权重的梯度会受到惩罚从而导致权重的更新幅度减小。 这种减小权重更新幅度的效果使得模型倾向于学习到较小的权重值从而降低了模型的复杂度。通过减小权重的幅度L2范数正则化可以有效地控制模型的过拟合提高模型的泛化能力。 总结起来L2范数正则化通过引入权重的平方和作为正则化项在梯度计算和权重更新中对权重进行惩罚从而减小了模型的复杂度防止过拟合现象的发生。 也可以参考李沐老师的课件 三、代码从零开始实现 import torch from torch import nn from d2l import torch as d2l 1、生成数据 首先我们像以前一样生成一些数据生成公式如下 我们选择标签是关于输入的线性函数。标签同时被均值为0标准差为0.01高斯噪声破坏。为了使过拟合的效果更加明显我们可以将问题的维数增加到w的长度为200并使用一个只包含20个样本的小训练集。 n_train, n_test, num_inputs, batch_size 20, 100, 200, 5 # 训练集长度为20、验证机长度为100、权重参数有200个、批量大小为5 true_w, true_b torch.ones((num_inputs, 1)) * 0.01, 0.05 # 真实的权重和偏置 train_data d2l.synthetic_data(true_w, true_b, n_train) train_iter d2l.load_array(train_data, batch_size) test_data d2l.synthetic_data(true_w, true_b, n_test) test_iter d2l.load_array(test_data, batch_size, is_trainFalse) 2、初始化模型参数 我们将定义一个函数来随机初始化模型参数。 def init_params():w torch.normal(0, 1, size(num_inputs, 1), requires_gradTrue)b torch.zeros(1, requires_gradTrue)return [w, b] 3、定义L2范数惩罚 实现这一惩罚最方便的方法是对所有项求平方后并将它们求和。 def l2_penalty(w):return torch.sum(w.pow(2)) / 2 4、定义训练代码实现 下面的代码将模型拟合训练数据集并在测试数据集上进行评估。和之前线性回归一样线性网络和平方损失没有变化所以我们通过d2l.linreg和d2l.squared_loss导入它们。唯一的变化是损失现在包括了惩罚项。 def train(lambd):w, b init_params()net, loss lambda X: d2l.linreg(X, w, b), d2l.squared_lossnum_epochs, lr 100, 0.003animator d2l.Animator(xlabelepochs, ylabelloss, yscalelog,xlim[5, num_epochs], legend[train, test])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()d2l.sgd([w, b], lr, batch_size)if (epoch 1) % 5 0:animator.add(epoch 1, (d2l.evaluate_loss(net, train_iter, loss),d2l.evaluate_loss(net, test_iter, loss)))print(w的L2范数是, torch.norm(w).item()) 5、忽略正则化直接训练 我们现在用lambd 0禁用权重衰减后运行这个代码。注意这里训练误差有了减少但测试误差没有减少这意味着出现了严重的过拟合。 train(lambd0) w的L2范数是 12.963241577148438 6、使用权重衰减 下面我们使用权重衰减来运行代码。注意在这里训练误差增大但测试误差减小。这正是我们期望从正则化中得到的效果。 train(lambd3) w的L2范数是 0.3556520938873291 四、简洁实现 由于权重衰减在神经网络优化中很常用深度学习框架为了便于我们使用权重衰减将权重衰减集成到优化算法中以便与任何损失函数结合使用。此外这种集成还有计算上的好处允许在不增加任何额外的计算开销的情况下向算法中添加权重衰减。由于更新的权重衰减部分仅依赖于每个参数的当前值因此优化器必须至少接触每个参数一次。 1、定义训练代码实现 在下面的代码中我们在实例化优化器时直接通过weight_decay指定weight decay超参数。默认情况下PyTorch同时衰减权重和偏移。这里我们只为权重设置了weight_decay所以偏置参数不会衰减。 def train_concise(wd):net nn.Sequential(nn.Linear(num_inputs, 1))for param in net.parameters():param.data.normal_()loss nn.MSELoss(reductionnone)num_epochs, lr 100, 0.003# 偏置参数没有衰减trainer torch.optim.SGD([{params:net[0].weight,weight_decay: wd}, {params:net[0].bias}],lrlr)animator d2l.Animator(xlabelepochs, ylabelloss, yscalelog,xlim[5, num_epochs], legend[train, test])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) % 5 0:animator.add(epoch 1,(d2l.evaluate_loss(net, train_iter, loss),d2l.evaluate_loss(net, test_iter, loss)))print(w的L2范数, net[0].weight.norm().item()) 2、忽略正则化直接训练 train_concise(0) w的L2范数 13.727912902832031 3、使用权重衰减 train_concise(3) w的L2范数 0.3890590965747833
http://www.yutouwan.com/news/500331/

相关文章:

  • 浙江城乡住房建设厅网站宁波公司网站建设
  • 唐山专门做网站二类电商平台都有哪些
  • 网站建设网站推广服务公司wordpress获取当前分类名
  • 襄阳网站建设关于飞鱼好的建设网站公司简介
  • asp医院网站源码服务器在国外的网站
  • 公司建立网站的必要性wordpress生成ios app
  • c2c交易平台官方网站网页设计图片怎么居中
  • 网站建设管理员角色设置app程序开发制作公司
  • 溧阳网站建设价格vue和react可以做pc网站吗
  • 网站如何做谷歌推广吃什么补肾阳虚
  • 爱站关键词挖掘old用二级域名做的网站算新站吗
  • 东莞网站建设优化企业企业网站的综合要求
  • 临沂网站推广排名qq电脑版登录入口
  • 莱州网站建设多说 wordpress
  • 国外超酷网站app定制开发收费
  • 怎么做网站评估网站结构设计
  • 手机版网站个人网站名
  • 东莞网站开发公司哪家好最新新闻热点事件2022年9月
  • 笔记本怎么建设网站游戏搬砖工作室加盟平台
  • 网站首页图片怎么更换在线做印章的网站
  • 靖江网站建设制作男女做那个是的视频网站
  • 建设部监理网站官网英文网站网站建设
  • 网站制作 语言选择怎么做唐山市网站建设
  • 郑州企业建站设计在线观看免费网站
  • 新余建网站成都学校网站建设公司
  • 新建的网站 找不到了用wordpress建公司网站步骤
  • tomcat做静态网站广东省安全教育平台入口登录
  • 做个公司网站要多少钱关键词百度指数查询
  • 关注济南网站建设无锡seo推广优化
  • 响应式网站建设过时吗平阳网站制作