GoogleのTensorFlowのチームが今日(米国時間10/11)、デベロッパーが使用する機械学習のモデルが、訓練データにノイズがあった場合でもグローバルなトレンドに合っているようにするためのツールTensorFlow Latticeをリリースした。Latticeはルックアップテーブルのようなもので、それにより、モデルを制約するマクロのルールを定義する過程を単純化する〔単なる表で表す〕。
ルックアップテーブル(lookup table, 参照表)は、データの入力(キー, 鍵)と出力(ヴァリュー, 値)を対照させたデータ表現だ。一つのキーに一つのヴァリューが対応している形がいちばん理解しやすいが、複雑な多次元のファンクションではキーが複数になることもある。TensorFlowのチームのアプローチは、訓練データを使ってルックアップテーブルのヴァリューを訓練し、一定の制約下で精度を最大化するものだ。
このやり方にはいくつかの利点がある。まずそれは上述のように、単調関係(monotonic relationship)を定義しやすい。もっとふつうの言葉で言えば、入力がある方向に動けば出力も同じ方向に動く、というデータ間の単調な関係をデベロッパーに保証する。
チームは、車と交通量の例を挙げている。車が増えれば交通量も増える、という単調関係。このような状況では、単調性がルックアップテーブルのパラメータの制約として表現される。これらの制約は、事前の知識を利用して出力(結果)を改良する。モデルが、ユニークだけれども前と似た問題に適用されるときには、とくにそれができる。
さらにまた、高価な計算に頼るよりも単純な参照表を使った方が効率的な場合があり、そのときは一つ一つの入力/出力ペアをいちいち計算するよりも推定(補完)で間に合う。それにラティステーブル(格子表)は、従来の方法に比べて、デベロッパーにとっての透明性が増す。
TensorFlowは、デベロッパーがラティステーブルを使ってさまざまな問題を解くときのために、4種類の推定ファンクションを提供している。さらに詳しい情報は、GitHub上にある。