0

我正在通过 TensorFlow (tfjs) 学习 ML。
我的第一个测试是训练我的模型作为 x 的函数进行预测cos(x)(从 0 到 2*Math.PI*4 aka 4 个周期)

特征:x(随机)的
2000 个值 标签:cos(x) 的 2000 个值

模型:

const model = tf.sequential({
    layers: [
        tf.layers.dense({ inputShape: [1], units: 22, activation: 'tanh' }),
        tf.layers.dense({ units: 1 }),
    ]
});

model.compile({
    optimizer: tf.train.adam(0.01),
    loss: 'meanSquaredError',
    metrics: ['mae']
});

...

await model.fit(feature, label, {
    epochs: 500,
    validationSplit: 0.2,
})

结果非常“有趣”:

在此处输入图像描述

现在我想知道如何增强我的模型以适应 cos(x) 的周期性(不使用 cos(x) 的数学周期性,如 y = cos(x modulo 2PI) )。
我的模型是否有可能“理解”存在周期性?

4

1 回答 1

1

我认为您构建的网络太小而无法学习余弦函数的周期性行为(尝试增加隐藏单元的数量和/或添加隐藏层),我也不认为常规(完全连接的神经网络)是如果您想学习具有周期性顺序性质的函数,这是正确的选择,请尝试为此使用 RNN 或 LSTM。

于 2020-03-10T15:44:32.807 回答