0
0

JavaScript: 圧縮とかLogistic Mixing

Posted at

Pi(1) を i 番目のmodelが予測する次のbitが 1 である確率とする。このとき、Logistic Mixingによる最終的な予測確率 P(1) は以下のように計算される。

  • xi = stretch(Pi(1))
  • P(1) = squash(Σi wi xi)

ここで

  • stretch(x) = ln(x/(1-x))
  • squash(x) = 1/(1+exp(-x)) (stretch の逆演算).

それぞれの予測の後、Dataを符号化する計算量を最小化するように重みが調整される。

  • wi ← wi + η xi (y-P(1))

ここでηは学習率(典型的な値は 0.002 から 0.01)、y は予測bit、(y-P(1))は誤予測。

実装

roadrollerというprogramにしっかりちゃっかりうっかり組み込まれております(sparse modelと組み合わせる)。その体験版で威力を堪能してみる事をおすすめします。
よそ様に丸投げする訳にもいかないので、私家版のようなものをしっかりちゃっかりうっかりcodepenに仕込んでみました。本家との大きな違いはrange coderを利用している点とfile処理にも対応している点。ただし圧縮文に復号噐は含まれない。

See the Pen Logistic Context Mixing compressor by xezz (@xezz) on CodePen.

その他の実装例

LPAQ5
LPAQ1

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0