신경망. 전문가를 위한 질문입니다. - 페이지 16

 
joo :

그러나 분명히 올가미는 인공 네트워크와 함께 작동하도록 생물학적 네트워크를 이러한 방식으로 훈련합니다.

재밌네요 :)) 이런 점에서 Nsh는 중독성이 너무 강해서 가끔 헤어나오기가 극도로 힘들어요.....
 
lasso :

안녕하세요.


나는 클래스가 그림에서보다 훨씬 더 많이 혼합되어 있음을 즉시 알아차릴 것입니다.


그러나 여전히 구별할 수 있습니다.

교활한 선형 방법이 아닌 경우에도 나눌 수 있지만 NN이 최상의(또는 최소한 품질면에서 비교할 수 있는) 결과를 제공하도록 할 수 없습니다.

적절한 답변을 바라며 포럼의 다른 회원들에게 도움이 되기를 바랍니다!

얼마 동안 나는 당신과 의사 소통 할 기회를 박탈 당했습니다 ... 계속합시다.

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

14페이지에 제시된 작업은 실제로 기본적인 방식으로 신경망에 의해 해결됩니다.

화면에는 가능한 구성 중 하나가 있습니다. 예를 들어, 은닉층의 뉴런 수는 고통 없이 7개로 줄일 수 있습니다.



그리고 나를 놀라게 하고 기쁘게 한 것은 NN이 (이 간단한 작업과 관련하여) 명백한 선형 방법과 대조적으로 솔루션을 찾은 것입니다.

이러한 솔루션은 처음에는 어리둥절하지만 포괄적인 분석 후에 NN 솔루션이 선형 솔루션보다 약간 더 효율적이라는 것이 밝혀졌습니다. 오오오!

이동... ;-)

 
lasso :

14페이지에 제시된 작업은 실제로 기본적인 방식으로 신경망에 의해 해결됩니다.

화면에는 가능한 구성 중 하나가 있습니다. 예를 들어, 은닉층의 뉴런 수는 고통 없이 7개로 줄일 수 있습니다.



그리고 나를 놀라게 하고 기쁘게 한 것은 NN이 (이 간단한 작업과 관련하여) 명백한 선형 방법과 대조적으로 솔루션을 찾은 것입니다.

이러한 솔루션은 처음에는 어리둥절하지만 포괄적인 분석 후에 NN 솔루션이 선형 솔루션보다 약간 더 효율적이라는 것이 밝혀졌습니다. 오오오!

이동... ;-)


이것은 확률적 교차 문제입니까? 나는 당신이 이 문제를 해결함으로써 달성하고자 하는 바를 이해하지 못했습니다. 상황에 대한 설명의 부족으로 인해 국회가 이 문제를 "의미 있는" 방식으로 해결하지 못할 것이 분명합니다. 그러한 네트워크는 극도로 불안정하며 OB 외부에서는 전혀 쓸모가 없습니다. 그러나 예, 교육 작업의 경우 물론 할 것입니다 ...

다음은 어디로 가나요? 어쩌면 우리 양에 더 가깝습니까? 시계열 예측?

 
Figar0 :

이것은 확률적 교차 문제입니까? 나는 당신이 이 문제를 해결함으로써 달성하고자 하는 바를 이해하지 못했습니다 . 상황에 대한 설명의 부족으로 인해 국회가 이 문제를 "의미 있는" 방식으로 해결할 수 없을 것이 분명합니다. 그러한 네트워크는 극도로 불안정하며 OB 외부에서는 전혀 쓸모가 없습니다. 그러나 예, 교육 작업의 경우 물론 할 것입니다 ...

다음은 어디로 가나요? 어쩌면 우리 양에 더 가깝습니까? 시계열 예측?

내 TS의 분석 블록에서 NS 장치를 사용하는 방법을 배우고 다른 사람의 이익을 위해 시각적으로 그리고 예제를 사용하여 수행하고 싶습니다.

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

따라서 통계 6의 분류 작업이 해결되었습니다.

그러나 이것은 거래와 직접적인 관련이 없는 타사 프로그램입니다.

예, 많은 그래프, 보고서를 작성하고, 발견된 네트워크를 파일에 저장하고, C 및 VB로 코드를 생성하는 등의 작업을 수행할 수 있습니다. 엄청난!

그러나 여기에 새로운 문제가 발생합니다!

이 모든 부를 올바르게 이전하고 MQL에서 작동하게 하는 방법은 무엇입니까?

 
lasso :

예, 많은 그래프, 보고서를 작성하고, 발견된 네트워크를 파일에 저장하고, C 및 VB로 코드를 생성하는 등의 작업을 수행할 수 있습니다. 엄청난!

그러나 여기에 새로운 문제가 발생합니다!

이 모든 부를 올바르게 이전하고 MQL에서 작동하게 하는 방법은 무엇입니까?



글쎄요, Expert Advisor에 dll을 첨부하는 것은 전혀 문제가 되지 않습니다. Experts/Samples 폴더의 터미널 자체에 명확한 예가 있으며 "connect dll"이라는 구에 대한 포럼 검색을 통해 이를 쉽게 수행할 수 있습니다. 예, 기사가이 주제에 관한 것 같습니다 ... 이것은 신경망으로 작업 할 때 걸림돌이 아닙니다.

훨씬 더 흥미로운 질문:

신경망은 무엇을 해야 합니까? 입력 사항은 무엇입니까? 어떻게 준비하는 것이 가장 좋을까요? NN 등의 유형 및 아키텍처를 선택합니다. 이 모든 것이 2010년 11월, 가능하다면 12월 국회의 새로운 데이터로 이익을 거래하는 것과 같은 일부 실용적인 작업에서 수행하는 것이 더 쉽고 흥미로울 것입니다. 하지만 "초보자를 위한 NS Practicum and Not Only"와 같은 별도의 분기에 넣는 것이 더 정확할 것입니다.

 
Figar0 :

글쎄요, Expert Advisor에 dll을 첨부하는 것은 전혀 문제가 되지 않습니다. Experts/Samples 폴더의 터미널 자체에 명확한 예가 있으며 "connect dll"이라는 구에 대한 포럼 검색을 통해 이를 쉽게 수행할 수 있습니다. 예, 기사가이 주제에 관한 것 같습니다 ... 이것은 신경망으로 작업 할 때 걸림돌이 아닙니다.

훨씬 더 흥미로운 질문:

신경망은 무엇을 해야 합니까? 입력 사항은 무엇입니까? 어떻게 준비하는 것이 가장 좋을까요? NS 유형 및 아키텍처 등을 선택합니다. 이 모든 것이 2010년 11월, 가능하다면 12월 국회의 새로운 데이터로 이익을 거래하는 것과 같은 일부 실용적인 작업에서 수행하는 것이 더 쉽고 흥미로울 것입니다. 하지만 "초보자를 위한 NS Practicum and Not Only"와 같은 별도의 분기에 넣는 것이 더 정확할 것입니다.

질문이 흥미롭다는 데 동의합니다. 그리고 그에 대한 답을 얻으려면 MT 환경에서 기능적으로 작업해야 합니다.

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

문제는 dll을 첨부하는 방법이 아니라 이 dll을 어디에서 얻을 수 있느냐는 것입니다.

통계 6은 dll을 생성합니까?

아니면 초보 신경망 연구원이 NN을 직접 작성하고 DLL로 정렬하도록 제안하시겠습니까? 나는 당신을 이해하지 못한다....

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

FANN 라이브러리의 변형이 있습니다 .

다른 옵션이 있습니까?

 
lasso :

문제는 dll을 첨부하는 방법이 아니라 이 dll을 어디에서 얻을 수 있느냐는 것입니다.

통계 6은 dll을 생성합니까?

아니면 초보 신경망 연구원이 NN을 직접 작성하고 DLL로 정렬하도록 제안하시겠습니까? 나는 당신을 이해하지 못한다....

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

FANN 라이브러리 버전이 있습니다.

다른 많은 NN 프로그램(neuroshell, neurosolutions)과 마찬가지로 Statistica는 내가 기억하는 한 C 코드를 생성합니다. 소스에서 dll까지 단계는 작습니다) 이것은 아마도 초보자에게 가장 쉬운 방법 일 것입니다. MQL에서 직접 네트워크를 작성할 수 있지만 이것은 훈련에 대한 문제를 제기합니다. FANN은 나에게 너무 번거롭고 사용하기 편리하지 않은 것 같았습니다.

 
Statistica는 훈련된 신경망 콘솔 애플리케이션의 C 소스를 생성합니다(이러한 소스를 컴파일하면 exe 실행 파일을 얻음). 코드는 약간의 재작업으로 아스팔트 위의 두 손가락처럼 MQL4/5로 전송할 수 있습니다. 이것이 내가 신경망에 대해 배우기 시작한 방법입니다.
 
lasso :


FANN 라이브러리 버전이 있습니다.

다른 옵션이 있습니까?


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

 
Figar0 :

다른 많은 NN 프로그램(neuroshell, neurosolutions)과 마찬가지로 Statistica는 내가 기억하는 한 C 코드를 생성합니다. 소스에서 dll까지 단계는 작습니다) 이것은 아마도 초보자에게 가장 쉬운 방법 일 것입니다. MQL에서 직접 네트워크를 작성할 수 있지만 이것은 훈련에 대한 문제를 제기합니다. FANN은 나에게 너무 번거롭고 사용하기 편리하지 않은 것 같았습니다.


:
Statistica는 훈련된 신경망 콘솔 애플리케이션의 C 소스를 생성합니다(이러한 소스를 컴파일하면 exe 실행 파일을 얻음). 코드는 약간의 재작업으로 아스팔트 위의 두 손가락처럼 MQL4/5로 전송할 수 있습니다. 이것이 내가 신경망에 대해 배우기 시작한 방법입니다.

이것은 내 통계가 생성하는 것입니다 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 ;
  }
}

아니면 내가 생성한 것이 아니라 거기에 있지 않습니까???