第1部分 神经网络和深度学习
第1章 深度学习简介
1.1 神经网络
神经网络究竟是什么呢?
假设有一个数据集,它包含了六栋房子的信息。你知道房屋的面积是多少平方米,并且知道房屋价格。这时,想要拟合一个根据房屋面积预测房价的函数。如果你对线性回归很熟悉,则可能会用这些数据拟合一条直线。但你可能也发现了,价格永远不会是负数的。因此,为了替代一条可能会让价格为负的直线,应把直线弯曲一点,让它最终在零结束。
把房屋的面积作为神经网络的输入(称之为x),通过一个节点(一个小圆圈),最终输出价格(用y表示),如图1-1所示。这个小圆圈就是一个单独的神经元。
图1-1 单神经元网络
如果这是一个单神经元网络,则不管规模大小,它正是通过把这些单个神经元叠加在一起形成的。如果把这些神经元想象成单独的乐高积木,则可以通过搭积木来完成一个更大的神经网络。
不仅仅有房屋的面积,还有一些有关房屋的其他特征,比如卧室数量、邮政编码、步行化程度(你是否能步行去杂货店或者是学校,是否需要驾驶汽车),如图1-2所示。
图1-2 房屋价格预测的神经网络示意图
在图1-2上每一个小圆圈都可以指非线性的函数。基于房屋面积和卧室数量,可以估算家庭人口;基于邮编,可以估测步行化程度或者学校的质量。最后这些决定人们乐意花费多少钱。
对于一个房子来说,这些都是与它息息相关的事情。在这个情景里,家庭人口、步行化程度以及学校的质量都能帮助用户预测房屋的价格。以此为例,x是所有的这四个输入,y是尝试预测的价格,把这些单个的神经元叠加在一起,就有了一个稍大一点的神经网络。这显示了神经网络的神奇之处,虽然已经描述了一个神经网络,但还需要得到房屋面积、步行化程度和学校的质量,或者其他影响价格的因素,如图1-3所示。
神经网络的一部分神奇之处在于,当实现它之后,要做的只是输入x,就能得到输出y。因为它可以自己计算训练集中样本的数目以及所有的中间过程。所以,给出这些输入的特征之后,神经网络的工作就是预测对应的价格。同时也注意到这些被叫作隐藏单元的圆圈,在一个神经网络中,它们每个都从输入的四个特征获得自身输入,比如说,第一个节点代表家庭人口,而家庭人口仅取决于x1和x2特征,换句话说,神经网络中决定在这个节点中想要得到什么,然后用所有的四个输入来计算想要得到的结果。因此,输入层和中间层被紧密地连接起来了。神经网络非常擅长计算从x到y的精准映射函数。
图1-3 房屋价格预测的神经网络
这就是一个简单的神经网络,只要尝试输入一个x,即可把它映射成y。