博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
人工神经网络入门(4) —— AFORGE.NET简介
阅读量:5043 次
发布时间:2019-06-12

本文共 1829 字,大约阅读时间需要 6 分钟。

范例程序下载:

如果您有疑问,可以先参考  
如果您未找到满意的答案,可以在下面留言:)
目录
介绍
这篇文章中,我们将介绍一个用C#实现的框架,利用这个框架,您可以方便地操作人工网络,计算机视觉,机器学习,图像处理,遗传算法等
 神经网络设计部分框架介绍
在这里我要强调:这段代码写的非常漂亮,一种代码如诗的美感,让我神往。
这段代码位于AForge.Neuro名字空间中。

这个库文件由6个主要部分组成:

  • Neuron - 所有神经元(neurons)的抽象基类, 它封装了所有neuron所共有的一些基本元素:权值, 输出值和输入值. 其他的neuron都是在该基础之上派生出来的.
  • Layer - 代表neurons的集合. 这个抽象基类封装了层(Layer)的共性.
  • Network - 代表一个神经网络, 是neuron's layers的集合. 这个抽象基类提供了Network的共性.其他的Network都是在该基础之上派生出来的.
  • IActivationFunction - 激活函数(activation function)的接口. 所有的激活函数都派生于该接口
  • IUnsupervisedLearning - 无导师学习(unsupervised learning)算法的接口 - 这种类型的学习体系在学习的过程中只提供输入,不提供针对该输入的期望输出. 该体系的目标是不断找出更优的解.
  • ISupervisedLearning - 有导师学习(supervised learning)算法的接口  - 这种类型的学习体系在学习的过程中提供输入和针对该输入的期望输出. 该体系的目标就是通过实际的输出和期望的输出来不断修正网络.

这些类的关系可以用下图来表示:

 

 

 

 

这个文件包含下面2中神经网络体系:

  • Activation Network
  • Distance Network

同时提供以下5种学习算法用于解决不同的问题:

  • Perceptron Learning 
  • Delta Rule Learning
  • Back Propagation Learning 
  • SOM Learning
  • Elastic Network Learning 

3 代码示例

范例程序下载:

该程序的使用说明和类似,可以参考http://www.cnblogs.com/gpcuster/archive/2008/05/22/1204456.html。但是是使用的AForge.Net中的框架实现。

拿求AND运算的例子来说,代码如下:

ActivationNetwork network = new ActivationNetwork(new ThresholdFunction(), 2, 1);
PerceptronLearning teacher = new PerceptronLearning(network);
            double[][] input = new double[4][];
            double[][] output = new double[4][];
            input[0] = new double[]  { 0, 0 };
            output[0] = new double[] { 0 };
            input[1] = new double[] { 0, 1 };
            output[1] = new double[] { 0 };
            input[2] = new double[] { 1, 0 };
            output[2] = new double[] { 0 };
            input[3] = new double[] { 1, 1 };
            output[3] = new double[] { 1 };
            double error = 1.0;
            while (error > 0.001)
            {
                error = teacher.RunEpoch(input, output);
            }

4 进一步学习

您可以查看类库的源代码,同时参考这篇文章《》

5 预告

我们将利用本章介绍的框架解决一个实际的问题:)

6 总结

在这一章中,我们介绍了一个ANN库,通过它,你可以非常方便地建立你自己的神经网络,但是前提你得了解解决问题该需要使用哪种类型的网络,同时配合使用什么样的学习算法。

转载于:https://www.cnblogs.com/lhxsoft/p/9509561.html

你可能感兴趣的文章
神的回帖
查看>>
3149 爱改名的小融 2
查看>>
20189208杨晨曦《移动平台开发实践》第9周学习总结
查看>>
UVa 11636 (注意读题) Hello World!
查看>>
find搜索文件系统,实时搜索
查看>>
【BZOJ3052】[wc2013]糖果公园 带修改的树上莫队
查看>>
Bootstrap 输入组
查看>>
hdu1003(简单dp)
查看>>
hdu3054(斐波那契。。。。找规律)
查看>>
个人博客02
查看>>
Winform架构
查看>>
vim 高级使用技巧第二篇
查看>>
Android 版本问题
查看>>
Vue中设置倒计时
查看>>
LINUX 设置IP地址,并能连接外网
查看>>
前端 MVC 变形记
查看>>
django.db中的transaction
查看>>
mybatis 获取数据库自动生成的主键
查看>>
方法的值传递机制练习
查看>>
第一次冲刺!
查看>>