Palmkit reference --- interpolate ---

# interpolate

## コマンドの解説

複数のモデルから出力された確率を使い，それらのモデルを 線形補間したときの最適な重みを計算する．

## 呼び出し形式

       interpolate [options] +[-] file1.probs +[-] file2.probs ...

file*.probs は，evallmの -probs オプションで出力されたものである．

        + file.probs

の形式で呼び出した場合は，その確率ファイルに対する最適値を 更新する．一方，

        +- file.probs

とした場合は，重みを初期値のまま更新しない．

interpolate は，重みの計算と評価について，次の３つの動作のどれかを 行う．

1. 与えられた確率すべてを使って重みを計算し，同じセットに対して パープレキシティを計算する．(-test_all オプション，または無指定)
2. 与えられた確率の一部から重みを計算し，残りについて パープレキシティを計算する．(-test_first, -test_last オプション) -test_first ではデータ前半の指定された個数をテストに用い， 残りから重みを推定する．-test_last ではデータ後半の指定された 個数をテストに用い，残りから重みを推定する．
3. 与えられた確率の半分から重みを計算し，残りの半分で パープレキシティの計算をして，これを交互に行う．(-cv オプション)

何も指定しなければ，1の動作を行う．

## オプション

-test_all/-test_first 数/-test_last 数/-cv
  上記の動作を切り替える．
-stop_ratio 比率
  収束判定のための閾値を指定する．連続する２回のパープレキシティの比率が ここでの指定を超えた場合に，繰り返しを停止する．デフォルトは0.999．
-tags タグファイル
  一つの確率ストリームから複数の重みの組を計算するためのタグを指定する． これにより，たとえばクラスモデルと単語モデルを組み合わせる重みを クラスごとに変えることが可能になる．重みの組の数をNとすると，タグは 0〜N-1の整数で表わされる．タグファイルは，確率ファイルと同じ行数のファイル であり，確率ファイルでのそれぞれの確率がどのタグにあたるかの対応を 記述する．
-captions ファイル
  タグに名前を付けるために使用する．このファイルはタグの種類分の行を持ち， それぞれの行にはタグの短い説明を記述する．このファイルは，interpolate の出力をわかりやすくするために使われる．
-in_lambdas 初期値ファイル
  重みの初期値を記述したファイルを指定する． ここでの初期値は，

          タグ０のモデル０　タグ０のモデル１ ....
          タグ１のモデル０　タグ１のモデル１ ....
          タグ２のモデル０　タグ１のモデル１ ....

  のように指定する．
-out_lambdas ファイル
  計算された重みを，ファイルに書きこむ．
-probs ファイル
  計算された重みを使ってモデルを評価したときに，個々の確率を ファイルに書きこむ．
-max_probs 個数
  入力する確率の個数の最大値を指定する．デフォルトは600000．

## 参照項目

evallm