微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TFF : 测试精度波动

如何解决TFF : 测试精度波动

我用 TFF 训练了一个 resnet50 模型,我用测试数据上的测试精度进行评估,但我发现如下图所示的很多波动,请问我如何避免这种波动?

enter image description here

解决方法

我想说这样的行为通常是随机优化所期望的。固有的差异会导致您在某个好的解决方案附近振荡。在查看准确度指标时,优化目标的方差大小和属性控制着它的波动程度。

对于普通 SGD,降低学习率会降低方差并减慢收敛速度。

对于联邦学习的优化方法,故事有点复杂,但是降低客户端学习率,或者减少局部步骤的数量(同时保持其他东西不变)可以有一个类似的效果,通常包括减缓收敛。可以在另一个答案中提到的 https://arxiv.org/abs/2007.00878 中找到更多详细信息。潜在地降低跨轮的客户端学习率也可能起作用。详细信息也可能因您所使用的优化方法而有所不同。

,

测试准确率是如何计算的?客户培训了多少个本地 epoch?

如果在一组保留的示例上测试全局模型,则客户端可能会在本地训练期间出现不利的过度拟合。随着全局模型趋于收敛,每个客户端最终都会训练出一个对他们各自适用的模型,但可能会偏离最佳全局模型(有时称为客户端漂移https://arxiv.org/abs/1910.06378)。这可能发生在客户端本地数据集的分布与全局分布非常不同的情况下,并且更有可能发生在客户端学习率较高 (https://arxiv.org/abs/2007.00878) 的情况下。

降低客户端学习率、减少步骤/批次数以及其他导致客户端在每轮通信中做更少“工作”的方法可能会减少波动。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?