我正在通过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,
})
结果很“有趣”:
现在,我想知道如何增强模型以适应cos(x)的周期性(不使用cos(x)的数学周期性,例如y = cos(x模2PI))。
我的模型能否“理解”有周期性?
答案 0 :(得分:1)
我认为您建立的网络太小,无法学习余弦函数的周期性行为(尝试增加隐藏单元的数量和/或添加隐藏层),我也不认为规则(完全连接的神经网络)如果要学习具有周期性顺序性质的功能,则是正确的选择,为此,请尝试使用RNN或LSTM。