CNTKの強化学習でFXトレードする(最終日)

とりあえず強化学習を試しましたが今回のこの結果では実戦投入は難しそうです。
今後、学習モデルや、報酬の与え方、使う情報を変えて試してみます。

しかし、機械学習関連の道具は凄く進んでいますね。強化学習も本当に簡単に使えるようになっています。
難しい理論的なことは理解していないですが、とりあえず感覚的な理解でもそれなりに利用できてしまいます。
機械学習的な筋の良さやテクニックは理論的に詳しいほうがいいんでしょうか、ビジネスシナリオに機械学習の技術を適用する上ではこの程度でも十分な気がします。
ガンガン活用していきたいですね。

あと最後に、学習したモデルをC#などで使いたい場合の話ですが、通常のCNTKのモデルとして読み込み利用できます。
観測した状態値を入力すると、アクションごとに数値が配列で帰ってくるので最大値のアクションを選択するようにすればOKです。

string modelFilePath = @"C:\cntk\Examples\save\stock.model";
modelFunc = Function.Load(modelFilePath, DeviceDescriptor.CPUDevice);
...
modelFunc.Evaluate(inputDataMap, outputDataMap, DeviceDescriptor.CPUDevice);
var result = outputDataMap[outputVars[0]];
//アクションごとに数値が配列で帰ってくるので最大値のアクションを選択
var resultdata = result.GetDenseData<float>(outputVars[0]); 

ヨコシマな野望は満たされませんでしたが、今年のやりたいことリストの1つは達成できました。