2013.08.10(1)

来源:互联网 发布:nba2k17捏脸数据大全 编辑:程序博客网 时间:2024/05/16 15:33

bp神经网络神经网络的初步调试成功

调试过程中有几个地方要注意:

1、输入层、输出层、中间层的学习率不能一样

                if nowlevel==level-1:
                        #输出层
                        my_n=len(myd)
                        mylearn_r=learn_r*0.2
                        mytrain_a=train_a*0.3
                if nowlevel==1:
                        #输入层
                        my_n=len(myd)
                        mylearn_r=learn_r*0.9
                        mytrain_a=train_a*0.8                        
                else:
                        #其它层
                        my_n=n
                        mylearn_r=learn_r*1.5
                        mytrain_a=train_a*1.8

2、3个层的权值策略不能一样

        if flag==1:
                #输出层
                return fh*random.uniform(0,1)
        elif flag==2:
                #输入层
                return random.uniform(-ann_wrange,ann_wrange)
        else:
                #其它层
                return random.uniform(-1,1)


3、在输出层外加上一个硬限幅层,保证输出为需要的结果

硬限幅层要灵活,不能总是

if v>0:

       return 1

else:

      return 0


最后,总结一下,多层感知器网络是门艺术,不能说是一个非常严谨的科学,带有随机性,虽然有梯度下降,动量调整的数学基础

原创粉丝点击