测试数据,预处理这些数据,然后调用预测函数。最后计算根均方值:
结果如下:
Final RMSE (on test data): 116.12
10.2 训练神经网络
机器学习的常见任务就是拟合,也就是给定一些样本点,用合适的曲线揭示这些样本点随着自变量的变化关系。深度学习同样也是为了这个目的,只不过此时样本点不再限定为(x,y)点对,而可以是由向量、矩阵等组成的广义点对(X,Y)。此时,(X,Y)之间的关系也变得十分复杂,不太可能用一个简单函数表示。正如前面提到的,我们可以用多层神经网络来表示这样的关系。
Backpropagation(反向传播)算法是最常见的一种多层神经网络训练算法。借助这种算法,梯度下降法在多层神经网络中将成为可行方法。反向传播算法对于快速训练大型神经网络来说至关重要。TensorFlow可自动处理反向传播算法,因此我们不需要对该算法做深入研究。
10.2.1 正向传播算法
在学习反向传播算法的工作原理之前,我们首先了解一下什么是正向传播算法。如图10-17所示,这是一个简单的神经网络(见左图),其中包含一个输入节点、一个输出节点以及两个隐藏层(分别有两个节点)。相邻的层中的节点通过权重 $\mathrm { w _ { i j } }$ 相关联,这些权重是网络参数。如图10-17的中图所示,每个节点都有一个输入x、一个激活函数f(x)以及一个输出y=f(x),必须是非线性函数,否则神经网络就只能学习线性模型。常用的激活函数是S型函数,比如:
$$
f ( x ) = { \frac { 1 } { 1 + e ^ { - x } } }
$$
人工智能与大数据技术导论
320