ANN

时间:2017-05-10 08:06:41

标签: neural-network backpropagation approximation

所以我有这样的事情, 的 Y = L3 * [SIN(theta1)* COS(theta2)* COS(theta3)+ COS(theta1)* SIN(theta2)* COS(theta3)-sin(theta1)* SIN(theta2)* SIN( theta3)+ COS(theta1)* COS(theta2) SIN(theta3)] + L2 [SIN(theta1)* COS(theta2)+ COS(theta1)* SIN(theta2)] + L1 *罪(theta1)+ 10;

和x类似的东西。其中thetai是指定间隔的角度和li的一些系数。任务是方程的近似反演,所以你设置x和y,结果将是合适的theta。所以我从指定的间隔随机生成thetas,计算x和y。然后我在< -1,1>之间指定x和y。并且在< 0,1>之间。我用这种方式作为训练集的数据,网络的输入被归一化为x和y,输出被归一化为thetas。

我训练网络,尝试了不同的配置,整夜培训后网络的绝对误差仍然在24.9%左右。它太多了,所以我不知道该怎么做。

  • 更大的训练集?
  • 更大的网络?
  • 实验学习率?
  • 更长时间的培训?

技术信息

由于训练算法使用了错误反向传播。神经元具有乙状结肠激活功能,单位有偏差。我尝试了拓扑:[2 50 3],[2 100 50 3],训练集的长度为1000,训练持续时间为1000个周期(在一个周期内我遍历所有数据集)。学习率为0.2。

近似误差计算为

abs的总和(desired_output - reach_output)/ dataset_lenght

使用过的优化器是随机梯度下降。

损失函数,

1/2(期望到达)^ 2

网络是在我的NN的Matlab模板中实现的。我知道这是一个弱点,但我确信我的模板是正确的,因为(XOR问题的成功解决方案,微分方程的近似,状态调节器的近似)。但是我展示了这个模板,因为这些信息可能很有用。

Neuron class

Network class

修改 我在theta范围内使用了2500个唯一数据。

θ1<0,180>,θ2<-130,130>,θ3<-150,150>

我也尝试使用更大的数据集,但准确性并没有提高。

0 个答案:

没有答案