interpolate

コマンドの解説

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

呼び出し形式

   interpolate [options] +[-] file1.probs +[-] file2.probs ...
file*.probs は,evallmの -probs オプションで出力されたものである.
    + file.probs
の形式で呼び出した場合は,その確率ファイルに対する最適値を 更新する.一方,
    +- file.probs
とした場合は,重みを初期値のまま更新しない.

interpolate は,重みの計算と評価について,次の3つの動作のどれかを 行う.

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

オプション

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

参照項目

evallm