2011年9月7日

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

导航