一文掌握深度学习(九)——彻底搞懂神经网络(必看)
这一章是非常重要的一章,因为深度学习就是从动物的神经网络中找到的灵感,网上也有很多神经网络入门的视频和文章,不过大部分都是鱼龙混杂,本文力求用最通俗的语言来帮助大家彻底掌握深度学习的核心——神经网络。
本章要讲解的神经网络为浅层神经网络,深层神经网络咱们后面讲,但是没什么稀奇的,深层神经网络只不过比浅层神经网络多了几层,原理都一样。
回想一下我们之前学习的Logistic回归,它是一个最简单的神经网络,如图:
为一个样本的特征值,
为每个特征对应的权重,
代表的是
,
代表
,最后输出a,也就是得到的预测值
。
通过最简单的神经网络图,可以看出之前学习的Logistic回归的前向传播就是按照这个图箭头的方向进行的,反向传播按照箭头的反方向进行就可以啦,非常清晰直观,在这里也相当于复习了一遍之前的内容。
下面正式的讲解浅层神经网络,我们以两层的神经网络为例子来细致的分析:
上图就是一个二层的全连接神经网络,可能有的同学会问:“这个图明明是三层,为什么非得说是两层呢?”,因为在深度学习中,计算神经网络的层数,通常不计算输入层,所以上图的层数为二层,那么什么是全连接神经网络呢?顾名思义,全连接意思就是每一个神经元都与上一层的所有神经元相连,这样组成的神经网络为全连接神经网络。
下面来讲解每一个层:
1、输入层
对于二分类问题来说,输入层就是我们要识别的图片,比如我们想判断一张图片里是否有猫咪,那么我们的输入就是这一张图片,我们需要把图片变成像素特征,因为计算机识别的是像素。假设一张图片的大小为28*28,那么把图片变成像素矩阵,大小也是28*28,由于在深度学习中,输入层为列向量,所以要把像素矩阵变成一个列向量,维度为784*1,和上图中的输入层的维度一样。
输入层中的每一个输入都代表着图片中的一个特征,比如说第一个输入可能代表猫毛发的纹理,第二个输入
代表猫的瞳孔等等。
2、隐藏层
隐藏层是把输入层中的特征,组合成更加抽象的特征,比如第一个隐藏层的神经元代表猫的条纹,第二个代表猫的眼睛等等。
计算公式为:
这里上标“[1]”代表第一层的意思。
以上使用向量来表示的,假设有m个样本,下面我们检查维度是否正确:
对于,其中
的维度从上图可以看出为(10,m),
的维度为(10,784),X的维度为(784,m),
的维度为(10,m),计算可知维度正确。
对于,可知
的维度和
都一样,都是(10,m)。
隐藏层即计算Z也计算A,这点大家要记住。
注意:在中,
是**函数,为什么要用**函数呢,因为如果没有**函数,我们的模型一直是线性的,这样模型太简单,处理不了复杂的问题,所以需要**函数来使得模型变成非线性,这样才能处理更加复杂的分类问题。
总结:隐藏层就是把输入层的特征提取组合成更加抽象的特征。
3、输出层
输出层就是把隐藏层中得特征组合起来计算预测值,对于二分类来说如果预测值>=0.5,则预测正确,反之预测错误。
公式如下:
可以看出,输出层和隐藏层的公式区别在于,Z、W、b、A的层数不一样了,输入从之前的X变成了现在。
因为通过神经网络图不难看出,上一层的输出就是下一层的输入。
维度的计算留给大家了,方法和在隐藏层中计算维度的方法一致。
以上本文章的全部内容,讲解了浅层神经网络的输入层、隐藏层以及输出层,相信大家看完之后会对神经网络有了清晰的认识,咱们下次见。
如果您觉得文章对你有帮助,点个关注不迷路~
以上就是本文的全部内容,获取深度学习资料以及吴恩达老师课程(中文字幕),扫描下方公众号,回复“资料”两字即可获取,祝您学习愉快。