以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 人工智能 :: 机器学习|数据挖掘|进化计算 』  (http://bbs.xml.org.cn/list.asp?boardid=62)
----  请教关于用BP算法解决异或遇到的一个疑问  (http://bbs.xml.org.cn/dispbbs.asp?boardid=62&rootid=&id=48102)


--  作者:dnyr
--  发布时间:6/6/2007 6:59:00 PM

--  请教关于用BP算法解决异或遇到的一个疑问
我在解决异或问题的时候,用一般教科书中的函数,则初始权值设在-1到2之间感觉效果最好,其他范围在输出值归敛的时候效果并不太好,

请问为什么只有权值在-1到2的时候效果最好?

在通常情况下该如何选择权值?
是瞎蒙吗?

我知道这里高人很多,请教教我这中间有什么联系吗?


--  作者:DMman
--  发布时间:6/7/2007 9:26:00 AM

--  
我觉得设置不同的初始值只能找到一个局部最优,可能这时候-1到2赶巧了呢。如果你的输入值变化了 最好的初始权值也许就不是这样了。而且他还与动量 学习率有关吧。你试着改变别的参数 看看有什么变化
--  作者:dnyr
--  发布时间:6/7/2007 10:16:00 AM

--  
谢谢,确实改变初始权值和学习率后结果会有改变,我也认为结果是局部最优。

我就是觉的很困惑,当我确定了输入、输出和学习率后,该如何确定初始权值?

是否有什么计算公式或者规律?还是纯粹的瞎蒙一个值?如果瞎蒙一个值的话肯定会有局部最优的问题。怎么解决这个问题?


--  作者:DMman
--  发布时间:6/7/2007 2:47:00 PM

--  
多层感知器算法 在开源数据挖掘软件Weka中是这样处理的:算法参数的设置允许设置动量、学习率、隐层等;对于初始权值的设定 只是设置了一个产生随机数的种子,可见,在算法实施中,权值是随机的。
这也算是一种启发式算法吧,在算法进行中可以产生几次权值,分别建模 然后取最优。
朋友,不知你用的是什么平台?什么测试数据?
Weka、matlab、其他挖掘工具 还是你自己编写的算法?
--  作者:dnyr
--  发布时间:6/7/2007 7:25:00 PM

--  
是我自己写的程序,算法就是按照教科书上的BP算法,就是简单的对异或做2000次循环的学习,并调整相应权值。

按照这么说,在BP算法学习的时候,可以先随机出若干组权值,然后一组一组的套入程序中进行计算,在计算结果中挑选出最好的一组权值,是这个意思吗?

而且动量和学习效率都是人为配置的参数,这样要想找到一个真正完美的权值会很难的吧?!

而且这样的方法实在是太傻了,如果随机出的权值和人为配置的参数不搭配,那么岂不是要找很多次甚至很长时间都找不到?

我猜想初始权值的范围与
1、BP算法中计算输出值的函数
2、调整权值的计算函数
3、已知正确的输出值
之间是否有必然的联系?因为毕竟最后的计算结果是要归一的,所以是否有规律可寻?

如果可以,您能不能再介绍介绍其他的程序是如何处理这个问题的?

谢谢了:)


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms