深度学习指训练神经网络,有时候规模很大。
什么是神经网络呢?
房价预测的例子:
假如有一个六间房屋的数据集,已知房屋的面积、已知房屋价格,想要找到一个函数:根据房屋面积预测房价的函数。
线性回归思想:用这些已知数据来拟合一条直线。
但由于房价永远不会为负,因此直线不太合适。所以在Y轴接近于0的时候,让它弯曲一点,结束于0。
则可将这个找到适合于房价预测的拟合函数的过程(有输入有输出),看成是一个非常简单的神经网络。
这几乎是最简单的神经网络了,即我们把房屋的面积(x),作为神经网络的输入,通过这个节点(小圆圈),最后输出了价格(y)。
则这个小圆圈就是一个独立的神经元(neuron[niu:ron])
这个神经网络(神经元)的作用:输入面积、完成线性计算、取不小于0的值,最后输出预测价格。
这个函数在神经网络文献中非常常见,Relu[relu]函数,全称为 rectified linear unit,修正线性单元。这个函数一开始是0,然后是一条直线。修正指的是取不小于0的值。
这是一个单神经元网络,规模很小的神经网络,大一些的神经网络,就是把这些单个神经元堆叠起来形成的。可以将这些神经元想象成单独的乐高积木,通过搭建积木来构建一个更大的神经网路。
例子:不仅仅使用房屋的面积来预测价格,现在还知道了一些其他信息,比如卧室的数量、邮编、富裕程度等。面积和房间数量作为特征代表家庭规模、邮编代表街区,步行化程度(即便利程度)、邮编和周围的富裕程度代表学校的质量。根据这些,人们愿意在房屋上花费多少钱呢?
这里每一个圆圈都可能是一个relu函数,即“修正线性单元”,或者其他不那么线性的函数。
这样就得到了一个堆叠的神经网络,他的神奇之处就在于,只需要输入x(这里指房屋面积、房间数量、邮编、周围富裕程度这4个特征),就可以得出y(房屋预测价格),不管训练集有多大,所有的中间过程,它都会自己完成。
我要做的是,将四个特征输入到神经网络中。
中间的圆圈,在一个神经网络中,他们被叫做“隐藏单元”,每个的输入都同时来自四个特征(全连接)。我们不会说第一个节点代表特征1和特征2,第二个节点代表特征3,而是说,神经网络,你自己决定这个节点是什么,自动生成隐藏单元。我们只给你四个输入特征,随便你怎么计算。
即输入层-隐藏层-输出层:
隐藏层中,连接数是很多的,因为输入的每一个特征,都连接到了中间的每一个圆圈。
值得注意的是,在神经网路中,只有你喂给它足够多的数据:关于x和y的数据(x,y),即给到足够多的x、y训练样本(有监督学习),神经网络非常擅长于计算x到y的精准映射函数,这就是一个基本的神经网络。
神经网络在监督学习的环境下是如此的有效和强大,也就是说,只要尝试输入一个x,即可把他映射成y。