📄 util_xxz.java
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package forcast;/** * * @author Administrator */public class Util_xxz { public static int I=2,M=4,L=1; public static double land=0.1,thi=0.6; public static double wji[][]=new double[M][]; public static double wji_b[][]=new double[M][]; public static double wkj[][]=new double[L][]; public static double wkj_b[][]=new double[L][]; public static double xigk[]=new double[L]; public static double aj[]=new double[M]; public static double ak[]=new double[L]; public static void init() { wkj[0]=new double[]{4,0.3,1,5}; for(int i=0;i<L;i++) { wkj_b[i]=new double[]{4,0.3,1,5}; } /*for(int i=0;i<M;i++) { wji[i]=new double[]{1,1}; }*/ wji[0]=new double[]{1,0.1}; wji[1]=new double[]{1,0.3}; wji[2]=new double[]{6.5,0.3}; wji[3]=new double[]{1.5,4.3}; wji_b[0]=new double[]{1,0.1}; wji_b[1]=new double[]{1,0.3}; wji_b[2]=new double[]{6.5,0.3}; wji_b[3]=new double[]{1.5,4.3}; /*for(int i=0;i<M;i++) { wji_b[i]=new double[]{0,1}; }*/ } public static void bp(double ai[],double yk[]) { for(int j=0;j<M;j++) { //middleTrainer(j,aj[j],ai); aj[j]=f1(ai,thi,wji[j]); } for(int k=0;k<L;k++) { //outTrainer(k,yk[k],ak[k]); ak[k]=f1(aj,thi,wkj[k]); // System.out.println(ak[k]); } for(int j=0;j<M;j++) { middleTrainer(j,aj[j],ai); //aj[j]=f1(ai,thi,wji[j]); } for(int k=0;k<L;k++) { outTrainer(k,yk[k],ak[k]); //ak[k]=f1(aj,thi,wkj[k]); // System.out.println(ak[k]); } } public static void outTrainer(int k,double yk,double ak)//yk教师,ak输出,aj隐层输出 { xigk[k]=ak*(1-ak)*(yk-ak); //System.out.print("("+yk+":"+ak+":"+xigk[k]+")"); for(int j=0;j<M;j++) { double temp=wkj[k][j]; wkj[k][j]=wkj[k][j]+xigk[k]*land*aj[j]+ak*(wkj[k][j]-wkj_b[k][j]); wkj_b[k][j]=temp; } } public static void middleTrainer(int j,double aj,double ai[])//yk教师,ak输出 { double sum=0; for(int k=0;k<L;k++) { sum=sum+wkj[k][j]*xigk[k]; //System.out.print(":"+xigk[k]+":"); } double xigj=aj*(1-aj)*sum; //System.out.print(":"+aj+":"); for(int i=0;i<I;i++) { double temp=wji[j][i]; wji[j][i]=wji[j][i]+xigj*land*ai[i]+aj*(wji[j][i]-wji_b[j][i]); wji_b[j][i]=temp; } } public static double f1(double[] x,double thi,double[] w ) { float sum=0; for(int i=0;i<x.length;i++) { sum+=x[i]*w[i]; } return 1/(1+Math.exp(-sum+thi)); } public static double result(double ai[])//yk教师,ak输出 { for(int j=0;j<M;j++) { aj[j]=f1(ai,thi,wji[j]); } for(int k=0;k<L;k++) { ak[k]=f1(aj,thi,wkj[k]); //System.out.println(ak[k]); } return ak[0]; } public static void showW() { int k=0; for(k=0;k<L;k++) { for(int j=0;j<M;j++) { System.out.print(wkj[k][j]+" "); } System.out.println(""); } for(k=0;k<M;k++) { for(int j=0;j<I;j++) { System.out.print(wji[k][j]+" "); } System.out.println(""); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -