トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 531

 
エリブラリウス

Rの専門家に質問です。

絶対値を 持つ行列をソフトマックスクラスの行列に変換するにはどうしたらよいですか?

apply(matr, 1, function (rowvec) { result <- rep(0, length(rowvec)); result[which.max(rowvec)] <- 1; result } )

また,行列の次元数に応じて,必要に応じて転置する。

 
マキシム・ドミトリエフスキー

あ、そうか、まだライブラリがないんだ・・・自分で書けないんだ )


ニューロネットを貸してくれるように頼んで、うまくいったら、%で返そうかな :)

ちなみに、少なくともメディエーターを追加したことで、少しはオリジナルに近づいたようですが、私の理解では、新しいシナプスが勝手に形成されて再構築されることはないので、まだAIとは言えませんが............。

 
マキシム・ドミトリエフスキー

彼らに「ニューラルネットワークを貸してください」と手紙を書いて、もしうまくいったら利子をつけて返そうと思っています :)

単純なMLPで解法の進歩がなければ、複雑なNSでも進歩はないだろうと思うのです。それに、MLPをより複雑なNSに置き換えたとしても、その結果が何らかの形で改善されるとは到底思えません。なぜなら、異なるツールには、異なる処理、異なる問題の定式化が必要だからです。

今のところ、私はシンプルなMLPや古くからあるBPベースの学習アルゴリズムにこだわって、本当に必要なものが出てくるかどうかを見極めようと思っています。

 
匿名

を計算し,行列の次元数に応じて必要な転置を行う。

わー、だいぶ短くなったー。ありがとうございます。

ちょっと変えて、古い行列からコピーして新しい行列を作っているので、列名と行名は残っています。その方が、さらに使う必要がある場合に備えて、より普遍的なのです。そして、私はすぐにマトリックスを反転させる。私の理解では、apply(x,1,f) は常に! データを一行ずつ処理して列にまとめるので、行列を反転させることができます。

get_softmax <- function(m){
    t(apply(m, 1, function (row) {r <- row;  r [1:length(row)] <-0 ; r[which.max(row)] <- 1;  r } ))
}

 
ユーリイ・アサウレンコ

単純なMLPで解のずれがなければ、複雑なNSでもずれることはないと思います。また、MLPをより複雑なNSに置き換えたとしても、その結果が何らかの形で改善されるとは到底思えません。なぜなら、異なるツールには、異なる処理、異なる問題の定式化が必要だからです。

今のところ、私はシンプルなMLPと古代、BP、学習アルゴリズムにこだわり、本当に必要なものが出てくるかどうかを見極めるつもりです。


私は、すべてが高速でカウントされ、多くの戦略を試すことができるのが好きです。

もっと生産性の高いアナログがあればそちらに乗り換えるのですが...今はデータマイニングが9割、モデル選択が1割という感じです。

 
マキシム・ドミトリエフスキー

ただ、すべてカウントが早いと、いろいろな作戦を立てられるのでいいですね。

もっと生産性の高いアナログがあれば乗り換えるのですが...今のところ9割はデータマイニング、1割はモデル選択だけです。

性能面では、学習済みの6層MLP(~60ニューロン)の応答時間は0.005s。ほぼ全てのものに対応するため、かなり十分な量です。

学習時間が長いということについては、次の実験を一つ一つ考えるだけでも1週間、あるいはそれ以上の時間がかかるので、まったく心配はありません。

まあ、数カ月に一度、数日かけて再トレーニングをすれば、問題ないと思います。ロジックでシステムを作り直すと、もっと時間がかかります。エポックとエポックの間に長いタンバリンダンスが必要なのです。標準的なトレーニング(ダンスなし))では良い結果が得られるが、トレーニングサンプルに対してのみである)。

 

Rのもう一つの問題点。

一方のコンピュータでは問題ないが、もう一方のコンピュータでは、コードの正しさに対する要求が高まっている。

例えば

darch.unitFunction = linearUnit - Rterm.exe がクラッシュする原因と なりました。

に変更されました。

darch.unitFunction ="linearUnit"

というエラーが発生し、その時点から次のエラーが発生し始めました。

また、library(darch)をrequire(darch)に変更する必要がありました。

今は、学習そのものが億劫になっているのです。

R_NN <- darch(
darch = NULL。
x = MatrixLearnX ,
y = MatrixLearnY ,
paramsList = params
)

いろいろ試しましたが、 Rterm.exeは いつも クラッシュして しまいます。

Rには、エラーレベルコントロールのようなものがあるのでしょうか?もしかして、2台目のPCでは、警告のたびに止まっていると、エラーレベルが上がってしまい、仕事にならないのでは?

両方のコンピュータで、Rをデフォルトの設定でインストールし、すべてのパッケージをインストールしました。
どうすれば直るのでしょうか?

 

もしdarchライブラリがインストールされていなければ,library(darch)はエラーを起こし,コードの実行は停止します.require(darch)はワープするだけで,コードは動き続けますが,darchライブラリはインストールされていないので,その関数は呼び出すことができません.

次のステップでは
install.packages("darch", dependencies=TRUE) で自動的にライブラリがインストールされます.

 
ユーリイ・アサウレンコ

性能としては、学習済みの6層MLP(〜60ニューロン)の応答時間は0.005s。ほとんどのことに対応でき、とても十分です。

学習時間が長いことについては、次の実験を考えるだけでも1週間、あるいはそれ以上の時間がかかるので、まったく気になりません。

まあ、数カ月に一度、数日かけて再トレーニングをすれば、問題ないと思います。ロジックでシステムを作り直すと、もっと時間がかかります。エポックとエポックの間に長いタンバリンダンスが必要なのです。また、標準的なトレーニング(ダンスなし))では、素晴らしい結果が得られます - ただし、トレーニングサンプルに限ります)。


チップやTSブロックの組み合わせを試すなど、まさに戦略を探すためにオプティマイザーを積極的に使っているのですが......ときどき、ちょっとしたことを考慮し損ねることもあるので、それこそシステムで見逃していました。そして、100の選択肢を選ぶにも、かなりの学習スピードが要求される(100の選択肢は非常に小さい)・・・まあ、人それぞれのやり方があるので、私のが良いとは言いません。もちろん、NSはオプティマイザーそのものであると言えるかもしれないが、常にいくつかのハイパーパラメーターが存在し、それは初期段階で選択することが可能である

 
マキシム・ドミトリエフスキー

オプティマイザーを積極的に使って戦略を探す、つまりチップやTSブロックの組み合わせ、何か...自分が考えもしなかったちょっとしたことでも、システムに抜けていることがあるので、それを探すために使っています。そして、100の選択肢を選ぶにも、かなりの学習スピードが要求される(100の選択肢は非常に小さい)・・・まあ、人それぞれのやり方があるので、私のが良いとは言いません。もちろん、NSはそれ自体がオプティマイザーだとも言えますが、初期段階でピックアップできるハイパーパラメーターが必ずいくつもあるんです。

だから、すぐにマイニング戦略のためのマイニングファームを持つ必要があります。

理由: