电子说
深度学习是指训练神经网络的过程,有的时候深度学习表示大规模的神经网络的训练,本节课程我们将从直观的理解上讲解什么是神经网络。
我们还是通过举例子的方式来解释一下,究竟什么才是神经网络,从经典的房价预测的例子开始讲起。
假如我们有一个有关于房价的数据集,这个数据集中有6个样本,每个样本的特征是房屋的面积,而样本的标签就是房屋的价格,此时我们需要一个能够拟合这个数据集的函数,并且能够通过这个函数根据房屋的面积来预测房价。
我们在机器学习的专栏中已经学习过了线性回归,所以我们很清楚如何通过线性回归来拟合出一条直线,于是我们可能得到这样的一条直线来拟合我们的数据集。
但是此时的模型会有一些问题,我们将我们的直线继续扩展,我们会发现,当我们的房屋的面积小于a的时候,我们的房屋的价格就会为负数,这是不现实的,因为我们知道房屋的价格永远都不能为负数,因此为了解决这个问题,我们需要把我们的直线弯曲一点,让它最终在零结束,那么我们最终的函数就如下所示:
我们可以看出我们的模型在大于a的时候,也就是直线部分会拟合的很好。以上是我们通过线性回归的方式来拟合我们的房屋的数据。
如果我们要通过神经网络的方式来实现上面的模型的话,这可能是最简单的神经网络了。我们把房屋的面积作为神经网络的输入(x),通过一个神经元(小圆圈),最终输出价格(y)。
我们通过上面的神经网络就能拟合出线性回归所拟合出来的函数,而这个函数我们未来在深度学习的过程中会经常的见到,这个函数从趋近于0开始,然后变为一条直线,这个函数被称为RELU激活函数,它的全称就是Rectified Linear Unit(修正线性单元)。修正可以理解为max(0,x)。
所以我们当前的神经网络可以做到和线性回归一样的功能,这个神经网络的工作原理就是输入房屋面积,然后直接使用RELU激活函数来对房屋的面积进行映射,然后我们就可以得出房屋的面积了,和线性回归的效果是一样的。
我们可以看出我们只通过一个神经元就完成了房价预测的任务,我们可以通过更多的神经元来搭建一个更大的神经网络。我们再来看一个例子。
现在我们不仅使用单一的房屋的面积来预测房屋的价格,我们现在还有房屋的一些其它的特征,比如卧室的数量,邮政编码(邮政编码决定了你步行化的程度),地区富裕度。
{!-- PGC_COLUMN --}
这些特征能够决定我们一个房子的价格,比如房子的大小和卧室的数量可以决定家庭的大小,邮政编码可以决定步行化的程度,邮政编码和地区富裕度还可以决定学校的质量,而又可以根据家庭的大小,步行化的程度,以及学校的质量可以决定最终的房屋的价格,所以我们可以根据这个逻辑建立如下所示的神经网络。
该图中的每一个神经元都可以是一个Relu,也就是修正线性单元,或者其它非线性的函数。
虽然我们已经描述出来了这样的一个神经网络,但是看起来家庭的大小,步行化的程度,以及学校的质量可能也需要我们得到,其实不用我们得到,我们只用像神经网络中输入房屋的大小,卧室的数量,邮政编码,富裕度这四个特征x,就能得到价格y,这正是神经网络神奇的地方,因为神经网络自己可以计算你训练集中样本的数目以及所有的中间过程。这样的话,我们就可以建立如下所示的神经网络了:
所以我们要做的就是将房屋大小,卧室数量,邮政编码,富裕度这四个特征(x1、x2、x3、x4)输入到神经网络中,输入之后,神经网络就会预测出对应的价格。
同时我们也要注意隐藏层的单元,我们可以看到隐藏层的单元都是从输入的四个特征获得自身的输入,比如说隐藏层的第一个节点表示家庭人口,而家庭人口仅仅取决于特征x1和特征x2,神经网络的厉害之处在于,虽然这个隐藏层的结点也在和特征x3和特征x4相连,但是神经网络总是能够通过权重参数的作用使得x3和x4对第一个隐藏层结点没有作用,所以我们的特征x3和特征x4依然可以和这个隐藏层的结点相连(虽然x3和x4并不会对第一个隐藏层有什么意义)。
这样的好处就是我们没有必要去考虑很细节的东西,比如考虑第一个隐藏层和x1和x2有关,从而连接x1和x2,而与x3和x4无关,从而不连接x3和x4,如果我们考虑到如此细节的东西,那么我们的神经网络的搭建会异常的麻烦,当我们喂给神经网络足够多的数据的时候,神经网络总是能够自动学习到相应的参数,使得虽然与x3和x4相连,但是x3和x4却不会对隐藏层第一个单元造成任何影响。
这里我们可以把神经网络的隐藏层看成是特征的升级,比如一开始我们输入的是房屋大小,卧室数量,邮政编码,富裕度,经过隐藏层之后,我们的特征变为了家庭的大小,步行化的程度,以及学校的质量(有可能)然后输入到最后输出层,相比来说家庭的大小,步行化的程度,以及学校的质量更能决定房价y,所以我们可以简单的看成神经网络的隐藏层就是对我们特征的升级。
至此我们就知道了什么是神经网络,希望能够通过本节课程能够了解到神经网络。神经网络非常擅长从x到y的精准映射函数。它非常的强大,只要你输入x,我们就可以将映射成y,就像我们上面的预测房价的例子一样。
全部0条评论
快来发表一下你的评论吧 !