/* lab070420a.c Simple Neuron 2007.4.19 A.Date last modifield at 1 May 2009 % gcc lab070420a.c -lm */ #include #include /* drand48 */ #include /* log */ #define MAX_SAMPLES 1000 #define N_DIM 3 /* 以下のパラメータ値を変えて学習の様子がどう変化するか観測してみる */ #define RAND_SEED 123456789 /* 乱数の種 */ #define SLEEP 50000 /* 表示スピード */ int n_trials = 100; /* 学習回数 */ double eta = 0.1; /* 学習係数 */ double lambda=1.0; /* シグモイド関数のパラメータ */ char data_file1[] = "apples.dat"; /* 入力データ.課題C,Dではファイル名を変える */ char data_file2[] = "oranges.dat"; int n_data, n_data1, n_data2; double sigmoid(double x){ return 1.0/(1.0 + exp(-lambda*x)); } int main (int argc, char *argv[] ) { FILE *gp, *fp; int a,i,j,l,t, n; long int seed = RAND_SEED; int n_data; int teacher; double y1, y2; double dw[N_DIM]; double w[N_DIM]; double data[MAX_SAMPLES][N_DIM]; double u,z,e,e2; double x_start = -1.0, x_end=5.0; double y_start = -1.0, y_end=5.0; for (i=1; i