Nöral ağlar. Uzmanlar için sorular. - sayfa 16

 
joo :

Ancak, görünüşe göre, kement biyolojik ağını yapay olanlarla çalışmak için bu şekilde eğitiyor.

Komik :))) Lanet olsun Nsh bu konuda çok bağımlılık yapıyor, bazen kopması son derece zor .....
 
lasso :

Merhaba.


Derhal sınıfların çok karışık olduğunu, hatta Şekil 'dekinden daha fazla olduğunu not edeceğim.


ama yine de ayırt edilebilir.

Kurnaz doğrusal yöntemlerle bile bölmek mümkün, ancak NN'nin en iyi (veya en azından kalite olarak karşılaştırılabilir) sonucu vermesini sağlayamıyorum.

Yeterli cevaplar almayı ve forumun diğer üyeleri için faydalı olacağını umuyorum!

Bir süredir sizinle iletişim kurma fırsatından mahrum kaldım ... Devam edelim.

................

Sayfa 14'te ortaya konan görev, gerçekten de bir sinir ağı tarafından basit bir şekilde çözülür.

Ekran görüntüsü olası yapılandırmalardan birini gösterir. Gizli katmandaki nöron sayısı, örneğin ağrısız bir şekilde 7'ye düşürülebilir.



Ve beni şaşırtan ve sevindiren şey, (bu basit görevle ilgili olarak) bariz doğrusal yöntemlerin aksine, NN'nin çözümlerini bulmasıydı.

ve bu çözümler ilk başta şaşırtıcıdır, ancak kapsamlı bir analizden sonra, NN çözümlerinin lineer olanlardan biraz daha verimli olduğu ortaya çıkıyor. Ooooo!

Devam et.... ;-)

 
lasso :

Sayfa 14'te ortaya konan görev, gerçekten de bir sinir ağı tarafından basit bir şekilde çözülür.

Ekranda olası konfigürasyonlardan biridir. Gizli katmandaki nöron sayısı, örneğin ağrısız bir şekilde 7'ye düşürülebilir.



Ve beni şaşırtan ve sevindiren şey, (bu basit görevle ilgili olarak) bariz doğrusal yöntemlerin aksine, NN'nin çözümlerini bulmasıydı.

ve bu çözümler ilk başta şaşırtıcıdır, ancak kapsamlı bir analizden sonra, NN çözümlerinin lineer olanlardan biraz daha verimli olduğu ortaya çıkıyor. Ooooo!

Devam et.... ;-)


Bu bir stokastik kesişim sorunu mu? Bu sorunu çözerek ne elde etmek istediğinizi anlamadım, durumun açıklamasının azlığı, Millet Meclisinin bu sorunu herhangi bir "anlamlı" şekilde çözmesine izin vermeyecektir. Böyle bir ağ son derece kararsız ve OB dışında kesinlikle işe yaramaz olacaktır. Ama evet, bir eğitim görevi için elbette yapacak ...

Şimdi nereye gidiyoruz? Belki koyunlarımıza daha yakın? zaman serisi tahmini?

 
Figar0 :

Bu bir stokastik kesişim sorunu mu? Bu sorunu çözerek ne elde etmek istediğinizi anlamadım , durumun açıklamasının azlığı, Millet Meclisinin bu sorunu herhangi bir "anlamlı" şekilde çözmesine izin vermeyecektir. Böyle bir ağ son derece kararsız ve OB dışında kesinlikle işe yaramaz olacaktır. Ama evet, bir eğitim görevi için elbette yapacak ...

Sırada nereye gidiyoruz? Belki koyunlarımıza daha yakın? zaman serisi tahmini?

TS cihazımın analitik bloklarında NS aparatını nasıl kullanacağımı öğrenmek ve bunu başkalarının yararına görsel ve örneklerle yapmak istiyorum.

................................

Böylece İstatistik 6'daki sınıflandırma sorunu çözülmüştür.

Ancak bu, doğrudan ticaretle ilgili olmayan bir üçüncü taraf programıdır.

Evet, çok sayıda grafik, rapor oluşturmanıza, bulunan ağı bir dosyaya kaydetmenize, C ve VB'de kod oluşturmanıza vb. Harika!

Ama işte yeni bir sorun geliyor!

Ve tüm bu servet nasıl doğru bir şekilde aktarılır ve MQL'de çalışır hale getirilir?

 
lasso :

Evet, çok sayıda grafik, rapor oluşturmanıza, bulunan ağı bir dosyaya kaydetmenize, C ve VB'de kod oluşturmanıza vb. Harika!

Ama işte yeni bir sorun geliyor!

Ve tüm bu servet nasıl doğru bir şekilde aktarılır ve MQL'de çalışır hale getirilir?



Eh, bir Expert Advisor'a dll eklemek hiç sorun değil. Uzmanlar / Örnekler klasöründe Terminal'in kendisinde açık bir örnek var, ayrıca "connect dll" ifadesinin bir forum araması bunu kolayca yapmanıza yardımcı olacaktır. Evet, makale bu konuyla ilgili gibi görünüyor ... Bu, sinir ağlarıyla çalışırken bir engel değil.

