[英]Keras LSTM input and output variable ranges
我对机器学习还很陌生,但我已经建立了一个用于教育目的的 LSTM 网络,该网络似乎运行良好。
我一直无法完全理解输入和输出变量的数值范围。 我标准化了我的输入和训练数据,所以所有变量都以 0 为中心,标准差为 1。当我测试网络时,我的所有预测在 0 和 1 之间都是正值,即使训练数据包含负值。
我通过在训练数据中为正数创建一个输出,为负数创建另一个输出来解决这个问题。 例如:
原始训练数据:
data
-1.0
-0.5
0.0
0.5
1.0
变成:
pos_data neg_data
0.0 1.0
0.0 0.5
0.0 0.0
0.5 0.0
1.0 0.0
运行模型后,我将 pos_data 和 neg_data 转换回具有正值和负值的单个列。 这似乎有效,但感觉应该没有必要。
Keras 是否允许输入或训练数据中出现负值? 如果是这样,有没有人知道为什么当模型同时使用正值和负值进行训练时我只会得到正预测?
谢谢!
Keras 是否允许输入或训练数据中出现负值?
是的,一个很好的例子是在进行自然语言处理时 BERT 词嵌入。 一些数据缩放器的区间为 -1 到 1
如果是这样,有没有人知道为什么当模型同时使用正值和负值进行训练时我只会得到正预测?
如果您的模型是单个 LSTM 单元,那么您的输出会在您获得输出之前通过 softmax 运行。
softmax 函数的范围在 0 和 1 之间。这就解释了为什么你只得到正值!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.