逖靖寒的世界
Share my world. Share your viewpoint.
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 106 文章- 13 评论- 879
人工神经网络入门(3) —— 多层人工神经网络应用示例
范例程序下载:
http://files.cnblogs.com/gpcuster/ANN2.rar
如果您有疑问,可以先参考
FAQ
如果您未找到满意的答案,可以在下面留言:)
1 介绍
求异或(XOR)操作是计算机中常用到的一种计算:
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
我们可以使用第一篇文章中的代码来计算这个结果
http://files.cnblogs.com/gpcuster/ANN1.rar
(需要修改其中的训练集),可以发现学习后的结果不能让我们满意,原因是单层神经网络学习能力有限,需要使用更加复杂的网络来学习。
在这一篇文章中,我们将使用一个新的多层神经网络来学习。
2 范例程序的使用和说明
该程序的使用说明和
人工神经网络入门(1) —— 单层人工神经网络应用示例
类似,可以参考http://www.cnblogs.com/gpcuster/archive/2008/05/22/1204456.html
但是多了一个计算操作(XOR),如图:
3 网络结构
该多层神经网络在单层神经网络的基础上增加了一层“隐藏层”(Hidden)
4 学习算法
基本的原理就是用实际网络计算出来的值和期望的值进行比较,然后来调整自己的权值。
/**/
///
<summary>
///
根据期望的输出和实际的输出来调整权值
///
</summary>
///
<param name="targOut">
期望的输出
</param>
private
void
train_network(
double
[] outputs)
{
//
get momentum values (delta values from last pass)
double
[] delta_hidden
=
new
double
[_nn.NumberOfHidden
+
1
];
double
[] delta_outputs
=
new
double
[_nn.NumberOfOutputs];
//
Get the delta value for the output layer
for
(
int
i
=
0
; i
<
_nn.NumberOfOutputs; i
++
)
{
delta_outputs[i]
=
_nn.Outputs[i]
*
(
1.0
-
_nn.Outputs[i])
*
(outputs[i]
-
_nn.Outputs[i]);
}
//
Get the delta value for the hidden layer
for
(
int
i
=
0
; i
<
_nn.NumberOfHidden
+
1
; i
++
)
{
double
error
=
0.0
;
for
(
int
j
=
0
; j
<
_nn.NumberOfOutputs; j
++
)
{
error
+=
_nn.HiddenToOutputWeights[i, j]
*
delta_outputs[j];
}
delta_hidden[i]
=
_nn.Hidden[i]
*
(
1.0
-
_nn.Hidden[i])
*
error;
}
//
Now update the weights between hidden & output layer
for
(
int
i
=
0
; i
<
_nn.NumberOfOutputs; i
++
)
{
for
(
int
j
=
0
; j
<
_nn.NumberOfHidden
+
1
; j
++
)
{
//
use momentum (delta values from last pass),
//
to ensure moved in correct direction
_nn.HiddenToOutputWeights[j, i]
+=
_nn.LearningRate
*
delta_outputs[i]
*
_nn.Hidden[j];
}
}
//
Now update the weights between input & hidden layer
for
(
int
i
=
0
; i
<
_nn.NumberOfHidden; i
++
)
{
for
(
int
j
=
0
; j
<
_nn.NumberOfInputs
+
1
; j
++
)
{
//
use momentum (delta values from last pass),
//
to ensure moved in correct direction
_nn.InputToHiddenWeights[j, i]
+=
_nn.LearningRate
*
delta_hidden[i]
*
_nn.Inputs[j];
}
}
}
5 预告
在下一篇文章中,我将介绍一个C#实现的ANN框架:)
6 总结
这个多层神经网络也可以准确地计算AND和OR运算,但是精确度却比不上第一个例子。
不同的网络对不同的情况都有不同的适应程度,这就需要深层的理论支持了,也不是我能为大家解决的啦:(
posted @ 2008-06-22 20:15
逖靖寒
阅读(2342)
评论(9)
编辑
收藏
所属分类:
.NET 编程
、
算法
发表评论
回复
引用
查看
#1楼
2008-06-22 21:44 |
aspnetx
我能否问一下,楼主所说的神经网络与数据挖掘中所提到的神经网络是不是一回事呢?
呵呵,数据挖掘中神经网络方法一直是我无法理解的一个算法之一.
回复
引用
查看
#2楼
[
楼主
]2008-06-22 21:52 |
逖靖寒
@aspnetx
不好意思,我对DM不太了解,不能给您一个准确的回答。
但是数据挖掘中所提到的神经网络也是一种基于现有数据的潜在规律的学习,所以说,学习的本质应该是相同的,但是具体的学习形式和方法应该会有不同。
回复
引用
查看
#3楼
[
楼主
]2008-06-23 07:36 |
逖靖寒
@lazylu
我就是要学习ANN,如果用Matlab了,还能了解其中的原理吗?
回复
引用
查看
#4楼
2008-06-23 08:44 |
U2U
这个系列的文章不错的
回复
引用
查看
#5楼
2008-06-23 09:11 |
暗香浮动
这个适合那些领域,或者说有什么用处呢。
回复
引用
查看
#6楼
[
楼主
]2008-06-23 10:29 |
逖靖寒
@U2U
呵呵,谢谢夸奖。
回复
引用
查看
#7楼
[
楼主
]2008-06-23 10:30 |
逖靖寒
@暗香浮动
主要还是在人工智能这块应用很多。
在BI方面应该也有应用。
回复
引用
查看
#8楼
2008-06-25 00:35 |
簡簡單單..
继续关注..
回复
引用
查看
#9楼
2008-07-10 19:45 |
orchidsure
不错,如果真要理解ANN的原理,还得自己去实现,用matlab只是使用软件而已,很不灵活的。希望多多交流啊
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2008-06-23 07:57 编辑过
相关文章:
小菜编程成长记(一 面试受挫——代码无错就是好?)
小菜编程成长记(八 反射——程序员的快乐!)
使用Visual Studio2005入门.Net2.0系列视频教程
ASP.NET AJAX入门系列
微软关系搜索——人立方,垂直个性搜索
FireFox的历史——从火狐1到火狐3历代截屏欣赏(双语版)
网页游戏探讨(一)——资源自动增长
LINQ to SQL——GridView无法显示数据,数据库无法连接!
《iBATIS 实战》——国内第一本iBATIS巨著(iBATIS之父撰写)
编程之美——微软技术面试心得
相关链接:
历史上的今天:
2007-06-22
今天参加了中国第五届软交会
所属分类的其他文章:
仿真足球队的整体的策略简单实现
仿真足球最快截球的设计和实现
深入理解整个比赛的执行流程
博客园仿真足球竞赛平台的物理模型以及球员命令的分析
深入理解博客园仿真足球竞赛平台的仿真周期
如何利用CSharp球队模板编写自己的足球队
博客园仿真足球竞赛平台基本原理分析
释放你的编程技能与激情--博客园仿真足球竞赛平台预览
人工神经网络入门(4) —— AForge.Net简介
人工神经网络入门(3) —— 多层人工神经网络应用示例
最新IT新闻:
Google开拓美政府机构市场 微软业务受冲击
消息称苹果正在开发iTunes网络电视
微软周一开电话会议 预计将发布Silverlight2.0
开心网即将启用”shejiao.com”?
Google股价跌破329美元 61%员工期权价值归零
公告
我的最新闪存
君子不器
10-3 12:47
<
2008年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我管理的小组
Visual Studio
博客园仿真足球交流小组
我参加的小组
.NET 新手小组
程序员音乐空间
设计模式
python
ASP.NET
软件工程师日语
大连.NET俱乐部
Debug 探索团队小组
我参与的团队
大连.NET俱乐部(0/807)
Windows Embedded开发(0/99)
Debug 探索团队(0/53)
随笔分类
(150)
.NET 编程(26)
(rss)
ACM
(rss)
Python(4)
(rss)
Silverlight(2)
(rss)
TopCoder(3)
(rss)
博客园仿真足球竞赛平台(10)
(rss)
读书(17)
(rss)
个人制作(17)
(rss)
简历(1)
(rss)
软件设计(1)
(rss)
生活(36)
(rss)
算法(25)
(rss)
新手教程(2)
(rss)
英语(1)
(rss)
杂九杂十(5)
(rss)
随笔档案
(107)
2008年10月 (5)
2008年9月 (1)
2008年8月 (10)
2008年7月 (1)
2008年6月 (9)
2008年5月 (4)
2008年4月 (2)
2008年3月 (4)
2008年2月 (2)
2008年1月 (6)
2007年12月 (5)
2007年11月 (13)
2007年10月 (5)
2007年9月 (6)
2007年8月 (7)
2007年7月 (2)
2007年6月 (7)
2007年5月 (7)
2007年4月 (7)
2007年3月 (1)
2007年2月 (2)
2007年1月 (1)
文章档案
(12)
2007年5月 (1)
2007年4月 (10)
2007年2月 (1)
相册
My Photo
开源项目
AForge
A C# framework designed for developers and researchers in the fields of Computer Vision and Artificial Intelligence - image processing, neural networks, genetic algorithms, machine learning, etc.
朋友的博客
IT乌吉线
一起参加PH2008的队友
游戏AI
AI Game Dev
非常不错的一个网站,一直在更新。
Game/AI
有关游戏AI的一些评论
最新随笔
1. 第一次参加SRM
2. TopCoder Inv 2001 R1 200point
3. TopCoder SRM 152 div 2 500point
4. 基于silverlight 1.0的中国象棋游戏
5. 感叹Silverlight中的JavaScript智能感应
6. 了解博客园仿真足球竞赛平台的所有内部运行细节
7. 博客园仿真足球竞赛平台更新信息
8. 仿真足球队的整体的策略简单实现
9. 仿真足球最快截球的设计和实现
10. 深入理解整个比赛的执行流程
积分与排名
积分 - 130817
排名 - 301
最新评论
1. re: 博客园仿真足球竞赛平台基本原理分析
@1111
通过SOCKET通信。你看看范例球队就知道了;) (逖靖寒)
2. re: 博客园仿真足球竞赛平台基本原理分析
能详细说一下平台是如何将场上信息传递给球队的吗?也就是说平台将场上信息转换成什么形式来达到跟写决策层的代码的衔接 (1111)
3. re: 在VS2005下安装Boost 1.33
我按照上面的步骤做了,可到了第四步,执行批处理文件“build.bat”会执行不下去,报错为:不应有\utilities\bin\x86.不知是怎么回事?? (magician0303)
4. re: 基于silverlight 1.0的中国象棋游戏
@真见
对的,需要拖到棋子才能移动。
谢谢您的夸奖。 (逖靖寒)
5. re: 基于silverlight 1.0的中国象棋游戏
(真见)
阅读排行榜
1. 人工神经网络入门(1) —— 单层人工神经网络应用示例(4057)
2. 释放你的编程技能与激情--博客园仿真足球竞赛平台预览(3088)
3. C#实现遗传算法,模拟花朵的进化。(2930)
4. 使用NAnt构建入门(2830)
5. 如何高效地判断奇数和偶数(2748)
评论排行榜
1. 打印一个N位二进制数的所有表示(61)
2. Enjoy the Game(55)
3. 如何高效地判断奇数和偶数(49)
4. 释放你的编程技能与激情--博客园仿真足球竞赛平台预览(43)
5. 提高您的联系人查找体验,《Smart Contacts》发布(42)
60天内阅读排行
1. 释放你的编程技能与激情--博客园仿真足球竞赛平台预览(3088)
2. 博客园仿真足球竞赛平台基本原理分析(2299)
3. 如何利用CSharp球队模板编写自己的足球队(1633)
4. 仿真足球最快截球的设计和实现(1633)
5. 深入理解博客园仿真足球竞赛平台的仿真周期(1533)