`
RednaxelaFX
  • 浏览: 3017114 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

HotSpotのAbsSeqの減衰について

阅读更多
authorNariさんAbsSeqの「減衰」の話をしましたが、decaying averageとaverageの関係についてはまだちょっと曖昧だと気がします。

グラフ生成のスクリプトをちょっといじったら:
# Ruby 1.9が必須
abs = []
total = 0.0

100.times do |i; davg|
  val = sprintf("%.2f", rand).to_f
  unless davg
    davg, dvar = val, 0.0
  else
    davg = (1.0 - 0.7) * val + 0.7 * davg
    diff = val - davg
    dvar = (1.0 - 0.7) * (diff * diff) + 0.7 * dvar
  end
  abs << val
  total += val
  puts "#{val},#{davg},#{dvar},#{total / (i + 1)}"
end
p (abs.inject(0.0, &:+) / abs.size)

こんなグラフが出てます:


普通の平均値(average)より、decaying averageのほうが新たに突っ込んでくるデータ(value)に影響されやすいと判明できます。したがって、averageは全体の平均状態を表現しますが、decaying averageのほうが「最近」の平均状態をより精確に表現してます。

でも、何でこうなるんでしょうか?
たとえば、突っ込んでく数値は全部1とします。それで、averageもdecaying averageもつねに1となります。ですが、この「1」の中の構成はまったく違います:

average:


decaying average:


averageでは、古い値がどんどん積んで、新しく突っ込んでくる数値がだんだん平均値に影響しにくくなります。一方、decaying averageでは、新しい数値の「加重値」がつねにとある数値(例えばHotSpotのAbsSeq::_alpha)にしており、過去の状態にかかわらず影響を与えられます;言い換えてみれば、普通の平均値と比べ、過去のデータの影響力が「減衰」しつつあります。
  • 大小: 160.7 KB
  • 大小: 41.2 KB
  • 大小: 40.6 KB
分享到:
评论
5 楼 jiasky 2011-03-16  
RednaxelaFX 写道
IcyFenix 写道
我是相当佩服你的语言天赋。英文和日文。

不是我谦虚但我的日语还很烂…这篇也是写得很糟,太硬,而且用词跟期望的语气对不上的地方不少。暂时只有这水平,勉强能达到让人理解我在说什么的目的。
先前请教了几个朋友,有空的时候再修正一下…T T

还有ruby和java
4 楼 RednaxelaFX 2010-12-19  
IcyFenix 写道
我是相当佩服你的语言天赋。英文和日文。

不是我谦虚但我的日语还很烂…这篇也是写得很糟,太硬,而且用词跟期望的语气对不上的地方不少。暂时只有这水平,勉强能达到让人理解我在说什么的目的。
先前请教了几个朋友,有空的时候再修正一下…T T
3 楼 IcyFenix 2010-12-17  
我是相当佩服你的语言天赋。英文和日文。
2 楼 RednaxelaFX 2010-11-28  
lwwin 写道
似乎没有打算放中文说明^-^

中文版也有在写,不过会带上别的一些内容所以不会那么快出来
1 楼 lwwin 2010-11-28  
似乎没有打算放中文说明^-^

相关推荐

Global site tag (gtag.js) - Google Analytics