Çok daha ilginç sorular:

Bir sinir ağı ne yapmalı? Girdiler ne olacak? Onları en iyi nasıl hazırlayabilirim? NN'nin türünü ve mimarisini seçin, vb. Bütün bunlar, Kasım ayında kâr ticareti ve mümkünse Aralık 2010'da Ulusal Meclis'in yeni verileri gibi bazı pratik görevlerde yapmak daha kolay ve daha ilginç. Bununla birlikte, "NS Practicum for Yeni Başlayanlar ve Sadece Değil" gibi ayrı bir branşa koymak muhtemelen daha doğru olacaktır.

 
Figar0 :

Eh, bir Expert Advisor'a dll eklemek hiç sorun değil. Uzmanlar / Örnekler klasöründe Terminal'in kendisinde açık bir örnek var, ayrıca "connect dll" ifadesinin bir forum araması bunu kolayca yapmanıza yardımcı olacaktır. Evet, makale bu konuyla ilgili gibi görünüyor ... Bu, sinir ağlarıyla çalışırken bir engel değil.

Çok daha ilginç sorular:

Bir sinir ağı ne yapmalı? Girdiler ne olacak? Onları en iyi nasıl hazırlayabilirim? NS'nin türünü ve mimarisini seçin, vb. Bütün bunlar, Kasım ayında kâr ticareti ve mümkünse Aralık 2010'da Ulusal Meclis'in yeni verileri gibi bazı pratik görevlerde yapmak daha kolay ve daha ilginç. Bununla birlikte, "NS Practicum for Yeni Başlayanlar ve Sadece Değil" gibi ayrı bir branşa koymak muhtemelen daha doğru olacaktır.

Soruların ilginç olduğuna katılıyorum. Ve bunlara cevap alabilmek için MT ortamında işlevsel bir çalışmaya ihtiyacınız var.

......................

Soru, bir dll'nin nasıl ekleneceği değil, bu dll'nin nereden alınacağıdır?

İstatistik 6 bir dll oluşturur mu?

Yoksa acemi bir sinir ağı araştırmacısının NN'yi kendisinin yazıp bir DLL olarak düzenlemesini mi önerirsiniz? Anlamıyorum....

................................

FANN kitaplığının bir çeşidi vardır.

Başka seçenekler var mı?

 
lasso :

Soru, bir dll'nin nasıl ekleneceği değil, bu dll'nin nereden alınacağıdır?

İstatistik 6 bir dll oluşturur mu?

Yoksa acemi bir sinir ağı araştırmacısının NN'yi kendisinin yazıp bir DLL olarak düzenlemesini mi önerirsiniz? Anlamıyorum....

................................

FANN kitaplığının bir sürümü var.

Statistica, diğer birçok NN programı gibi (neuroshell, neurosolutions) - hatırladığım kadarıyla C kodu üretiyor. Kaynaktan dll'ye, adım küçüktür) Bu muhtemelen yeni başlayanlar için en kolay çıkış yoludur. Ağları doğrudan MQL'de yazabilirsiniz, ancak bu onu öğrenme sorununu gündeme getiriyor... FANN bana çok hantal ve kullanımı pek uygun değil gibi geldi.

 
Statistica, eğitilmiş sinir ağı konsolu uygulamasının bir C kaynağını oluşturur (böyle bir kaynağı derlerseniz, yürütülebilir bir dosya alırsınız). Kod, küçük bir yeniden çalışma ile asfaltta iki parmak gibi MQL4/5'e aktarılabilir. Sinir ağlarını öğrenmeye böyle başladım.
 
lasso :


FANN kitaplığının bir sürümü var.

Başka seçenekler var mı?


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

 
Figar0 :

Statistica, diğer birçok NN programı gibi (neuroshell, neurosolutions) - hatırladığım kadarıyla C kodu üretiyor. Kaynaktan dll'ye, adım küçüktür) Bu muhtemelen yeni başlayanlar için en kolay çıkış yoludur. Ağları doğrudan MQL'de yazabilirsiniz, ancak bu, eğitimiyle ilgili soruyu gündeme getiriyor... FANN bana çok hantal ve kullanımı pek uygun değil gibi geldi.


joo :
Statistica, eğitilmiş sinir ağı konsolu uygulamasının bir C kaynağını oluşturur (böyle bir kaynağı derlerseniz, yürütülebilir bir dosya alırsınız). Kod, küçük bir yeniden çalışma ile asfaltta iki parmak gibi MQL4/5'e aktarılabilir. Sinir ağlarını öğrenmeye böyle başladım.

İstatistiklerimin ürettiği şey budur 6 ))

sevinç nedir?

Tek keyif, sinyal girişten çıkışa ilerlerken hata ayıklayıcıya bakmaktır.

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


#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 ;
  }
}

Ya da orada değilim ve ürettiğim değil mi???