【问题标题】:periodic function approximation with neural network fails用神经网络逼近周期函数失败
【发布时间】:2015-03-30 22:51:36
【问题描述】:

我正在尝试使用神经网络(仅 1 个输入层)来逼近简单的一维函数。我尝试了不同的设置(学习率、动量、隐藏节点的数量等),我似乎能够达到很好的效果仅近似正弦函数的 1 个周期 (0;2PI) 时的结果。 当我尝试使用多个周期的正弦函数时,事情变得非常糟糕。网络似乎能够以一种不错的方式近似第一个周期,但之后网络的输出值进入一条恒定值线性线(该线介于 0 和 -0.5 之间,具体取决于设置) .我尝试了许多设置,但即使有大量的交互,它也不会变得更好。 这里似乎有什么问题?对于一个有几十个隐藏层神经元的人工神经网络来说,这不是一件容易的事吗?

我使用 Python 和 PyBrain 包。相关代码在这里:

from pybrain.tools.shortcuts import buildNetwork
from pybrain.datasets import SupervisedDataSet 
from pybrain.supervised.trainers import BackpropTrainer
from pybrain.structure import TanhLayer
import numpy as np
import random

random.seed(0)

def rand(a, b): #returns random number between (a,b) 
    return (b-a)*random.random() + a

def singenerate_check(points_num,bottom,top): #generates random testing data
    pat_check = SupervisedDataSet(1,1)
    for i in range(points_num):
        current = rand(bottom,top)
        pat_check.addSample(current,np.sin(current))
    return pat_check    

ds = SupervisedDataSet(1,1) #initalizing dataset
points_num = 100
element = 10 * np.pi / points_num
for i in range(points_num): #generating data
    ds.addSample(element*i+0.01,np.sin(element*i+0.01)+0.05*rand(-1,+1)) 
net = buildNetwork(1,20,1,bias=True)
trainer = BackpropTrainer(net,ds,learningrate=0.25,momentum=0.1,verbose=True)            
trainer.trainOnDataset(ds,30000) #number of iterations

testsample_count = 500
pat_check = singenerate_check(testsample_count, 0, 10*np.pi)
for j in range(testsample_count):
    print "Sample: " + str(pat_check.getSample(j)) 
error = trainer.testOnData(pat_check, verbose=True) #verifying    

【问题讨论】:

    标签: python neural-network approximation trigonometry


    【解决方案1】:

    具有一个隐藏层的神经网络可以在有限区间上以任何所需的精度逼近任何连续函数。然而,间隔的长度和准确性将取决于隐藏神经元的数量。

    当您增加间隔时,如果隐藏神经元的数量保持不变,则会降低准确度。如果你想在不降低准确率的情况下增加间隔,你需要添加更多的隐藏神经元。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 2018-09-10
      • 2013-04-14
      • 2017-04-01
      • 2020-12-28
      • 1970-01-01
      • 2017-11-26
      相关资源
      最近更新 更多