人工神经网络入门(4) —— AFORGE.NET简介

范例程序下载:http://files.cnblogs.com/gpcuster/ANN3.rar
如果您有疑问,可以先参考 FAQ 
如果您未找到满意的答案,可以在下面留言:)

目录
人工神经网络入门(1) —— 单层人工神经网络应用示
人工神经网络入门(2) —— 人工神经基本概念介绍
人工神经网络入门(3) —— 多层人工神经网络应用示例
人工神经网络入门(4) —— AForge.Net简介

介绍
这篇文章中,我们将介绍一个用C#实现的框架AForge,利用这个框架,您可以方便地操作人工网络,计算机视觉,机器学习,图像处理,遗传算法等

 神经网络设计部分框架介绍
在这里我要强调:这段代码写的非常漂亮,一种代码如诗的美感,让我神往。

这段代码位于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://files.cnblogs.com/gpcuster/ANN3.rar

该程序的使用说明和人工神经网络入门(1) —— 单层人工神经网络应用示例类似,可以参考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 进一步学习

您可以查看类库的源代码,同时参考这篇文章《Neural Network On C#

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

6 总结

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

原文地址:https://www.cnblogs.com/lhxsoft/p/9509561.html

时间: 2024-11-10 13:47:46

人工神经网络入门(4) —— AFORGE.NET简介的相关文章

人工神经网络简介和单层网络实现AND运算--AForge.NET框架的使用(五)

原文:人工神经网络简介和单层网络实现AND运算--AForge.NET框架的使用(五) 前面4篇文章说的是模糊系统,它不同于传统的值逻辑,理论基础是模糊数学,所以有些朋友看着有点迷糊,如果有兴趣建议参考相关书籍,我推荐<模糊数学教程>,国防工业出版社,讲的很全,而且很便宜(我买成7元钱). 人工神经网络的简介 人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型.它是一种运算模型,由大量神经元和相互的连接组成,每个神经元代表一种特定的输出函数,称为激励函数(activati

【转】人工神经网络简介

下载地址:人工神经网络.pdf [转]人工神经网络简介

人工神经网络简介

本文主要对人工神经网络基础进行了描述,主要包括人工神经网络的概念.发展.特点.结构.模型. 本文是个科普文,来自网络资料的整理. 一.             人工神经网络的概念 人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型.该模型以并行分布的处理能力.高容错性.智能化和自学习等能力为特征,

用BP人工神经网络识别手写数字

http://wenku.baidu.com/link?url=HQ-5tZCXBQ3uwPZQECHkMCtursKIpglboBHq416N-q2WZupkNNH3Gv4vtEHyPULezDb50ZcKor41PEikwv5TfTqwrsQ4-9wmH06L7bYD04u 用BP人工神经网络识别手写数字 yzw20091201上传于2013-01-31|暂无评价|356人阅读|13次下载|暂无简介|举报文档 在手机打开 赖勇浩( http://laiyonghao.com ) 这是我读工

C#中调用Matlab人工神经网络算法实现手写数字识别

手写数字识别实现 设计技术参数:通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方法,有较高的识别率 关键字:二值化  投影  矩阵  目标定位  Matlab 手写数字图像识别简介: 手写阿拉伯数字识别是图像内容识别中较为简单的一个应用领域,原因有被识别的模式数较少(只有0到9,10个阿拉伯数字).阿拉伯数字笔画少并且简单等.手写阿拉伯数字的识别采用的方法相对于人脸识别.汉字识别等应用领域来说可以采用更为灵活的方法,例如基于规则的方法.基于有限状态自动机的方法.基于统计的方法和基于神

开源的人工神经网络计算库 FANN 学习笔记 1

开源的人工神经网络计算库 FANN 学习笔记 1 这年头机器学习非常的火,神经网络算是机器学习算法中的比较重要的一种.这段时间我也花了些功夫,学了点皮毛,顺便做点学习笔记. 介绍人工神经网络的基本理论的教科书很多.我正在看的是蒋宗礼教授写的<人工神经网络导论>,之所以选这本书,主要是这本比较薄,太厚的书实在是啃不动.这本书写的也比较浅显,用来入门正合适. 看书的同时也在网上找了找人工神经网络的库代码.感觉 FANN 这个库还不错,就顺道学了学这个库的使用方法. FANN 是个开源的 C 语言实

深度学习——人工神经网络再掀研究热潮

深度学习——人工神经网络再掀研究热潮 胡晓林 人工神经网络起源于上世纪40年代,到今天已经70年历史了.就像人的一生,经历了起起落落,有过辉煌,有过黯淡,有过嘈杂,有过冷清.总体说来,过去的20年中人工神经网络的研究不温不火,直到最近三五年,随着深度学习概念的提出,人工神经网络才又重新焕发生机,甚至再度掀起研究热潮.本文简述一下人工神经网络的“前世今生”,并简单展望一下它的未来. 第一个神经元模型是1943年McCulloch和Pitts提出的,称为threshold logic,它可以实现一些

人工神经网络Step01

感知器 人工神经网络(ANN)是机器学习的一重要分支,在没介绍神经网络之前,有必要先介绍感知器,感知器是人工神经网络的前身. 有这么一个问题,我们知道某人的体重及身高可否估计出人体脂肪的含量比例(就是肥瘦问题了)? 而实际的 在这之前,我们随机在街上找了几百人做测量,测量下面的数据: 1.年龄(岁)2.体重(公斤)3.身高(厘米)4.颈围(厘米)5.胸围(厘米)6.腹部(厘米)7.臀围(厘米)8.大腿围(厘米)9.膝围(厘米)10.踝周长(厘米)11.肱二头肌(扩展)腰围(cm)12.前臂围(厘

猪猪的机器学习笔记(十)人工神经网络

人工神经网络 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第十次次课在线笔记.人工神经网络在支持图像处理.文本.语言以及序列多种类型的数据处理时都用用到.本次课程更加侧重于实践,把抽象的人工神经网络用程序展现出来,课上讲述了编程使用的工具和方法,对于日后实验有非常重要的帮助. 引言: 人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点.它从信息处理角度对人脑神经元网络进行抽象,建立某种