使用neuralnet包在R中进行混凝土强度分析+解读

这次我们来通过一个简单的例子,说明神经网络的基本工作原理。
示例-使用人工神经网络对混凝土强度进行建模,数据来源:(http://archive.ics.uci.edu/ml) 当输入数据被缩放到零附近的窄范围时,神经网络的工作效果最好,在这里,我们看到数据集的取值从零到一千多不等。这意味着我们首先需要缩放数据,或者归一化。

如果我们用plot(cnn)绘制模型,我们可以看到:

图示描述了每个连接的权重,以及偏置项的权重(由标记为数字1的节点指示)。偏置项是允许所指示节点处的值向上或向下移动的数字常数,很像线性方程中的截距。每个输入节点和隐藏节点之间的权重与回归系数相似,而偏差项的权重与截距相似。这段话需要配合图示理解一下。
在图的底部,R报告了训练步骤的数量和一个称为误差平方和(SSE)的误差度量,它是预测值的平方减去实际值的总和。较低的SSE意味着更好的预测性能。这有助于估计模型在训练数据上的性能。
稍后会有更详细的解释。现在我们使用更多隐藏层来调整模型。

我们继续用plot(cnn2)绘制模型,我们可以看到:

更详细的解释:
绘制图像是将模型与图像联系起来的最佳方式(这是神经网络非常擅长的)。
1.最左边的节点(即输入节点)是原始数据变量。
2.黑色箭头(和相关数字)是我们可以认为该变量对下一个节点的贡献程度的权重。蓝线是偏置权重,我们希望能够将整个曲线向右或向左移动一定程度。在sigmoid公式中,偏置使我们能够将网络的输出改变为sig(w0*x+w1*1.0),如下所示


3.中间节点(即输入节点和输出节点之间的任何节点)是隐藏节点。这就是图像类比的作用所在。这些节点中的每一个都构成了网络正在学习识别的组件。例如识别人脸时的一个鼻子、嘴巴或眼睛。当我们处理非图像数据时,这一点不容易确定,而且要抽象得多,比如现在的这批数据。
4.最右边的(输出节点)节点是神经网络的最终输出。注意,这一切都省略了将在网络的每一层应用的激活功能
我们也可以使用R中的nnet包来完成这项工作,但可视化会有点麻烦。
本文使用 文章同步助手 同步