ニューラル・ネットワーク専門家からの質問 - ページ 16

 
joo:

しかし、どうやらlassoは、このように人工的なものと連携するために生体ネットワークを鍛えているようです。

面白い :))))この点、Nshは中毒性が高いので、時々、自分を引き離すのが非常に難しいです......。
 
lasso:

こんにちは。


クラスは非常に混在しており、fig...よりもさらに混在しています。


が、まだ区別がつく。

狡くないリニアな方法でも割り切れるのですが、NSの方が良い(少なくとも同等のクオリティの)結果が出せないのです。

十分な回答が得られ、他のフォーラム参加者にも役立つことを期待します。

しばらく音信不通で...。さっそくやってみましょう。

14ページの問題は、確かにニューラルネットワークによって初歩的に解決されています。

スクリーンショットは、可能な構成の一つです。例えば、隠れ層のニューロン数を7個に減らすことも苦もなくできます。



そして、嬉しかったし、驚いたのは、(この単純な問題に関して)明白な線形手法とは異なり、NSが自ら解を見出すことです。

と、これらの解は、最初は不可解なものでしたが、徹底的に分析した結果、NS解は線形解よりもさらにわずかに効率が良いことがわかりました。オオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオ

移動する...。;-)

 
lasso:

14ページの問題は、確かにニューラルネットワークで初歩的に解決されています。

スクリーンショットは、可能な構成の一つです。隠れ層のニューロン数は、例えば7個に苦もなく減らすことができる。



そして、驚きと喜びを感じたのは、(この単純な問題に対して)明白な線形手法とは異なり、NSが自ら解を見出すという事実です。

と、これらの解は最初は不可解でしたが、総合的に分析した結果、NS解は線形解よりもさらにわずかに効率が良いことがわかりました。オオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオオ

移動する...。;-)


確率的交差問題でしょうか?この問題を解決することで何を達成したいのか理解できません。明らかに状況説明の乏しさから、NSはこの問題を「意味ある」形で解決することはできないでしょう。このようなネットワークは非常に不安定で、OVの外では全く役に立ちません。でも、トレーニングの課題にはもちろん使えますよ...。

これからどうするのか?時系列 予測に近づいた方がいいのでは?

 
Figar0:

確率的交差問題でしょうか? この問題を解決することで何を達成したかった のか理解できません。明らかに疎かな記述では、NSがこの問題を「意味ある」方法で解決することはできないでしょう。このようなネットワークは非常に不安定で、OVの外では全く役に立ちません。でも、トレーニングの課題にはもちろん使えますよ...。

これからどうするのか?もう少し、私たちの子羊に近いかもしれない-時系列予測?

TSの解析ブロックにNS装置を応用し、ビジュアルに、事例を交えて、人のためになるような方法を学びたいと思います。

というわけで、「統計学6」の分類の課題は解決された。

しかし、これは第三者のプログラムであり、取引とは直接関係がない。

はい、多くのグラフやレポートを作成したり、見つかったネットワークをファイルに保存したり、CやVBでコードを生成したりすることができます。素晴らしい

しかし、ここで新たな問題に直面することになります。

この財産を正しく引き継ぎ、MQLで活躍させるにはどうしたらいいのか。

 
lasso:

そうですね、多くのグラフやレポートを作成したり、見つかったネットワークをファイルに保存したり、CやVBでコードを生成したりすることができますね。素晴らしい

しかし、ここで新たな問題に直面することになります。

このすべての財産を正しく引き継ぎ、MQLに活かすにはどうしたらいいのか。



まあ、Expert AdvisorにDLLを添付するのは全く問題ないのですが。Experts/Samples フォルダにある Terminal 自体に良い例がありますし、フォーラムで "connect dll" というフレーズを使用して検索すれば、すぐに実行できます。そうだ、このテーマで記事があったような...。 ニューラルネットワークを扱う上で、躓くことはありません。

もっと面白い質問がある。

ニューラルネットワークは何をすべきなのか?インプットとは?どのような方法で用意すればよいのでしょうか?NSのタイプやアーキテクチャなどを選択する。 このすべては、新しいNSデータとして利益で2010年11月、可能であれば12月を取引するなど、いくつかの実用的なタスクで行うことがより簡単で興味深いです。 とはいえ、「初級者以降のNSの練習」など、別の枝にしたほうがいいのかもしれませんが。

 
Figar0:

まあ、Expert AdvisorにDLLを添付するのは全く問題ないのですが。Experts/Samples フォルダにある Terminal 自体にわかりやすい例があり、さらにフォーラムで "connect dll" というフレーズで検索すると簡単にできます。そうだ、このテーマで記事があったような...。ニューラルネットワークを扱う上で、躓くことはありません。

もっと面白い質問がある。

ニューラルネットワークは何をすべきなのか?インプットとは?どのような方法で用意すればよいのでしょうか?NSのタイプやアーキテクチャなどを選択する。このすべては、新しいNSデータとして利益で2010年11月、可能であれば12月を取引するなど、いくつかの実用的なタスクで行うことがより簡単で興味深いです。とはいえ、おそらく「初心者向けでNSの練習だけではない」といった別の枝に入れた方が正しいのでしょう。

質問が面白いというのは同感です。そして、その答えを得るためには、MT環境で働く機能が必要なのです。

問題は、DLLの添付方法ではなく、このDLLをどこで手に入れるかです。

Statistics 6はDLLを生成しますか?

それとも、ニューラルネットワークの初心者が自分でNSを書いて、DLLとして作れということでしょうか?あなたのことがわからない...。

FANNライブラリの バリアントがあります。

他にバリエーションはありますか?

 
lasso:

問題は、DLLの添付方法ではなく、DLLをどこで入手するかということです。

Statistic 6はDLLを生成しますか?

それとも、ニューラルネットワークの素人研究者が自分でNSを書いてDLLにしろということですか?あなたのことがわからない...。

FANNライブラリのバリアントがあります。

Statisticaは、他の多くのNSプログラム(neuroshell、neurosolutions)と同様に、私の記憶では、Cコードを生成しています。おそらく、初心者には一番簡単な方法だと思います。MQLで直接ネットを書くこともできますが、その場合、トレーニングの問題が発生します...。FANNは面倒くさくて、あまり使い勝手が良くないと感じています。

 
Statisticaは、学習済みニューラルネットワークの コンソールアプリケーションのC言語ソースを生成します(このソースをコンパイルすると、exe実行可能なファイルが得られます)。このコードは、わずかな修正を加えるだけで、舗道を歩く二本の指のようにMQL4/5に移植することができます。それが、ニューラルネットワークの勉強を始めたきっかけです。
 
lasso:


FANNライブラリのバージョンもあります。

他に選択肢はないのでしょうか?


SVM ....http://www.csie.ntu.edu.tw/~cjlin/libsvm/

 
Figar0:

Statisticaは、他の多くのNSプログラム(neuroshell、neurosolutions)と同様に、私の記憶では、Cコードを生成しています。初心者の方には一番簡単な方法かもしれませんね。MQLで直接ネットを書くこともできますが、その場合、トレーニングの問題が発生します...。FANNは面倒くさくて、あまり使い勝手が良くないと感じています。


ジュ
Statisticaは、学習したニューラルネットワークのコンソールアプリケーション用のCソースコードを生成します(このようなソースコードをコンパイルすると、exe実行可能なファイルが得られます)。このコードは、わずかな修正を加えるだけで、舗道を歩く二本の指のようにMQL4/5に移植することができました。それが、ニューラルネットワークの勉強を始めたきっかけです。

以下は、私のStatistics 6が生成するものです ))

喜びは何ですか?

唯一の楽しみは、デバッガで入力から出力までの信号の推移を見ることです。

/* ------------------------------------------------------------------------- */


#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

#ifndef FALSE
#define FALSE 0
#define TRUE 1
#endif

#define MENUCODE -999


static double NNCode38Thresholds[] =
{

/* layer 1 */
-0.78576109762088242, -0.23216582173469763, -1.6708808507320108, -1.525614113040888,
1.4153558659332133, -0.77276960668316319, 2.3600992937381298, 2.473963708568014,
-0.43422405325901231, 0.68546943611132893, 0.19836417975077064, 0.26461366779934564,
-0.19131682804149783, 0.24687125804149584, -0.95588612620053504, 0.25329560565058901,
-1.0054817062488075, 1.3224622867600988, 0.88115523574528376, 0.32309684489223067,
0.52538428519764313,

/* layer 2 */
-1.8292886608617505

};

static double NNCode38Weights[] =
{

/* layer 1 */
1.8660729426318707,
1.3727568288578245,
3.1175074758006374,
3.356836518157698,
3.2574311486418068,
3.2774957848884769,
1.4284147042568165,
3.534875314491805,
2.4874577673065557,
2.1516346524000403,
1.9692127720516106,
4.3440737376517129,
2.7850179803408932,
-12.654434243399631,
2.4850018642785399,
2.1683631515554227,
1.77850226182071,
2.1342779960924272,
2.8753050022428206,
3.9464397902669828,
2.5227540467556553,

/* layer 2 */
-0.041641949353302246, -0.099151657230575702, 0.19915689162090328, -0.48586373846026099,
-0.091916813099494746, -0.16863091580772138, -0.11592356639654273, -0.55874391921850786,
0.12335845466035589, -0.022300206392803789, -0.083342117374385544, 1.550222748978116,
0.10305706982775611, 3.9280003726494575, 0.12771097131123971, -0.12144621860368633,
-0.40427171889553365, -0.072652508364580259, 0.20641498115269669, 0.1519896468808962,
0.69632055946019444

};

static double NNCode38Acts[46];

/* ---------------------------------------------------------- */
/*
  NNCode38Run - run neural network NNCode38

  Input and Output variables.
  Variable names are listed below in order, together with each
  variable's offset in the data set at the time code was
  generated (if the variable is then available).
  For nominal variables, the numeric code - class name
  conversion is shown indented below the variable name.
  To provide nominal inputs, use the corresponding numeric code.
  Input variables (Offset):
  stoch

  Выход:
  res
    1=1
    2=-1

*/
/* ---------------------------------------------------------- */

void NNCode38Run( double inputs[], double outputs[], int outputType )
{
  int i, j, k, u;
  double *w = NNCode38Weights, *t = NNCode38Thresholds;

  /* Process inputs - apply pre-processing to each input in turn,
   * storing results in the neuron activations array.
   */

  /* Input 0: standard numeric pre-processing: linear shift and scale. */
  if ( inputs[0] == -9999 )
    NNCode38Acts[0] = 0.48882189239332069;
  else
    NNCode38Acts[0] = inputs[0] * 1.0204081632653061 + 0;

  /*
   * Process layer 1.
   */

  /* For each unit in turn */
  for ( u=0; u < 21; ++u )
  {
    /*
     * First, calculate post-synaptic potentials, storing
     * these in the NNCode38Acts array.
     */

    /* Initialise hidden unit activation to zero */
    NNCode38Acts[1+u] = 0.0;

    /* Accumulate weighted sum from inputs */
    for ( i=0; i < 1; ++i )
      NNCode38Acts[1+u] += *w++ * NNCode38Acts[0+i];

    /* Subtract threshold */
    NNCode38Acts[1+u] -= *t++;

    /* Now apply the logistic activation function, 1 / ( 1 + e^-x ).
     * Deal with overflow and underflow
     */
    if ( NNCode38Acts[1+u] > 100.0 )
       NNCode38Acts[1+u] = 1.0;
    else if ( NNCode38Acts[1+u] < -100.0 )
      NNCode38Acts[1+u] = 0.0;
    else
      NNCode38Acts[1+u] = 1.0 / ( 1.0 + exp( - NNCode38Acts[1+u] ) );
  }

  /*
   * Process layer 2.
   */

  /* For each unit in turn */
  for ( u=0; u < 1; ++u )
  {
    /*
     * First, calculate post-synaptic potentials, storing
     * these in the NNCode38Acts array.
     */

    /* Initialise hidden unit activation to zero */
    NNCode38Acts[22+u] = 0.0;

    /* Accumulate weighted sum from inputs */
    for ( i=0; i < 21; ++i )
      NNCode38Acts[22+u] += *w++ * NNCode38Acts[1+i];

    /* Subtract threshold */
    NNCode38Acts[22+u] -= *t++;

    /* Now calculate negative exponential of PSP
     */
    if ( NNCode38Acts[22+u] > 100.0 )
       NNCode38Acts[22+u] = 0.0;
    else
      NNCode38Acts[22+u] = exp( -NNCode38Acts[22+u] );
  }

  /* Type of output required - selected by outputType parameter */
  switch ( outputType )
  {
    /* The usual type is to generate the output variables */
    case 0:


      /* Post-process output 0, two-state nominal output */
      if ( NNCode38Acts[22] >= 0.05449452669633785 )
        outputs[0] = 2.0;
      else
        outputs[0] = 1.0;
      break;

    /* type 1 is activation of output neurons */
    case 1:
      for ( i=0; i < 1; ++i )
        outputs[i] = NNCode38Acts[22+i];
      break;

    /* type 2 is codebook vector of winning node (lowest actn) 1st hidden layer */
    case 2:
      {
        int winner=0;
        for ( i=1; i < 21; ++i )
          if ( NNCode38Acts[1+i] < NNCode38Acts[1+winner] )
            winner=i;

        for ( i=0; i < 1; ++i )
          outputs[i] = NNCode38Weights[1*winner+i];
      }
      break;

    /* type 3 indicates winning node (lowest actn) in 1st hidden layer */
    case 3:
      {
        int winner=0;
        for ( i=1; i < 21; ++i )
          if ( NNCode38Acts[1+i] < NNCode38Acts[1+winner] )
            winner=i;

        outputs[0] = winner;
      }
      break;
  }
}

それとも私が生成場所を間違えているのでしょうか?