2011年10月3日

摘要: 经过仔细思考,我觉得bp网络无论如何也是和生物神经网络毫无关系的一种算法。它的目标就像其他算法,是用来解决一些问题的,比如模糊的模式识别等。这样子的思路在我看来太功利,急功近利,完全是稍微借鉴了一点点生物神经网络的样子提出的传统思路的算法。有以下理由可以说明这个和生物神经完全无关:1.这个算法相当复杂,生物网络绝对不可能存在这种严谨的逻辑。神经元的输出函数还必须可导,一般推荐sigmoid函数,否则在反向传播的时候还得算导函数值。sigmoid函数可是有指数有倒数的函数,要生物支持这种算法是难以想象的。2.网络结构固定,必须预先设计好。解决一个问题,bp网络的隐藏层神经元数目是固定的,少了解决 阅读全文
posted @ 2011-10-03 22:43 hyperddr 阅读(312) 评论(0) 推荐(1) 编辑

2011年9月28日

摘要: 最近通读了三本书,《人工智能》,《机器学习》,韩立群的《神经网络》。全部都提到了神经网络,也让我能够从不同的角度认识这一传说中神秘的算法。首先看的是人工智能,发现神经网络非常有趣,但是讲得似乎篇幅有些小,专门找来神经网络的书看。花了大笔的时间,一个挨一个的把各种人工神经网络模型学了一遍。起初以为这本书是神经网络的发展史,一开始先简单介绍感知器,单层的,带隐藏层的,自学习的,引导学习的,反传的;然后再介绍点高级的,各种网络。越学到后来越迷糊,到底这些网络有什么意义? 最典型的是hopfield网络,吹得神乎其神,能用电子电路实现(好像也是目前唯一能用电子电路直接实现的网络模型),能记忆,像人一样 阅读全文
posted @ 2011-09-28 13:46 hyperddr 阅读(342) 评论(0) 推荐(2) 编辑

2011年9月7日

摘要: 多层前导神经元的诞生就是因为单层神经元计算模型没法辨认非线性可分的输入。经典例子就是异或操作。在单神经元模拟上证明确实不行之后,我又继续把BP网络给实现了一下,代码其实非常简单,原理用数学公式看有点晕,其实道理很简单,求一点简单的偏微分然后最小二乘法而已。等到写出代码来就更简单了,比公式更intuitive。写完后第一个拿来开刀的例子是昨天训练单层网络时留下的代码:与非门。结果有点乐观,在连续按了那个“训练”按钮多次之后,输出确实开始向正确方向收拢。把与门和或门都验证过了之后,我开始打开潘多拉的异或门。令人欣慰的是,单隐层网络果然名不虚传,输出也渐渐开始向正确方向靠拢,只是靠拢不是收敛。走得太 阅读全文
posted @ 2011-09-07 21:21 hyperddr 阅读(472) 评论(2) 推荐(1) 编辑
摘要: 看看单层神经网络简单到爆,以为自己都会了,以为书上都讲全了,其实根本不是那么回事儿。实践一下才知道,超多的限制。简单实验了一下书上拿来举例子的 或运算和与运算。首先输出函数必须用离散函数!用sigmoid就不行,收敛慢,而且永远无法做到输入0,0 输出0. 永远都输出的是0.5. 因为输入量是0,所以没有delta一直是0!然后离散函数还不算完,书上用的是符号函数,结果必须用一个-1阀值输入才行!直接用 >0 和 <0来判断输出是不行的。结果会是:做与运算的训练,训练出来的是或运算器。做或运算器训练出来的是与运算器。。。。。这还不算完,用符号函数输出是1和-1,自然想到输入也用1和 阅读全文
posted @ 2011-09-07 11:39 hyperddr 阅读(169) 评论(0) 推荐(0) 编辑

2011年9月6日

摘要: 学了神经网络之后,发现我的思维果然是类似的方式:不加思索,立刻给出答案,但是自己都不知道为什么。不管先给答案,然后再回头编造逻辑。不过如果真的只能靠神经网络来实现智能的话,这显然不是一个好消息。人有上百万亿个神经元触图,不管用软件还是硬件都是难以实现的。再过20年说不定可以。但是我觉得人脑的进化方向却是向着cpu去的。我们的主思维就是单线程的,和cpu一样。就是依靠逻辑和内存来一步一步实现复杂的事情的。但是我们的内存不够用,大概就那么几十个字节。所以经常要用到外存,比如纸和笔。各种成功学训练,目标都是想让人像cpu那样工作:有条理,有步骤,有计划,不达目标决不罢休。但是自然界进化不出cpu那样 阅读全文
posted @ 2011-09-06 23:20 hyperddr 阅读(259) 评论(0) 推荐(0) 编辑

2011年9月3日

摘要: 开始人工智能之旅,入驻博客园 阅读全文
posted @ 2011-09-03 12:16 hyperddr 阅读(208) 评论(1) 推荐(0) 编辑

导航