読者です 読者をやめる 読者になる 読者になる

sonoshouのまじめなブログ

情報系大学生からのウェブ見習い人生の記録

減衰関数

機会学習(データマイニング)をしていると、
各要素の距離に応じた重み付けを行うことがある。
今回は、この時に使われる減衰関数に焦点当てる。

このエントリーは、集合知プログラミング第8章を参照しています。

  1. 反比例関数
  2. 減法(引算)関数
  3. ガウス関数

これらの関数について説明する。
私の(下手くそな)図を参考にして欲しい。

反比例関数

反比例関数は高速であり、実装も簡単である。
また良い結果が得られるように、分子の値を変更して、調整することができる。
関数の特徴として、距離の近い要素の重みは非常に大きく、
距離が増すと急激に小さくなる。
この特徴は、望ましい場合もあるが、データのノイズに対して非常に敏感になってしまう。

減法(引算)関数

減法関数は定数から距離を引くという非常に単純な関数である。
減法関数は反比例関数と比較して、距離の近いアイテムに重みを与えすぎてしまうという
問題に対応している。
しかし、重みの落ち着く先が0であるために、距離が十分近いと見なされる要素しか
存在しなくなるという問題がある。

ガウス関数

ガウス関数は、反比例関数、減法関数と比較して複雑ではあるが、
これまで2つの問題点を見事に解消している。
ガウス関数の重みは距離が0のときに1となり、距離が増すに従って減少する。
しかし、減法関数とは異なり、完全に0とはならない。
非常に有用ではあるが、これまでの関数よりコードが複雑であり、
関数の評価もあまり速くないということには留意してほしい。