增强用于定期数据的Machin学习模型

时间:2020-03-10 15:17:18

标签: tensorflow machine-learning keras tfjs-node

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

功能:x的2000个值(随机)
标签:2000值cos(x)

型号:

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,
})

结果很“有趣”:

enter image description here

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

1 个答案:

答案 0 :(得分:1)

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