2

グラフカーネルを使用して、異なるコンピュータープログラム間の類似度測定を実行する予定です。コンピューター プログラムのコンパイル中に、それらは、図に示すように、何らかの形式のグラフとして表され、制御フローが示されます。

制御フロー グラフ

この図は、「予測モデリングにグラフ ベースのプログラム特性を使用する」という論文から抜粋したものです。

私はグラフカーネルを使用するつもりであり、この目的のために、特徴ベクトル (特定の基本ブロックの特性) を含む各ノード (基本ブロック) でこれらのグラフをエンコード (フォーマット) する方法について助けを求めています。事前に計算された行列を計算するためのカーネル。

4

1 に答える 1

2

文字列やグラフなどの非数値オブジェクト用に定義されたカーネル関数は、主にこの構造のエンコードを回避するために導入されました。中心的なアイデアは、この例のように、非数値空間からオブジェクトのカーネル値を直接計算することです-グラフ。あなたの特定の例は、ラベル付き垂直グラフ(エッジにラベルなし)のインスタンスであるため、そのような構造にはグラフカーネルを単純に使用できます。グラフ カーネルの論文では、エッジ ラベル付け構造として紹介されていますが、エッジ ラベル付けから頂点ラベル付けへの変更は非常に自然です (他の論文では既に行われています)。v_iしたがって、残っているのは、特定の頂点との間の類似度の計算ですv_j。元の紙では、単純にマトリックスがありますW(特定のエッジラベルの「類似性」を表現する責任があります)したがって、頂点特徴ベクトル間のある種の類似性を同様に計算できます(数十の可能性があり、特定のものの選択はデータに大きく依存します。コサイン類似性、ハミング距離を試すことができます、MSE など) がありますが、核となる考え方は変わりません。最初に積グラフで使用する頂点間類似度行列を計算し、次に対応するグラフ カーネルをデータに適用します。単純な解決策ではありませんが、単純な (良い) 解決策は存在しないと思います。グラフ カーネルは、非常に複雑なオブジェクトを操作するための非常に若いオブジェクト (11 年前に導入された) です (特定の問題は、分類のための非常に複雑なオブジェクトの好例です)。心に留めておかなければならない、グラフでカーネル メソッドを使用すると計算コストが高くなるため、いくつかの単純なモデルを使用することをお勧めします (「生の」データ全体ではなく、グラフのいくつかの単純な機能を操作します)。

于 2013-09-18T14:45:59.297 に答える