从一个例子开始
让从生活中一个简单的例子开始。假设您正在帮助想要买房子的朋友,她看中一幢2000平方英尺的房子,售价400,000美元,这是一个值得购买的价钱吗?
为了有个参考,所以你去问问那些在同一个街区买房的朋友,最后得到三个真实的数据:
上面的数据,从第一直觉是来看,每平方英尺的平均价格在180美元。
下面就是一个神经网络,基本的模块包括输入和输出以及中间的运算权重:
上图显示了网络的结构以及它如何计算预测。计算从左侧的输入节点开始。输入值向右流动,它乘以权重,得到输出结果。
将2,000平方英尺乘以180美元单价得到360,000美元的总价。我们先从平均值开始,然后再将研究复杂的算法。模型的“训练”阶段就是找到权重的过程。因此,当听到某人“训练”神经网络时,它只意味着如何找到用来计算预测的权重。
上图是一个简单的预测模型,通过接受输入,进行计算并给出输出(因为输出可以是连续值,因此上述模型就是“回归模型”)。
想象一下这个过程(为简单起见,将价格单位从1美元换成1000美元。现在的权重是0.180而不是180),结果如下动图所示:
更强的模型
能否根据数据点平均值估算总价格?将模型应用于上述的三个数据点,看它的效果如何。
上图表示预测值与真实值的差别,黄色的线越长,差别越大。
在上面,可以看到实际价格,预测价格以及它们之间的差异。为了衡量这些差异,因此需要有一个数字告诉模型预测的好坏。其中,第3行的值为-63。如果想要使用预测和价格之间的差异作为误差测量,就必须处理个负值。所以引入误差的平方放在上图中最后一列,从而消除负值。
好模型的意味着 误差更少。对于每个点,误差通过实际值和预测值之间的差值来测量,平方误差就称为均方误差,用其作为训练模型的目标就是损失函数。
既然已经为模型的好坏定义了测量准则,那么尝试一些更多的权重值,并将它们与平均值模型进行比较:
不能通过改变权重来改进模型。但是如果添加偏差,可以改善模型。
为了让直线可以更好地逼近真值,因为已将此b值添加到直线公式中。在这种情况下,称之为“偏差”。这使的神经网络看起来像这样:
现在的神经网络看起来像如下所示:
在此图中,W和b是在训练过程中找到的值,X是的输入,Y是预测价格,如下所示:
因此,当前的模型通过在此公式中将房屋面积代入X来计算预测:
训练你的模型
怎么样才能训练神经网络?通过调整权重和偏置最小化损失函数。看能否得到低于799的误差值。
自动化训练
来看看训练过程是如何自动化进行的。通过一种称为“梯度下降”的算法来尝试逐步求解正确的权重和偏差值,从而最大限度地减少损失函数。
联系客服