に投稿 コメントを残す

jojonki/Pointer-Networks

Pointer-Networks,Meire Fortunato,Navdeep Jaitly.
https://arxiv.org/abs/1506.03134

ポインタネットワークは,入力シーケンス内の位置に対応する離散トークンである要素を持つ出力シーケンスの条件付き確率を学習するための新しいニューラルアーキテクチャである。

このレポでは、Pointer Networksモデルの二つの例を入れました。

シーケンスモデル

シーケンスモデルでは、出力の長さは入力の長さと同じです。 私はタスクをソートするおもちゃのタスクを置きます。 出力は、入力のソートされたインデックスです。 次の例を参照してください。

// An example// Input : // Output: $ python sequence_train.pyepoch: 0, Loss: 0.99817Acc: 0.57% (51/9000)epoch: 2, Loss: 0.00077Acc: 100.00% (9000/9000)epoch: 4, Loss: 0.00032Acc: 99.99% (8999/9000)----Test result---Acc: 100.00% (1000/1000)

境界モデル

境界モデルでは、出力は(start_index, end_index)のようなタプルです。 私は次の境界おもちゃのタスクを取り上げました。 このサイトを参照してください。

おもちゃの問題についていくつかのコードを試してみましょう。 ポインタネットワークは、再発性に敏感なデータシーケンスに最も関連性が高いので、作成します。 入力データが未知の長さの0から10の間の整数のシーケンス(重複の可能性があります)であると仮定します。 各シーケンスは常に低い整数(1から5の間のランダムな値)で始まり、高い整数(6から10の間のランダムな値)の実行を持ち、再びローになり(1から5)終了したとえば、シーケンスは”4,1,2,3,1,1,6,9,10,8,6,3,1,1″であり、高い整数の実行は太字で、低い整数の実行で囲まれています。 シーケンスの長さに関係なく、中間の高値の実行の開始と終了—私たちは、これらの二つの変化点を指すことができるネットワークを訓練したいです。

// An example// Input : // Output: $ python boundary_train.pyepoch: 0, Loss: 0.28288accAcc: 98.79% (8891/9000)epoch: 2, Loss: 0.00291accAcc: 99.96% (8996/9000)epoch: 4, Loss: 0.00091accAcc: 100.00% (9000/9000)----Test result---Acc: 100.00% (1000/1000)

コメントを残す

メールアドレスが公開されることはありません。