逖靖寒的世界

Share my world. Share your viewpoint.
数据加载中……
人工神经网络入门(0) —— 关于人工神经网络的FAQ
今天早上发了一篇关于ANN的文章,给大家演示了一个简单的学习AND运算和OR运算的程序,但是发现大家有很多疑问。
所以通过这篇文章,我希望能对大家的一些常见的疑问给予解答

这里的 训练 一词怎么解释?
学会?

大家通过使用这个程序可以发现:ANN在通过训练以后,可以计算出正确的结果,如1 AND 1 = 1,等等。
如果您阅读了代码会发现,程序中并没有给出如何计算1 AND 1的结果,而是将1,1这两个参数传递给经过训练后ANN,然后由ANN自己计算出结果。
在整个过程中,完全是ANN自己通过一定数量的训练从而达到咱们计算AND运算的结果。

貌似很深奥,不知道能够最终达到甚么效果,实现甚么功能,机器人??
如果您能够深入地了解ANN,最终会达到非常好的效果,特别是做AI这块。
比如RoboCup的仿真机器人比赛中就有应用,
还有一个非常有名的游戏《Bug Brain》,它就是一款通过给一个小虫子设计神经网络而可以在复杂的环境中生存的游戏。有兴趣的朋友可以去了解一下:)
关于这个游戏的玩法和攻略,可以参考http://hi.baidu.com/szk8888/blog/item/eb1d033b282ac7ea14cecb42.html

楼主,你要介绍哪种神经网络?我没看出来。。囧。。。
计划在这一系列文章中,介绍单层和多层(BP)神经网络。
人工神经网络入门(1) —— 单层人工神经网络应用示例 这个属于最简单明了的单层神经网络。介绍一个网络的主要原因就是帮助咱们先有一个感性的认识。
让我们知道ANN是什么,如果使用。

神经网络还真的不是很熟悉,楼主能否解释下这里,我看的不是很懂:
“计算结果”显示为“1.74E-10”,说明 0 AND 0 = 0.
在我的程序中,实际输出的结果只是接近于0,这是正常的。
神经网络计算出来的结果只是近似值。所以你可以在实际的应用中对这个近似值根据实际情况来处理。

你这个学习网络 来运算54 AND 0 结果为什么是1?
经过学习的ANN并不一定能计算出所有有效的输入的结果。
造成这样的原因很多,输入节点的个数,隐含层的层数,激活函数,网络类型,训练集合的选取等等。
而且您的54并不是有效输入,所以说结果不会理想。

posted on 2008-05-22 12:36 逖靖寒 阅读(3013) 评论(17)  编辑 收藏 网摘 所属分类: .NET 编程算法

评论

#1楼 2008-05-22 14:05 Such Cloud      

看了后还是很迷糊
    回复  引用  查看    

#2楼 2008-05-22 14:24 Leepy      

程序中并没有给出如何计算1 AND 1的结果,而是将1,1这两个参数传递给经过训练后ANN,然后由ANN自己计算出结果.在整个过程中,完全是ANN自己通过一定数量的训练从而达到咱们计算AND运算的结果。
----------------------
通过如何的一定数量的训练呢?俺还没看源码,先疑问下
    回复  引用  查看    

#3楼 2008-05-22 14:51 overred      

那个小虫子,使我想起了当年在实验室时候的Unix上跑几个月才出结果的细胞分裂
    回复  引用  查看    

#4楼 2008-05-22 15:05 Tony.chen[未注册用户]

貌似看懂了一点,哈哈,感觉那个训练AND应该是
使程序能处理AND计算,而在程序中具体到一个对AND处理的操作方式的初始化
最后LZ貌似就用该初始化的方法计算AND操作了
    回复  引用    

#5楼 2008-05-22 16:38 ltjabc[未注册用户]

大学学了几个学期,现在都丢了。感觉好可惜。
    回复  引用    

#6楼 2008-05-22 16:40 簡簡單單..      

Mark
    回复  引用  查看    

#7楼 2008-05-22 18:45 Aaron。Guo[未注册用户]

@Such Cloud
您不用着急,在后面的文章中我会最详细的介绍的
    回复  引用    

#8楼 2008-05-22 18:46 Aaron。Guo[未注册用户]

@Leepy
你可以设定一个允许误差,当训练后的结果满足这个误差范围,训练就结束,或者指定最大的训练次数。
    回复  引用    

#9楼 2008-05-22 18:47 Aaron。Guo[未注册用户]

@Tony.chen
没有,是用训练后的网络自主计算得出的结果。
    回复  引用    

#10楼 2008-05-22 18:47 Aaron。Guo[未注册用户]

@overred
哈哈,有意思。
    回复  引用    

#11楼 2008-05-22 18:48 Aaron。Guo[未注册用户]

@ltjabc
如果您感兴趣,现在再学习不是也非常有意思吗?
    回复  引用    

#12楼 2008-05-22 21:10 yzlhccdec      

LZ还是解释一下神经网络最本质的东西吧。。呵呵
    回复  引用  查看    

#13楼 2008-05-22 21:13 yzlhccdec      

恩,不错不错,学弟,呵呵。。。交个朋友吧
    回复  引用  查看    

#14楼 2008-05-22 22:19 aspnetx      

神经网络,不愧是作为最难理解的数据挖掘算法之一.
    回复  引用  查看    

#15楼 2008-05-23 09:35 Cheney Shue      

看了这个FAQ,反而比之前的还要糊涂,搞不清楚这个神经网络是干什么的

能不能说明激活函数和组合函数是什么?还有,反馈的过程如何实现?
    回复  引用  查看    

#16楼 2008-05-23 13:45 yzlhccdec      

@Cheney Shue
理论上,我们认为很多问题都是可以用数学模型来描述的。那么神经网络实际上是一个黑箱,它对给定的输入和输出做一个映射,也就是说,神经网络实际上是一个函数。这个函数一般很复杂。
神经网络分为很多种,这个不是一下子能介绍清楚的。目前应用最广泛的是BP网络。如果你知道傅立叶变换的话,可以和激活函数类比一下。前者是说所有的方波都可以由无限个正弦波叠加而成。
    回复  引用  查看    

#17楼 2008-05-23 14:49 Cheney Shue      

--引用--------------------------------------------------
yzlhccdec: @Cheney Shue
理论上,我们认为很多问题都是可以用数学模型来描述的。那么神经网络实际上是一个黑箱,它对给定的输入和输出做一个映射,也就是说,神经网络实际上是一个函数。这个函数一般很复杂。
神经网络分为很多种,这个不是一下子能介绍清楚的。目前应用最广泛的是BP网络。如果你知道傅立叶变换的话,可以和激活函数类比一下。前者是说所有的方波都可以由无限个正弦波叠加而成。
--------------------------------------------------------

我想问的是,反馈的过程如何实现。就像你说的,将输入和输出做映射,如何修正神经键上的权重,以使得映射更准确。另外,激活函数和傅氏变换什么关系?
    回复  引用  查看    

#18楼 2008-05-23 16:20 yzlhccdec      

@Cheney Shue
大体过程是用实际输出和期望输出相减,计算出均方差,然后一层一层倒推回去修改权值和阈值。这个你可以看看NN的相关书籍。
我是用傅式变换类比而已。没关系。。多个激活函数变换叠加之后,可以无限逼近一条“未知”的函数。这个函数就是对输入输出的映射
    回复  引用  查看    



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1204705




相关文章:

相关链接: