种最简单的非线性函数,我们可以使用该函数来创建非线性模型。ReLU的优势在于操作起来非常简单,拥有更实用的响应范围。
ReLU
实际上,所有数学函数均可作为激活函数。假设 $\sigma$ 表示激活函数(ReLU、S型函数等),网络中节点的值由以下公式指定:
$$
\sigma ( { \boldsymbol { w } } \cdot { \boldsymbol { x } } + { \boldsymbol { b } } )
$$
TensorFlow为各种激活函数提供“开箱即用型”支持。但是,我们仍然建议从ReLU着手。然后,可以将这些层级堆叠起来,并创建任意复杂程度的神经网络。总之,我们的模型拥有了人们通常所说的“神经网络”所有标准组件:
●一组节点,类似于神经元,位于层中。
●一组权重,表示每个神经网络层与其下方的层之间的关系。下方的层可能是另一个神经网络层,也可能是其他类型的层。
●一组偏差,每个节点一个偏差。
●一个激活函数,对层中每个节点的输出进行转换。不同的层可能拥有不同的激活函数。
还需要注意的是,神经网络不一定始终比特征组合好,但它确实适用于特征组合很难处理的场景。
10.1.4 实例代码
下面我们用TensorFlow的DNNRegressor类来定义一个神经网络(Neural Network,NN)和它的隐藏层。然后训练一个神经网络来学习数据集中的非线性,并展示神经网络比一个线性回归模型能获得更好的性能。我们先装载数据:
第10章 神经网络
311