knagai得られた勾配は、ゲームの全ステップ(内側のforループ)で一度記録し、1ゲームの終了後、外側のforループで、ゲームごとに記録します。報酬は、ゲームの全ステップでゲームがつづいている間は配列に1を追加しゲームが終わると0を追加する、という方法で組み込みます。1ゲームの終了後、外側のforループで、総合計を計算して記録します。下記リンクをクリックすると、サンプルの実行例を見ることができます。勾配と報酬の記録を実行する例このサンプルでは、次のコードを使用しています。gradientsには、Objectのほか、この方法でデータを保持する配列も指定できる。変数keyに、異なるプロパティ名を代入する処理を繰り返す。ゲーム中の勾配を記録する配列。勾配データは要素としてでなく、配列のプロパティの値として記録する。配列gameGradientsに、gradientsが持つ重みパラメータを記録する。ステップの最大数に達する前にゲームが終わったら、0の報酬が与えられる。ゲームが終わらない限り、各ステップは1の報酬につながる。これらの報酬値は、ゲームがより長くつづく、より高い報酬値につながるように、後で"割引かれ"る。[1,1,1,..0]なので、その長さがそのまま報酬の合計になる。false);ここで使用されているpushGradients(record,gradients)関数は、おそらく内側と外側のforループ両方で同じ関数を使って処理することを目的として、配列に要素を追加するという本来の機能を使わず、配列にプロパティを付加してそれに値を割り当てるという、かなりテクニカルな手法が取られています。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。WAAPIに関する注意WAAPIを利用するにはブラウザに特別な設定が必要です。ブラウザの実験的な機能を有効化する方法に書いているので、必ずお読みください。楕円(円)、円弧を描く。APIやTensorFlow.jsについて調べたことを書いています。freebiescafe.com。