ミハイル・マルキュカイツ Y 今、わかりました。つまり、まず、例えば、教師がいないネットワークを訓練してみましょう。そして、得られた値を分類器の重みに書き込み、その後、教師を使って分類器をさらに学習させる。ニューロンガイドによるファインチューニングの重みを受け取ったとすると、重みは最適化され続ける?つまり、教師なしで事前学習を行うことで、分類器をグローバルミニマムにするための初期重みを設定するのです。こんな感じなんでしょうか?
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Методы обработки больших объемов данных" (осень 2015) Лекция №11 - "Глубокие нейронные сети" Лектор ...
double NeuralNetwork(double* input, double* bias, double* weight){ double perc_output[3]; //временный массив для хранения промежуточных результатов каждого перцептрона
double nn_input[4]; //массив со входными значениями
double nn_bias[4]; //массив сдвигов, на текущем этапе тут будут рандомные значения double nn_weight[15]; //массив весов, на текущем этапе тут будут рандомные значения
//для всех обучающих примеров находим по очереди результат нейронки. При этом массивы nn_bias и nn_weight не должны меняться double results[trainSampleCount]; // trainSampleCount = число обучающих примеров for(int i=0; i<trainSampleCount; i++){ nn_input = trainSamples[i]; //синтаксис реально не такой, нужно из обучающей таблицы взять i-тую строку и запихнуть в этот массив nn_input results[i] = NeuralNetwork(nn_input, nn_bias, nn_weight); }
Y 今、わかりました。つまり、まず、例えば、教師がいないネットワークを訓練してみましょう。そして、得られた値を分類器の重みに書き込み、その後、教師を使って分類器をさらに学習させる。ニューロンガイドによるファインチューニングの重みを受け取ったとすると、重みは最適化され続ける?つまり、教師なしで事前学習を行うことで、分類器をグローバルミニマムにするための初期重みを設定するのです。こんな感じなんでしょうか?
「深い」学習は、層が4-5層よりかなり多くなると、逆伝播の際に微分が減衰(シグモイド)/爆発的に増大(ハイパータンジェント)するので、この問題は、オートエンコーダーやRBMによる 層ごとの事前学習という「松葉杖」で回避される。 は、基本的に階層的な非線形特徴選択(PCA のように非線形で何度も)を行い、それを高位層で簡単に処理し、通常のバックプロップでターゲットセットによりシステム全体を素早く微調整します(教師あり)。
参照: https://www.youtube.com/watch?v=iowsPfk7uUY
もちろん、ZZに 記事を書いて犬を食わせている「専門家」はたくさんいて、どんな場合でもR のどのパッケージを使うべきかを心得ているので、どうせ誰も信じてくれないだろう、という空気で言っておくが。CNNの ようなディープニューラルネットは、その仕組みを理解すると、市場予測には使えません。そのような大きな階層の特徴は、写真やビデオ、NLPにしか 必要ないからです。大きな階層があり、我々の世界はそのように作られています。オブジェクトは、オブジェクトでできている、など。言語は階層的なので、NLPと 同じです。マーケットにはそのようなものはなく、ある種のタイムフレームをトレードし、小さなタイムフレームで何が起こるかは、あなたにとってノイズとなります。投資家は1つのタイムフレームで判断し、スキャルパーやHFT、ましてやヘッジャーやアービトラージャーなどが決めたことに左右されることはないのです。そして、ディープネットワークの階層性は一貫性を意味し、小が大を定義し、雪崩は雪片で構成されます。
見た目はかっこいいけど、ちょっとお値段が高いかな。
1 無料のもので練習して、ラグなくリアルタイムに動作するのを確認したいのに、巨大なラグがあるデモがある。
2 このようなシグナルが取引やMOにどのように利用されるのか、端的に教えてください。秘密でなければ、重要なニュースが発表されたときに、取引する時間があるか、誰かが1秒、半秒早く市場に出始めて、餌になるか?
1 ウェブサイトとのペアリング。
2 予想より良く買い、予想より悪く売る。
「深い」学習は、層が4-5層よりかなり多くなると、逆伝播の際に微分が減衰(シグモイド)/爆発的に増大(ハイパータンジェント)するので、この問題は、オートエンコーダーやRBMによる 層ごとの事前学習という「支柱」で回避される。 は、基本的に階層的な非線形特徴選択(PCA のように非線形で何度も)を行い、それを高位層で簡単に処理し、通常のバックプロップでターゲットセットによりシステム全体を素早く微調整します(教師あり)。
参照: https://www.youtube.com/watch?v=iowsPfk7uUY
もちろん、ZZに 記事を書いて犬を食わせている「専門家」はたくさんいて、どんな場合でもR のどのパッケージを使うべきかを心得ているので、どうせ誰も信じてくれないだろう、という空気で言っておくが。CNNの ようなディープニューラルネットは、その仕組みを理解すると、市場予測には使えません。そのような大きな階層の特徴は、写真やビデオ、NLPにしか 必要ないからです。大きな階層があり、我々の世界はそのように作られています。オブジェクトは、オブジェクトでできている、など。言語は階層的なので、NLPと 同じです。マーケットにはそのようなものはなく、ある種のタイムフレームをトレードし、小さなタイムフレームで何が起こるかは、あなたにとってノイズとなります。投資家は1つのタイムフレームで判断し、スキャルパーやHFT、ましてやヘッジャーやアービトラージャーなどが決めたことに左右されることはないのです。そして、深層網の階層構造は、小が大を規定し、雪片が雪崩を構成するという、一貫性を意味しているのです。
「深い」学習は、層が4-5層よりかなり多くなると、逆伝播の際に微分が減衰(シグモイド)/爆発的に増大(ハイパータンジェント)するので、この問題は、オートエンコーダーやRBMによる 層ごとの事前学習という「松葉杖」で回避される。 は、基本的に階層的な非線形特徴選択(PCA のように非線形で何度も)を行い、それを高位層で簡単に処理し、通常のバックプロップでターゲットセットによりシステム全体を素早く微調整します(教師あり)。
参照: https://www.youtube.com/watch?v=iowsPfk7uUY
もちろん、ZZに 記事を書いて犬を食わせている「専門家」はたくさんいて、どんな場合でもR のどのパッケージを使うべきかを心得ているので、どうせ誰も信じてくれないだろう、という空気で言っておくが。CNNの ようなディープニューラルネットは、その仕組みを理解すると、市場予測には使えません。そのような大きな階層の特徴は、写真やビデオ、NLPにしか 必要ないからです。大きな階層があり、我々の世界はそのように作られています。オブジェクトは、オブジェクトでできている、など。言語は階層的なので、NLPと 同じです。マーケットにはそのようなものはなく、ある種のタイムフレームをトレードし、小さなタイムフレームで何が起こるかは、あなたにとってノイズです。投資家は1つのタイムフレームで判断し、スキャルパーやHFT、ましてやヘッジャーやアービトラージャーなどが決めたことに左右されることはないのです。そして、深層ネットワークの階層構造は、小が大を規定する、雪片が雪崩を構成する、といった一貫性を意味します。
なぜか、ある機種のメリット・デメリットの話に終始してしまうのです。
私の経験がそれほど豊富でないとしても、モデルそのものがトレードの成功に寄与することは非常に少ない。
それを定義するのは、ターゲットとその予測因子である。
ZZの例で言えば、ZZのようなわかりやすく、例示的で美しい対象変数でも、よく調べると同じではなく、乗り越えられない障害があることを何度も示そうとしたのです。
予測因子ということであれば、経済学にずっと携わってきた私にとっては至極当然なことである。
経済や為替を予測するために、この2つのファンダメンタルズを解くことだけに集中すれば、成功はこの2つのパラメーターからしか生まれない。そして、ターゲットとその予測変数に最適なモデルを選択することは、パフォーマンスをわずかに向上させるだけで、再トレーニングを行わないモデルの寿命について、いくつかの有効な考察を与えるかもしれません。
もう一度、ターゲット変数に焦点を当て、この特定のターゲット変数に対する予測変数の正当性を確認することを呼びかけます。
PS.
通貨ペアの相互関係に迫る。私にとっては意外な結果が得られました。特に。
通貨ペアの相互関係に踏み込む。自分でも驚くような結果が得られました。特に。
なぜか、ある機種のメリット・デメリットの話に終始してしまう。
私の経験上、トレードの成功への貢献度はあまり高くないにもかかわらず、です。
それを定義するのは、ターゲットとその予測因子である。
ZZの例で言えば、ZZのようなわかりやすく、例示的で美しい対象変数でも、よく調べると同じではなく、乗り越えられない障害があることを何度も示そうとしたのです。
予測因子ということであれば、経済学にずっと携わってきた私にとっては至極当然なことである。
経済や為替を予測するために、この2つのファンダメンタルズを解くことだけに集中すれば、成功はこの2つのパラメーターからしか生まれない。そして、ターゲットとその予測変数に最適なモデルを選択することは、パフォーマンスをわずかに向上させるだけで、再トレーニングを行わないモデルの寿命について、いくつかの有効な考察を与えるかもしれません。
もう一度、ターゲット変数に焦点を当て、この特定のターゲット変数に対する予測変数の正当性を確認することを呼びかけます。
PS.
通貨ペアの相互関係に迫る。私にとっては意外な結果が得られました。特に。
ミハイル・マルキュカイツ
ここは私も同感ですが、訂正させていただきます。まず、1点目を明確にしたいと思います。ターゲットと関係するのではなく、その理由となるように。つまり、予測対象が変われば対象も変わるが、その逆はない。そ して、2点目は単純に落ちます。先読みは不要です。インプットがアウトプットの原因になっていればいいのです。そしてまた、みんなあなたがどこで働いているのか忘れてしまうのです。取引所のメインは価格です。価 格変動の原因となるインプットを見つければ、どんなTSでも、絶対に、その通りに動くと断言します。
=================================================================================
これはまったくもって正しい指摘です。ただ、私は「ターゲットは予測因子によって生成されるべきである」と言い換えたいと思います。
とはいえ、Rを使ってどのように実装するかという質問には、私の理解が正しければ、回答がありませんね。
答えはそう単純ではありません。ここでは、例えば神経細胞を使った一つの方法を紹介しますが、神経細胞がどのように働くのか、どのような数式を持つのかなどを理解する必要があります。
4つの入力、隠れ層の3つのパーセプトロン、1つの出力を持つ単純なニューロンがあるとします。このようなニューロンは、数学用語で言うと次のような働きをします。
double sigmoid(double x)
{
return 1.0 / (1.0 + exp(-x));
}
double NeuralNetwork(double* input, double* bias, double* weight){
double perc_output[3]; //временный массив для хранения промежуточных результатов каждого перцептрона
double perc_output[0] = sigmoid(bias[0] + input[0] * weight[0] + input[1] * weight[1] + input[2] * weight[2] + input[3] * weight[3]);
double perc_output[1] = sigmoid(bias[1] + input[0] * weight[4] + input[1] * weight[5] + input[2] * weight[6] + input[3] * weight[7]);
double perc_output[2] = sigmoid(bias[2] + input[0] * weight[8] + input[1] * weight[9] + input[2] * weight[10] + input[3] * weight[11]);
double result = sigmoid(bias[3] + perc_output[0] * weight[12] + perc_output[1] * weight[13] + perc_output[2] * weight[14]);
return result;
}
これで、学習例のある表を取り、それぞれの例に対する結果を求めることができます
double nn_bias[4]; //массив сдвигов, на текущем этапе тут будут рандомные значения
double nn_weight[15]; //массив весов, на текущем этапе тут будут рандомные значения
//для всех обучающих примеров находим по очереди результат нейронки. При этом массивы nn_bias и nn_weight не должны меняться
double results[trainSampleCount];
// trainSampleCount = число обучающих примеров
for(int i=0; i<trainSampleCount; i++){
nn_input = trainSamples[i]; //синтаксис реально не такой, нужно из обучающей таблицы взять i-тую строку и запихнуть в этот массив nn_input
results[i] = NeuralNetwork(nn_input, nn_bias, nn_weight);
}
次に、例えば、予測値からの利益を結果配列にプロットし、評価する。
上のコードはオプティマイザに突っ込むことができます。オプティマイザは、nn_bias と nn_weight 配列の重みとシフトの適切な値を見つける必要があります。
1) nn_biasとnn_weightの値をそれぞれのアルゴリズムに従って入れ替える。
2) すべての学習例に対する結果を求める
3) トレードチャートのプロット
4) トレードチャートを推定し、この推定値を後続の最適化ステップの適合度値として使用する。
5) 最適化アルゴリズムのステップ1~4を、プロフィットチャートが許容範囲になるまで繰り返す
私が試したオプティマイザーは重みを扱うことができず、平均誤差を最小化するために、すべての結果が0.5に等しいときの局所最小値を見つけるだけで、そこで止まってしまうのです。ここは何かコツが必要ですね、これ以上は無理です。
ニューロニクスの構造が複雑になればなるほど、重みの数が増え、最適化アルゴリズムがそれを選択するのが難しくなります。
ここで何らかの仕掛けを施さなければならない。
実はこの仕掛けは知られているのですが、それを実装したソフトを見たことがないだけなのです。デリバティブ
ニューロニックもバランスプロットもグラフ評価もすべて数式です。そして、最終的な推定値に対するnn_biasとnn_weightの導関数を求めることができるわけです。
MOのトレーニングビデオで、講師が未来の新しいプログラミング言語について話していましたが、例えば、どこかの誰かが、どんな複雑な数式でも、その中のどんな変数でも自動的に微分を計算する(値を少しずらして再計算するのではなく、分析的に)言語を作ろうとしているそうです。こういうのがあると助かりますね。
つまり、通常は学習用サンプルを使って、それぞれのウェイトがどの程度結果を向上させるかを分析的に判断し、それに応じてウェイトを少し増やしたり減らしたりするのです。同じように、1例ずつではなく、すべてに対して行う必要があります。また、導関数は、学習結果を1つずつ求めるのではなく、グラフの最終評価に対してすぐに求めることができます。
そして、小さな欠点があります。このような形では、取引に役立てることはできません。理想的なチャートのためにウェイトを調整するだけです、新しいデータでは100%オーバートレーニングでプラマイゼロです。実際に利益を得るためには、ニューロニクスの構造をいじくり回す必要があり、最終的には畳み込みネットワークの ようなものになるのでしょう。