ニューラルネットワークの入力に投入する指標群を見つけること。ディスカッションを行います。結果を評価するためのツールです。 - ページ 5

 
joo писал(а)>>

なぜ見えないのか?その違いは目に見えています。適切な探索範囲を選択すれば、ニューロンの過飽和は生じない。"調理法を知らないだけ"(c) :)

あなたがお気づきのように、作業の複雑さによって、最適な道具は異なります(ドライバー)。

レンジの選択については、非常に議論の余地があります。GAが非常に長く、OROよりはるかに長いのも欠点です。

スケールの範囲を選択するテクニックや、何を基準にしているかを知ることは興味深い。

joo さんが書き込みました >>1

ご指摘の通り、複雑さによって最適な道具が異なるでしょう(ドライバー)。

GA は NS のためのものではありません。NS-thには、独自の学習(最適化)方法があるからだ。少なくとも、OROのようにCVを使うことはできないからです。

 
rip >> :

正解です。遺伝的アルゴリズムでは、誤差関数を用いて重みを調整することはありません。

私が理解している限りでは、履歴に残る最大限の利益でm5をマークアップし、このマークアップをフィットネス関数として使用することができます。

それこそ、個人を推し量る関数みたいなものですね。

>>そうです :)

 public double evaluate( IChromosome a_subject) {
        this. NNWeights=new double[ a_subject. size()]; //создаем вектор весов для нейросети
        for (int i=0; i<this. NNWeights. length; i++)
        {
            DoubleGene g= ( DoubleGene) a_subject. getGene( i);
            this. NNWeights[ i]= g. doubleValue(); //заполняем вектор весов для нейросети
        }
        net. SetWeights(this. NNWeights); //устанавливаем веса нейросети
        Trade trade =new Trade();
        for ( int i=0; i<this. csv. CSVInputs. length; i++)
        {
            trade. TradeCurrentSignal( net. ComputeForOneNeuronOutLayer(this. csv. CSVInputs[ i]),this. csv. CSVPrice[ i]);
        }
        
      return 1000000+ trade. Profit; //целевая функция должна быть >0
    }
 
rip >> :

テストのサンプリングエラーの問題である。つまり、トレーニングサンプルの翌月を取るのです。自分のアルゴリズムに従ってマークするのです。その出力を学習済みネットワークに与えるのです。その結果を比較するのです。私たちが関心を寄せているのは、まさにこの誤差のグラフなのです。


また、学習サンプルのエラーグラフを取得し、ネットワークの学習過程(遺伝的アルゴリズムでは世代の発展)を推定することができます。

訓練は、目標関数が大きくなるか、飽きるまで(時間的に)行う。 再訓練は間接的に行う。訓練サンプルはニューラルネットワークの重みに比べてはるかに大きい。I'm testing ... everything works correctly) and watch with MT4 strategy tester what it results in.私はテストしている......すべてが正しく機能する。

"結果を比較する" - これがあなたの考えを理解できない部分です...。意図的に再トレーニングを行い、その結果を過去のネットワークの結果と比較することにどのような意味があるのでしょうか?

 
rip >> :

入力に供給するすべてのセットを比較すると、結果を表示します :)すべてにおいて高い相関性が得られると思います。与えられたすべての指標は、計算に同じ入力データを使用しています。

全部のセットを比べているわけではないのですが...。200セットの入力に目を通すだけでも、実際にはもっと多いのですが、時間がかかり、何かを見逃してしまう可能性もあるので、あまり意味がありません。

 
iliarr >> :

訓練は、目標関数が増えるまで、あるいは飽きるまで(時間的に)行う。 再訓練は間接的に行う。訓練サンプルはニューラルネットワークのウェイトよりずっと大きい。

"あなたの思考のこの部分が理解できない...私がやりたいのは、意図的にネットワークを再トレーニングして、その結果を以前の期間にトレーニングされたネットワークの結果と比較することなのです。


なぜ再教育するのか!ネットワークを学習させるためのサンプルがあります。そこで、その動作をシミュレートし、ネットワークに見慣れないサンプルを与え、ネットワークから得られる結果とテストサンプルで期待される結果を比較します。

 
rip >> :

なぜ再教育するのか!ネットワークを学習させるためのサンプルがあります。そこで、その動作をシミュレートし、ネットワークに見慣れないサンプルを与え、ネットワークから得られる結果とテストサンプルで期待される結果を比較します。

そして、ネットワークの予測能力は、トレーニングの質だけでなく、ネットワークの構造、ネットワークが生成したものをどう解釈するか、どんな情報を送り込むかにも依存します。

 
iliarr >> :

しかし、Forexでは、あなたが提案したことの結果が、訓練の質ではなく、訓練されたネットワークの予測能力を決定します。一方、ネットワークの予測能力は、訓練の質だけでなく、ネットワークの構造、その出力をどう解釈するか、ネットワークに送り込む情報にも依存するのです。

エヘン...予測能力とどう関係があるのでしょうか?ネットワークがあり、その反応を想定した解釈で自分のネットワークを持っている。

あなたのコードに基づいて、Trade()クラスは何らかの方法で取引プロセスをシミュレートしています。ポジションを開く、ポジションを保持する、ポジションを閉じる。

>>それをもとに、与えられた試料が自分にどれだけ適しているかを判断するのです。つまり、最初に何らかのルールを決めておいて

