你好,我在学习神经网络。神经元是否只存储一个介于1或-1之间的值?我不能给值255或1024怎么样?我正在寻找encog java库XOR函数求解器示例。我想通过改变XOR_INPUT和XOR_IDEAL将异或转换成乘法器。
以下是源位置:World
我变了
发自:
/**
* The input necessary for XOR.
*/
public static double XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 },
{ 0.0, 1.0 }, { 1.0, 1.0 } };
/**
* The ideal data necessary for XOR.
*/
public static double XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 1.0 }, { 0.0 } };
至:
/**
* The input necessary for XOR.
*/
public static double XOR_INPUT[][] = { { 0.0, 0.0 }, { 1.0, 0.0 },
{ 1.0, 2.0 }, { 2.0, 4.0 } };
/**
* The ideal data necessary for XOR.
*/
public static double XOR_IDEAL[][] = { { 0.0 }, { 1.0 }, { 2.0 }, { 8.0 } };
在转换成这些值之后。我得到无限循环并输出常数:
Epoch #274107错误:12.75
Epoch #274108错误:12.75
Epoch #274109错误:12.75
Epoch #274110错误:12.75
Epoch #274111错误:12.75
Epoch #274112错误:12.75
Epoch #274113错误:12.75
Epoch #274114错误:12.75
Epoch #274115错误:12.75
Epoch #274116错误:12.75
Epoch #274117错误:12.75
Epoch #274118错误:12.75
Epoch #274119错误:12.75
以下是问题;
这叫局部极小值吗?
我需要在(0到1)之间设置值还是必须设置(-1和1)之间的值?
3)如何解决简单的乘法求解问题?
谢谢。
发布于 2014-04-07 05:14:29
您的输出层是sigmoid,这意味着它只能表示0到1之间的值,因此不可能训练这样一个网络来识别其他任何东西。但是,这不是网络故障,您应该缩放您的输出,以便它适合这个间隔,并在以后下降。
简单地说:
现在训练您的网络,检索原始输出,只需将值乘以8。
记住,简单的神经网络是,而不是用于符号计算的工具。如果您正在寻找一个能够真正找到a*b
公式的模型,那么请阅读有关symbolic function networks
的内容。
https://stackoverflow.com/questions/22903645
复制相似问题