创建用于预测序列的人工智能模型,设计模型架构。

上一篇:《创建用于预测序列的人工智能模型,设计数据集》

序言:在前一篇中,我们创建了用于训练人工智能模型的数据集。接下来,就要设计模型的架构了。其实,人工智能模型的开发关键并不在于代码量,而在于其中的数学原理和数据集(即人类经验)的深度与质量。

创建模型的架构(一个DNN神经网络)

现在你已经将数据存储在 tf.data.Dataset 中,在 tf.keras 中创建一个神经网络模型就变得非常简单了。我们先来探索一个简单的DNN模型,代码如下:

dataset = windowed_dataset(series, window_size, batch_size, shuffle_buffer_size)

model = tf.keras.models.Sequential([

tf.keras.layers.Dense(10, input_shape=[window_size], activation="relu"),

tf.keras.layers.Dense(10, activation="relu"),

tf.keras.layers.Dense(1)

])

这是一个非常简单的模型,包含两个全连接层(Dense层)。第一层接收形状为 window_size 的输入,最后通过输出层生成预测值。

接下来,我们像之前一样,为模型编译指定损失函数和优化器。在本例中,损失函数选择了 mse(均方误差),它通常用于回归问题(这实际上就是一个回归问题)。优化器选择了 sgd(随机梯度下降),非常适合这样的场景。

关于这些函数的细节,本书不会深入讨论,但任何优秀的机器学习资源都会详细讲解它们——比如 Andrew Ng 在 Coursera 上的经典《深度学习专项课程》就是一个很好的起点。

SGD 优化器可以接受学习率(lr)和动量(momentum)两个参数,它们会影响优化器的学习方式。由于每个数据集都有其独特性,因此能够手动控制这些参数是非常有价值的。在下一节中,你将学习如何找到这些参数的最优值,但现在可以先这样设置:

model.compile(

loss="mse",

optimizer=tf.keras.optimizers.SGD(

lr=1e-6,

momentum=0.9

)

)

总结:本篇中,我们设计了一个人工智能模型的架构(一个简单的 DNN)。模型的性能与其架构和参数密切相关——参数量越大,所需的数据集也越庞大,模型的能力通常也会随之增强,这正是“规模效应”(Scaling Law)的体现

posted @ 2024-12-24 08:11  果冻人工智能  阅读(47)  评论(0)    收藏  举报