²é¿´: 589  |  »Ø¸´: 2

΢Цȥ¼á³Ö

½ð³æ (ÕýʽдÊÖ)

[½»Á÷] Éñ¾­ÍøÂç ÒÑÓÐ2È˲ÎÓë

»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
2Â¥2013-10-12 16:21:12
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

leimin2008

гæ (ÕýʽдÊÖ)

¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
#include "iostream.h"
#include "iomanip.h"
#define N 20 //ѧϰÑù±¾¸öÊý
#define IN 1 //ÊäÈë²ãÉñ¾­ÔªÊýÄ¿
#define HN 8 //Òþ²ãÉñ¾­ÔªÊýÄ¿
#define ON 1 //Êä³ö²ãÉñ¾­ÔªÊýÄ¿
double P[IN]; //µ¥¸öÑù±¾ÊäÈëÊý¾Ý
double T[ON]; //µ¥¸öÑù±¾½ÌʦÊý¾Ý
double W[HN][IN]; //ÊäÈë²ãÖÁÒþ²ãȨֵ
double V[ON][HN]; //Òþ²ãÖÁÊä³ö²ãȨֵ
double X[HN]; //Òþ²ãµÄÊäÈë
double Y[ON]; //Êä³ö²ãµÄÊäÈë
double H[HN]; //Òþ²ãµÄÊä³ö
double O[ON]; //Êä³ö²ãµÄÊä³ö
double sita[HN]; //Òþ²ãµÄãÐÖµ
double gama[ON]; //Êä³ö²ãµÄãÐÖµ
double err_m[N]; //µÚm¸öÑù±¾µÄ×ÜÎó²î
double alpha; //Êä³ö²ãÖÁÒþ²ãµÄѧϰЧÂÊ
double beta; //Òþ²ãÖÁÊäÈë²ãѧϰЧÂÊ
//¶¨ÒåÒ»¸ö·ÅѧϰÑù±¾µÄ½á¹¹
struct {
double input[IN];
double teach[ON];
}Study_Data[N][IN];

///////////////////////////
//³õʼ»¯È¨¡¢ãÐÖµ×Ó³ÌÐò/////
///////////////////////////
initial()
{
float sgn;
float rnd;
int i,j;
//Òþ²ãȨ¡¢ãÐÖµ³õʼ»¯//
  {
  //sgn=pow((-1),random(100));
  sgn=rand();
  rnd=sgn*(rand()%100);
  W[j]= rnd/100;//Òþ²ãȨֵ³õʼ»¯¡£
  }
//randomize();
  {
//sgn=pow((-1),random(1000));
  sgn=rand();
  rnd=sgn*(rand()%1000);
  sita[j]= rnd/1000;//Öмä²ããÐÖµ³õʼ»¯
  cout<<"sita"<<sita[j]<<endl;
  }
//Êä³ö²ãȨ¡¢ãÐÖµ³õʼ»¯//
//randomize();
for (int k=0;k<ON;k++)
for (int j=0;j<HN;j++)
{
//sgn=pow((-1),random(1000));
   sgn=rand();
   rnd=sgn*(rand()%1000);
   V[k][j]=rnd/1000;//µÚm¸öÑù±¾Êä³ö²ãȨֵ³õʼ»¯
}
//randomize();
  {
  //sgn=pow((-1),random(10));
  sgn=rand();
  rnd=sgn*(rand()%10);
  gama[k]=rnd/10;//Êä³ö²ããÐÖµ³õʼ»¯
  cout<<"gama[k]"<<endl;
  }
  return 1;

}//×Ó³ÌÐòinitial()½áÊø


////////////////////////////////
////µÚm¸öѧϰÑù±¾ÊäÈë×Ó³ÌÐò///
///////////////////////////////
input_P(int m)
{
for (int i=0;i<IN;i++)
P=Study_Data[m]->input;
//»ñµÃµÚm¸öÑù±¾µÄÊý¾Ý
//cout<<"µÚ"< //fprintf(fp,"µÚ%d¸öÑù±¾µÄѧϰÊäÈ룺
//P[%d]=%f\n",m,P);
return 1;
}//×Ó³ÌÐòinput_P(m£©½áÊø

/////////////////////////////
////µÚm¸öÑù±¾½ÌʦÐźÅ×Ó³ÌÐò//
/////////////////////////////
input_T(int m)
{
for (int k=0;k<m;k++)
T[k]=Study_Data[m]->teach[k];
//cout<<"µÚ"< //fprintf(fp,"µÚ%d¸öÑù±¾µÄ½ÌʦÐźţºT[%d]=%f\n",m,T[k]);
return 1;
}//×Ó³ÌÐòinput_T(m)½áÊø

/////////////////////////////////
//Òþ²ã¸÷µ¥ÔªÊäÈë¡¢Êä³öÖµ×Ó³ÌÐò///
/////////////////////////////////
H_I_O(){
double sigma;
int i,j;
for (j=0;j<HN;j++)
sigma=0.0;
for (i=0;i<IN;i++)
sigma+=W[j]*P;//ÇóÒþ²ãÄÚ»ý
}
X[j]=sigma - sita;//ÇóÒþ²ã¾»ÊäÈë
H[j]=1.0/(1.0+exp(-X[j]));//ÇóÒþ²ãÊä³ö
}
return 1;
}//×Ó³ÌÐòH_I_O()½áÊø

///////////////////////////////////
//Êä³ö²ã¸÷µ¥ÔªÊäÈë¡¢Êä³öÖµ×Ó³ÌÐò///
///////////////////////////////////
O_I_O()
{
double sigma;
for (int k=0;k<ON;k++)
sigma=0.0;
for (int j=0;j<HN;j++)
sigma+=V[k][j]*H[k];//ÇóÊä³ö²ãÄÚ»ý
}
Y[k]=sigma-gama[k]; //ÇóÊä³ö²ã¾»ÊäÈë
O[k]=1.0/(1.0+exp(-Y[k]));//ÇóÊä³ö²ãÊä³ö
}
return 1;
}//×Ó³ÌÐòO_I_O()½áÊø

////////////////////////////////////
//Êä³ö²ãÖÁÒþ²ãµÄÒ»°ã»¯Îó²î×Ó³ÌÐò////
////////////////////////////////////
double d_err[ON];
Err_O_H(int m)
{
double abs_err[ON];//ÿ¸öÑù±¾µÄ¾ø¶ÔÎó²î¶¼ÊÇ´Ó0¿ªÊ¼µÄ
double sqr_err=0;//ÿ¸öÑù±¾µÄƽ·½Îó²î¼ÆËã¶¼ÊÇ´Ó0¿ªÊ¼µÄ
//for (int output=0;output<ON;output++)  //output???
  for (int k=0;k<ON;k++)
  abs_err[k]=T[k]-O[k];
//ÇóµÚm¸öÑù±¾ÏµĵÚk¸öÉñ¾­ÔªµÄ¾ø¶ÔÎó²î
sqr_err+=(abs_err[k])*(abs_err[k]);//ÇóµÚm¸öÑù±¾ÏÂÊä³ö²ãµÄƽ·½Îó²î

d_err[k]=abs_err[k]*O[k]*(1.0-O[k]);//d_err[k]Êä³ö²ã¸÷Éñ¾­ÔªµÄÒ»°ã»¯Îó²î
}
err_m[m]=sqr_err/2;//µÚm¸öÑù±¾ÏÂÊä³ö²ãµÄƽ·½Îó²î/2=µÚm¸öÑù±¾µÄ¾ù·½Îó²î
return 1;
}//×Ó³ÌÐòErr_O_H(m)½áÊø

////////////////////////////////////
//Òþ²ãÖÁÊäÈë²ãµÄÒ»°ã»¯Îó²î×Ó³ÌÐò////
////////////////////////////////////
double e_err[HN];
Err_H_I(){
double sigma;
//for (int hidden=0;hidden
  for (int j=0;j<HN;j++)
  sigma=0.0;
     for (int k=0;k<ON;k++)
      sigma=d_err[k]*V[k][j];
}
e_err[j]=sigma*H[j]*(1-H[j]);//Òþ²ã¸÷Éñ¾­ÔªµÄÒ»°ã»¯Îó²î
}
return 1;
}//×Ó³ÌÐòErr_H_I()½áÊø

