【深度学习基础】系列博客为学习Coursera上吴恩达深度学习课程所做的课程笔记。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。
1.预测房屋价格
假设我们现在想要根据房屋面积来预测房屋的价格。首先,我们需要采集一些样本,然后将这些样本标注在二维坐标系中,用横轴表示房屋的面积,纵轴表示房屋的价格,如下图所示:
那么我们现在构建一个简单的线性模型去拟合这些样本:
可以看出这条直线很好的拟合了这些样本。但是这里存在一个问题,就是价格是不可能为负数的,因此不能让这条直线一直延伸下去,而是要让它弯曲然后最终在零点结束:
这条蓝色的线就是我们最终得到的模型。形似这样的函数被称为ReLU函数(Rectified Linear Unit),是人工神经网络中常用的激活函数,以后会再详细介绍。
这其实就是一个非常简单的神经网络模型。此时,可能有些人会问了:这看着也不像网络啊?那么,我们换种表现形式:
房屋面积是输入,通过一个神经元(neuron)后,得到最终的输出,即房屋价格。这么一来,看着就是一个标准的神经网络结构了。
2.更复杂的神经网络结构
第1部分介绍了一个简单的单神经元的神经网络结构。那么现在我们考虑的更全面一些,假设,根据房屋面积和卧室数量可预测出可容纳的家庭大小,根据邮政编码(可理解为房屋所在地)可预测出房屋所在地的交通是否便利,根据富裕程度(可理解为房屋周边的居民富裕程度)可预测出周边的学校质量。然后根据预测出来的可容纳的家庭大小、交通便利程度和周边学校质量来进一步预测出最终的房屋价格。因此,我们可进一步扩充我们已有的神经网络:
我们将x所在的层称为输入层(input layer),中间的三个神经元构成了一个隐藏层(hidden layer),y所在的层为输出层(output layer)。其中每个神经元都代表一个激活函数,可能是之前提过的ReLU函数,也可能是其他函数。这便是人工神经网络(Artificial Neural Network,ANN)(和神经网络是一个概念,不用纠结于名字)的经典结构,由输入层、隐藏层(可能不止一层)和输出层组成:
在实际应用中,我们只要输入房屋面积、卧室数量、邮政编码和富裕程度即可通过该网络自动预测出房屋的价格。并且该网络的结构完全由我们自主决定。