REAL RandomNormalREAL(REAL Mu, REAL Sigma) { REAL x,fx; do { x = RandomEqualREAL(Mu-3*Sigma, Mu+3*Sigma); fx = (1 / (sqrt(2*PI)*Sigma)) * exp(-sqr(x-Mu) / (2*sqr(Sigma))); } while (fx < RandomEqualREAL(0, 1)); return x; }
void RandomWeights(NET* Net) { INT i,j; for (i=1; i<=Net->OutputLayer->Units; i++) { for (j=0; j<=Net->InputLayer->Units; j++) { Net->OutputLayer->Weight[i][j] = RandomEqualREAL(-0.5, 0.5); } } }
void InitializePole(POLE* Pole) { do { Pole->x = 0; Pole->xDot = 0; Pole->w = RandomEqualREAL(-30, 30); Pole->wDot = 0; Pole->F = 0; } while (Pole->w == 0); }
void RandomWeights(NET* Net) { INT l,i,j; for (l=1; l<NUM_LAYERS; l++) { for (i=1; i<=Net->Layer[l]->Units; i++) { for (j=0; j<=Net->Layer[l-1]->Units; j++) { Net->Layer[l]->Weight[i][j] = RandomEqualREAL(); } } } }
void RandomWeights(NET* Net) { INT i,j; for (i=0; i<Net->KohonenLayer->Units; i++) { for (j=0; j<Net->InputLayer->Units; j++) { Net->KohonenLayer->Weight[i][j] = RandomEqualREAL(-30, 30); } } for (i=0; i<Net->OutputLayer->Units; i++) { for (j=0; j<Net->KohonenLayer->Units; j++) { Net->OutputLayer->Weight[i][j] = 0; } } }
void MultiLayerPerceptron::RandomWeights() { int i,j,k; for( i = 1; i < nNumLayers; i++ ) { for( j = 0; j < pLayers[i].nNumNeurons; j++ ) { for ( k = 0; k < pLayers[i-1].nNumNeurons; k++ ) { pLayers[i].pNeurons[j].w [k] = RandomEqualREAL(-0.5, 0.5); pLayers[i].pNeurons[j].dw[k] = 0.0; pLayers[i].pNeurons[j].wsave[k] = 0.0; } } } }