weixin_43546793 2019-08-24 01:10 采纳率: 20%
浏览 849

python深度学习中指数移动平均值的计算代码问题

最近在看《python深度学习》,其中3.6提到了用指数移动平均值来得到光滑的曲线:

def smooth_curve(points, factor=0.9):
  smoothed_points = []
  for point in points:
    if smoothed_points:
      previous = smoothed_points[-1]
      smoothed_points.append(previous * factor + point * (1 - factor))
    else:
      smoothed_points.append(point)
  return smoothed_points

smooth_mae_history = smooth_curve(average_mae_history[10:])

plt.plot(range(1, len(smooth_mae_history) + 1), smooth_mae_history)
plt.xlabel('Epochs')
plt.ylabel('Validation MAE')
plt.show()

百度了一下,指数移动平均值的计算公式应该是:

EMAtoday=α * Pricetoday + ( 1 - α ) * EMAyesterday;

如果按照这个公式,计算代码应为:

factor * point + (1 - factor) * previous

而非书中提到的:

previous * factor + point * (1 - factor)

想请教下,是书上错了还是我理解错了?还想请教下factor=0.9时怎么得出的?

  • 写回答

2条回答 默认 最新

  • JonathanYan 2019-08-24 10:38
    关注

    你提到的这两个算法是一样的啊,只不过其中一个的factor在另一个里是1-factor。
    0.9只不过是作者取得一个默认值,你要是想换可以自己改,没什么怎么得出的。
    没人会问你一天三顿饭的3是怎么得出的,让你列计算过程。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题