////////////////////////////////////////////////////////
//Êä³ö²ãÖÁÒþ²ãµÄȨֵµ÷Õû¡¢Êä³ö²ããÐÖµµ÷Õû¼ÆËã×Ó³ÌÐò//////
////////////////////////////////////////////////////////
Delta_O_H(int m,FILE* fp)
{
for (int k=0;k<ON;k++)
for (int j=0;j<HN;j++)
  //cout<<"µÚ"< fprintf(fp,"µÚ%d¸öÑù±¾Ê±µÄÊä³ö²ãÖÁÒþ²ãµÄȨֵΪ£º%f\n",m,W[k][j]);
  V[k][j]+=alpha*d_err[k]*H[j];//Êä³ö²ãÖÁÒþ²ãµÄȨֵµ÷Õû
}
gama[k]+=alpha*d_err[k];//Êä³ö²ãÖÁÒþ²ãµÄãÐÖµµ÷Õû
}
return 1;
}//×Ó³ÌÐòDelta_O_H()½áÊø

/////////////////////////////////////////////////////
//Òþ²ãÖÁÊäÈë²ãµÄȨֵµ÷Õû¡¢Òþ²ããÐÖµµ÷Õû¼ÆËã×Ó³ÌÐò/////
/////////////////////////////////////////////////////
Delta_H_I(int m,FILE* fp)
{
for (int j=0;j<HN;j++)
  for (int i=0;i<IN;i++)
//cout<<"µÚ"< fprintf(fp,"µÚ%d¸öÑù±¾Ê±µÄÊä³ö²ãÖÁÒþ²ãµÄȨֵΪ£º%f\n",m,V[j]);
W[j]+=beta*e_err[j]*P;//Òþ²ãÖÁÊäÈë²ãµÄȨֵµ÷Õû
}
sita[j]+=beta*e_err[j];
}
return 1;
}//×Ó³ÌÐòDelta_H_I()½áÊø

/////////////////////////////////
//N¸öÑù±¾µÄÈ«¾ÖÎó²î¼ÆËã×Ó³ÌÐò////
/////////////////////////////////
double Err_Sum()
{
double total_err=0;
for (int m=0;m<N;m++)
  total_err+=err_m[m];//ÿ¸öÑù±¾µÄ¾ù·½Îó²î¼ÓÆðÀ´¾Í³ÉÁËÈ«¾ÖÎó²î
}
return 1;
}//×Ó³ÌÐòErr_sum()½áÊø

/**********************/
/**³ÌÐòÈë¿Ú£¬¼´Ö÷³ÌÐò**/
/**********************/
main()
{
FILE *fp;
double sum_err;
int study;//ѵÁ·´ÎÊý

if ((fp=fopen("bp.txt","a+")==NULL)
{
printf("²»ÄÜ´´½¨bp.txtÎļþ!\n";
exit(1);
}
cout<<"ÇëÊäÈëÊä³ö²ãµ½Òþº¬²ãѧϰЧÂÊ: alpha=\n";
cin>>alpha;

cout<<"ÇëÊäÈëÒþº¬²ãµ½ÊäÈë²ãѧϰЧÂÊ: beta=\n";
cin>>beta;

int study=0; //ѧϰ´ÎÊý
double Pre_error ; //Ô¤¶¨Îó²î
cout<<"ÇëÊäÈëÔ¤¶¨Îó²î: Pre_error= \n";
cin>>Pre_error;

int Pre_times;
cout<<"ÇëÊäÈëÔ¤¶¨×î´óѧϰ´ÎÊýre_times=\n";
cin>>Pre_times;

cout<<"ÇëÊäÈëѧϰÑù±¾Êý¾Ý\n";
{
for (int m=0;m<N;m++)
  cout<<"ÇëÊäÈëµÚ"<<m+1<<"×éѧϰÑù±¾"<<endl;
   for (int i=0;i<IN;i++)
    cin>>Study_Data[m]->input;
}
{  
for (int m=0;m<N;m++)
cout<<"ÇëÊäÈëµÚ"<<m+1<<"×é½ÌʦÑù±¾"<<endl;
  for (int k=0;k<ON;k++)
cin>>Study_Data[m]->teach[k];
}

initial(); //Òþ²ã¡¢Êä³ö²ãȨ¡¢ãÐÖµ³õʼ»¯ (1)
do
{
++study; ///???
for (int m=0;m<N;m++)
{
input_P(m); //ÊäÈëµÚm¸öѧϰÑù±¾ (2)
input_T(m);//ÊäÈëµÚm¸öÑù±¾µÄ½ÌʦÐźŠ(3)
H_I_O(); //µÚm¸öѧϰÑù±¾Òþ²ã¸÷µ¥ÔªÊäÈë¡¢Êä³öÖµ (4)
O_I_O(); //µÚm¸öѧϰÑù±¾Êä³ö²ã¸÷µ¥ÔªÊäÈë¡¢Êä³öÖµ (5)
Err_O_H(m); //µÚm¸öѧϰÑù±¾Êä³ö²ãÖÁÒþ²ãÒ»°ã»¯Îó²î (6)
Err_H_I(); //µÚm¸öѧϰÑù±¾Òþ²ãÖÁÊäÈë²ãÒ»°ã»¯Îó²î (7)
Delta_O_H(m,fp); //µÚm¸öѧϰÑù±¾Êä³ö²ãÖÁÒþ²ãȨãÐÖµµ÷Õû¡¢ÐÞ¸Ä (8)
Delta_H_I(m,fp); //µÚm¸öѧϰÑù±¾Òþ²ãÖÁÊäÈë²ãȨãÐÖµµ÷Õû¡¢ÐÞ¸Ä (9)
} //È«²¿Ñù±¾ÑµÁ·Íê±Ï

sum_err=Err_Sum(); //È«²¿Ñù±¾È«¾ÖÎó²î¼ÆËã (10)
{
cout<<"µÚ"<<study<<"´ÎѧϰµÄ¾ù·½Îó²îΪ"<<sum_err<<endl;
fprintf(fp,"µÚ%d´ÎѧϰµÄ¾ù·½Îó²îΪ£º%f\n",study,sum_err);
}

while (sum_err > Pre_error)    //or(study
{ //N¸öÑù±¾È«¾ÖÎó²îСÓÚÔ¤¶¨Îó²î·ñ£¿ СÓÚÔòÍ˳ö (11)
cout<<"ÍøÂçÒѾ­Ñ§Ï°ÁË"<<study<<"´Î,ѧϰµÄ¾ù·½Îó²îΪ"<<sum_err<<endl;
fprintf(fp,"ÍøÂçÒѾ­Ñ§Ï°ÁË%d´Î£¬ÏÖÔÚµÄÈ«¾ÖÎó²îΪ£º%f\n",study,total_err);
fclose(fp);
}
char s;
cout<<"ÇëËæ±ãÊäÈëÒ»¸ö×Ö·û£¬°´»Ø³µÍ˳ö³ÌÐò£¡\n";
cin>>s;
return 1;
}
3Â¥2013-10-15 09:49:35
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ΢Цȥ¼á³Ö µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Ò»Ö¾Ô¸ºÓ±±¹¤Òµ´óѧ0817»¯¹¤278·ÖÇóµ÷¼Á +7 jhybd 2026-03-23 11/550 2026-03-23 23:29 by ´ô´ôʦ½ã
[¿¼ÑÐ] Ò»Ö¾Ô¸ÖÐÄÏ´óѧ»¯Ñ§Ñ§Ë¶0703×Ü·Ö337Çóµ÷¼Á +5 niko- 2026-03-22 5/250 2026-03-23 22:01 by fuyu_
[»ù½ðÉêÇë] Çë½ÌÏ´ó¼Ò 2026Äê¹ú¼Ò»ù½ðÉêÇëÊÇ˫äÉóÂ𣿠+3 lishucheng1 2026-03-22 4/200 2026-03-23 20:48 by god_tian
[¿¼ÑÐ] Ò»Ö¾Ô¸ÖØÇì´óѧ085700×ÊÔ´Óë»·¾³£¬×Ü·Ö308Çóµ÷¼Á +7 īīĮ 2026-03-23 8/400 2026-03-23 20:36 by Creta
[¿¼ÑÐ] 316Çóµ÷¼Á +7 ÁºÜçö© 2026-03-19 7/350 2026-03-23 16:21 by lingjue
[¿¼ÑÐ] 333Çóµ÷¼Á +6 87639 2026-03-21 10/500 2026-03-23 10:41 by Iveryant
[¿¼ÑÐ] Ò»Ö¾Ô¸070300Õã´ó»¯Ñ§358·Ö£¬Çóµ÷¼Á£¡ +4 ËÖËÖÓã.. 2026-03-21 4/200 2026-03-23 08:12 by Iveryant
[¿¼ÑÐ] 0854µç×ÓÐÅÏ¢Çóµ÷¼Á +3 ¦Á____ 2026-03-22 3/150 2026-03-22 21:28 by zhq0425
[¿¼ÑÐ] 311Çóµ÷¼Á +6 ¶¬Ê®Èý 2026-03-18 6/300 2026-03-22 20:18 by edmund7
[¿¼ÑÐ] ÉúÎïѧ071000 329·ÖÇóµ÷¼Á +5 ÎÒ°®ÉúÎïÉúÎﰮΠ2026-03-17 5/250 2026-03-22 16:42 by tcx007
[¿¼ÑÐ] Çóµ÷¼Á +4 ÒªºÃºÃÎÞÁÄ 2026-03-21 4/200 2026-03-21 18:57 by ѧԱ8dgXkO
[¿¼ÑÐ] Ò»Ö¾Ô¸Éî´ó£¬0703»¯Ñ§£¬×Ü·Ö302£¬Çóµ÷¼Á +4 ÆßÔÂ-ÆßÆß 2026-03-21 4/200 2026-03-21 18:20 by ѧԱ8dgXkO
[¿¼ÑÐ] 302Çóµ÷¼Á +12 ºôºôºô¡£¡£¡£¡£ 2026-03-17 12/600 2026-03-21 17:29 by ColorlessPI
[¿¼ÑÐ] 0805²ÄÁÏ320Çóµ÷¼Á +3 ÉÎïÓï 2026-03-20 3/150 2026-03-21 15:46 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 268Çóµ÷¼Á +9 ¼òµ¥µã0 2026-03-17 9/450 2026-03-21 15:37 by lature00
[¿¼ÑÐ] Çóµ÷¼Á +6 Mqqqqqq 2026-03-19 6/300 2026-03-21 08:04 by JourneyLucky
[¿¼ÑÐ] »ª¶«Ê¦·¶´óѧ-071000ÉúÎïѧ-293·Ö-Çóµ÷¼Á +3 Ñо¿ÉúºÎÑþÃ÷ 2026-03-18 3/150 2026-03-21 01:30 by JourneyLucky
[¿¼ÑÐ] ÄϾ©´óѧ»¯Ñ§376Çóµ÷¼Á +3 hisfailed 2026-03-19 6/300 2026-03-20 23:43 by hisfailed
[¿¼ÑÐ] Çóµ÷¼Á£¬Ò»Ö¾Ô¸:ÄϾ©º½¿Õº½Ìì´óѧ´óѧ £¬080500²ÄÁÏ¿ÆÑ§Ó빤³Ìѧ˶£¬×Ü·Ö289·Ö +4 @taotao 2026-03-19 4/200 2026-03-20 22:14 by JourneyLucky
[¿¼ÑÐ] 261ÇóBÇøµ÷¼Á£¬¿ÆÑо­Àú·á¸» +3 Å£Ä̺Üæ 2026-03-20 4/200 2026-03-20 19:34 by JourneyLucky
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û