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

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

私の考えでは、一部のサービス機能を除いて、誰もこれらのコードを必要としないので、誰もが自分のために何かをするのに忙しいのです。

これは知識の完成度のヒエラルキーの結果であり、キリンに通じるものがカバには通じず、その逆もまた然りである。だからこそ、小学校から学術機関まで、知識の完成度によって教育の種類が分かれているのである。

謹んで

 


このパーセトロンの図を見ました。通常、加算器は1つですが、3つあります。では、活性化ニューロンは3つあるのですね。

MQL4でそうしました。

   a1 = iAC(Symbol(), 0, 0);
   a2 = iAC(Symbol(), 0, 3);
   a3 = iAC(Symbol(), 0, 7);
   
   perceptron1[0]=w11 * a1 + w21 * a2 + w31 * a3;
   perceptron2[0]=w22 * a2 + w12 * a1 + w32 * a3;
   perceptron3[0]=w33 * a3 + w13 * a1 + w23 * a2;

と思っているのですが、正しいのでしょうか?私の知る限り、3つの入力(a1,a2,a3)はそれぞれ加算器に応じた重みで掛け合わされます。

そこで、一次関数を活性化シグモイド関数に置き換えてみることにします。

1つの加算器を使うのが良いのか、それとも複数の加算器を使うのが良いのか、それは誰にも分からない。同じ入力を異なる重みで使うことに意味があるのだろうか?

それと、最小限の2層のネットワークとすると、3層、4層はもちろん、最適化のための変数がたくさん必要になるのでは、ということもお聞きしたかったのです。

つまり、すべてのレイヤーを一度に最適化した場合です。多かれ少なかれテストを行うために、最大でいくつの変数を使用することができるのか、この目的のためのソフトウェアはあるのだろうか?

 
FXMAN77 です。

これが正しいのかどうか、興味がありますね。私の理解では、3つの入力a1,a2,a3はそれぞれ、どの加算器に当たるかによって、それぞれの重みが掛け合わされます。

ほぼ正しい、結果に付加的に加えられるバイアスもある

   perceptron1[0]=w11 * a1 + w21 * a2 + w31 * a3 + w01;
   perceptron2[0]=w22 * a2 + w12 * a1 + w32 * a3 + w02;
   perceptron3[0]=w33 * a3 + w13 * a1 + w23 * a2 + w03;

y1,y2,y3の値はニューロニクスの内層で使われている可能性が高く、これらの値自体も次の層の入力値として使われるはずである

perceptron4[0] = w14 * perceptron1[0] + w24 * perceptron2[0] + w34 * perceptron3[0] + w04;

あるいは、Y1,Y2,Y3が出力値であれば、複数の出力ニューロンを使って分類します。例えば、Y1,Y2,Y3のうち最大の値がY1であれば、結果は「クラス1」、最大の値がY2であれば、結果は「クラス2」、最大の値がY3であれば、結果は「クラス3」です。もしニューロンが分類ではなく回帰に使われるなら、出力ニューロンは1つだけとなる。2つのクラスがある場合、1つの出力ニューロンだけを使うことができます(結果が<0.5ならクラス1、>0.5ならクラス2になります)。

ニューロンの活性化関数にシグモイドを追加するのは非常に簡単で、このような関数が必要です。

double sigmoid(double sum)
{
    if (sum < -15.0)
        return (0.0);
    else if (sum > 15.0)
        return (1.0);
    else
        return (1.0 / (1.0 + MathExp(-sum)));
}

そして、これによって、すでに内層(3つのパーセプトロンを持つ)と1つの出力パーセプトロンを持つ本格的なニューロンを手に入れることができるのです。

   perceptron1[0] = Sigmoid(w11 * a1 + w21 * a2 + w31 * a3);
   perceptron2[0] = Sigmoid(w22 * a2 + w12 * a1 + w32 * a3);
   perceptron3[0] = Sigmoid(w33 * a3 + w13 * a1 + w23 * a2);
   perceptron4[0] = Sigmoid(w14 * perceptron1[0] + w24 * perceptron2[0] + w34 * perceptron3[0] + w04);

result = perceptron4[0]です。

 
FXMAN77 です。

できるだけ多くの変数を使用して、多かれ少なかれテストを作成することができますが、この目的のためのソフトウェアがありますか?

ニューロンの重みの数は数万個以上になることもある。mqlやRにはニューロンを作成したり訓練するための特別なビブリオテークがあり、自分でゼロからニューロンをプログラムするよりも、それを使って作業する方が良い。

 
サンサニッチ・フォメンコ

息ができないんですね...一度息を吸って落ち着いてください。


進めば進むほど、よりカテゴライズされるようになる ;))

 
サンサニッチ・フォメンコ


これは統計学の公理として非常に簡潔に定式化されている(ちなみに数学はすべてそうである):ゴミが入る-ゴミが出る。

これを知らない、あるいは実践しない人は、ペルセプトロンという言葉を知っていようがいまいが、濃いラウトに属すると私は思っている。


全くその通りです。私はそれを支持します。

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

今、近似値について読んでいたので、うっかり言葉を混ぜてしまいましたが


凄い)

 
Oleg avtomat:

全くその通りです。私も賛成です。


具体的な質問に対して、不十分な意識の流れを支持しますか? 私は以前から、年齢とともに人の意識は陳腐化し、ひとこと話しかけると、その人の不満足なファンタジーのいいところを全部出してくることに気づいていました。そりゃそうでしょう、同じようにコミュニケーションしているんだから。あるいは、年齢ではなく、根本的に集中力がないのかもしれません。

回答する技術とは、質問者の問題に没頭し、しばらくの間彼になりきり、彼が何を必要としているかを理解し、彼が理解できるように回答することである。でも、ただ言葉でめちゃくちゃにするのは、アートではなく自己肯定感です。

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

具体的な質問に対して、不十分な意識の流れを支持しますか? 私は以前から、年齢とともに人の意識は陳腐化し、ひとこと言えば、不満足な空想のいいわけをされることに気づいていました。もちろん、そうでしょう。それこそ、コミュニケーションの方法ですから。あるいは、年齢ではなく、根本的に集中力がないのかもしれません。

回答する技術とは、質問者の問題に没頭し、しばらく彼になりきって、彼が何を必要としているかを理解し、彼が理解できるように回答することである。私はただファックするのは芸術ではなく、自己主張です。


近似、内挿、外挿など、難しい用語もあるので、混乱しないように、教科書を開いて勉強しておくとよいでしょう。でも、ボタンに句読点をつけてから、何をやっているのか理解するようにしたいものです。意味を理解するための知識ベースがないんですね。そうすれば、理解が深まり、意識的に実験を計画し、意味のある実験ができるようになり、実験結果も自分自身で理解できるようになるはずです。

 
Oleg avtomat:

近似、内挿、外挿など、ややこしい用語の使い分けができるように、教科書を開いて勉強しておくとよい。でも、ボタンに句読点をつけてから、何をやっているのか理解するようにしたいものです。意味を理解するための知識ベースがないんですね。勉強すれば、理解でき、有意義な実験計画、有意義な実験ができるようになり、実験結果も明確になる。

申し訳ありませんが、あなたは私の質問の中で、少なくとも私はあなたの価値を証明したことがありません。

キャプテンオブリュエスのように、すべてをひっくり返して、自分を再び重要視するために書く必要はありません。

理由: