开源AI系统AForge.NET学习:构建神经网络
AForge.NET是.Net版本的人工智能和机器视觉的开源库,项目地址:https://github.com/andrewkirillov/AForge.NET
这个库的实现比较简单,易于理解。下面展示一下如何应用神经网络进行训练。
//构建神经网络 var network = new ActivationNetwork( //new BipolarSigmoidFunction(2), //采用双极型S函数 new SigmoidFunction(), //采用单极型S函数,取值范围在(0,1)之间 inputs.Length, // 输入的数目 20, // 第一层神经元的数目 7, //第2层 6, //第3层 1 // 输出神经元的数目 );
//选择训练算法,此处选择的是进化算法(遗传算法) var teacher = new EvolutionaryLearning( network, //神经网络 300, //初始种群的数量 fitnessFunction //适应度函数 );
其中,适应度函数是实现接口IFitnessFunction的类,可以参考内置的EvolutionaryFitness实现。
然后,就可以愉快的进行训练了,每一次训练返回偏差率,它是最好的个体的倒数,1/error=最好个体的适应度。
double error = teacher.RunEpoch( );
fitnessFunction