出力の解釈の

 
iliarr >> :

全部のセットを見比べることはできませんが......。200セット(実際にはもっと多い)でも入力に時間がかかり、見落としもあるので意味がありません。

ふむ ...学習サンプルの考え方:(ニューラルネットワークを用いた次世代価格予測装置)


ntr - トレーニングセットの数

lb - lastBar


// 入力配列をデータで埋める;この例では nout=1
for(i=ntr-1;i>=0;i--)
{
outTarget[i]=(Open[lb+ntr-1-i]/Open[lb+ntr-i]-1.0);
int fd2=0;
int fd1=1;
for(j=nin-1;j>=0;j--)
{
int fd=fd1+fd2; // フィボナッチを使用:1,2,3,5,8,13,21,34,55,89,144...。
fd2=fd1です。
fd1=fd。
inpTrain[i*nin+j]=Open[lb+ntr-i]/Open[lb+ntr-i+fd]-1.0;
}
}

 
rip >> :

ふむ ...学習サンプルの考え方:(ニューラルネットワークを用いた次世代価格予測装置)


ntr - トレーニングセットの数

lb - lastBar


// 入力配列をデータで埋める;この例では nout=1
for(i=ntr-1;i>=0;i--)
{
outTarget[i]=(Open[lb+ntr-1-i]/Open[lb+ntr-i]-1.0);
int fd2=0;
int fd1=1;
for(j=nin-1;j>=0;j--)
{
int fd=fd1+fd2; // フィボナッチを使用:1,2,3,5,8,13,21,34,55,89,144...。
fd2=fd1です。
fd1=fd。
inpTrain[i*nin+j]=Open[lb+ntr-i]/Open[lb+ntr-i+fd]-1.0;
}
}

ありがとうございます。見てみるよ。

 

IlyaA писал(а) >>

学習誤差の時間(エポック数)に対する依存性をグラフ化することが、一般に求められている。

->

iliarr さんが書き込みました(a) >>。
違うことを言ってるんだろうけど...。先生と一緒に教えるのではなく(この教え方にはラーニングエラーがある)......。ターゲット関数の最大値について教えているのですが、ターゲット関数の取り得る最大値がわかりません。

->

rip さんが書き込みました

テストのサンプリング誤差の話です。つまり、トレーニングサンプルの翌月を受けるのです。アルゴリズムにしたがって、マークアップするのです。その出力を学習済みネットワークに与えるのです。その結果を比較するわけです。 それが私たちの関心事であるエラーグラフです。

また、学習サンプルのエラーグラフを取得し、ネットワークがどのように学習しているか(あるいはgen.アルゴリズムにおける世代の展開が進んでいるか)を推定することができます。

rip さんやIlyaA さんは、iliarr さんが先生不在の教授法であることを理解されていないようですね。目標関数が利益の場合、どのような学習誤差があるのでしょうか?それともお二人とも、履歴でネットワークを学習させた後、テストの履歴で実行し、得られた利益を比較しようと考えているのでしょうか?利益は、少なくても多くても、違うでしょう。テスト履歴が違う。近似の質の基準は、元の関数と得られた関数の標準偏差である近似と混同しないでください。


StatBars さんが書き込みました :>>。

OROはニューロンが飽和しすぎると実質的に「学習」をやめてしまいますが、GAは簡単にニューロンを飽和させ、さらにニューロンの重みを増やし続けることができるのです。

->

StatBars さんが書き込みました

レンジの選択については、非常に議論の余地があります。GAが非常に長く、OROよりはるかに長いのも欠点です。

->

StatBarsは(a)を書きました>>。

GA は NS のためのものではありません。NSの場合、独自のトレーニング(最適化)方法がある。OROのようにCVが使えないからというだけなら。

なぜ、そんなことにこだわるのか、理解できない。

検索して出てきた、その逆を言うリンク集です。

http://alglib.sources.ru/dataanalysis/neuralnetworks.php

http://network-journal.mpei.ac.ru/cgi-bin/main.pl?l=ru&n=13&pa=10&ar=3

http://masters.donntu.edu.ua/2004/fvti/solomka/library/article2.htm

http://www.neuropro.ru/memo314.shtml


私は、GAがすべての問題に対する唯一の正しい最適化ソリューションであると主張したわけではありませんし、今後もそうするつもりはありません。他のどのソリューションよりも単純に汎用性が高く、しばしば高速で、ほとんどすべてのタスクに容易に適応することができるのです。もう一つの正当な疑問は、最適解を見つけるために必要な適性関数の最小実行回数はどれくらいかということである。これは、最適化アルゴリズムそのものの速度ではなく、語るべきことなのです。そして、ここではGAが他のほとんどのアルゴリズムを凌駕することになります。

もし興味のある方がいらっしゃれば、最適化アルゴリズムの興味深いテスト関数や、様々なアルゴリズムの結果を掲載する別スレッドを開設することもできますよ。NNを扱う人だけでなく、いろいろな意味で最適な努力の結果を得たいと考えている人には、とても役立つと思います。

StatBars さんが書き込みました :>>。

ウェイトの範囲を選択するテクニックや、何を基準にしているかなど、興味深い話を聞くことができました。

MapleやMathcaでは、活性化関数が働く重みの範囲を見ています。ある関数のスコープが[-1;1]の場合、例えばそのような(-100;100)変数の範囲で「探す」ことに何の意味があるのでしょうか?