deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

本文主要来讲解包含一个隐藏层的神经网络结构及其原理。

本文参考链接: https://www.missshi.cn/api/view/blog/59a6ad67e519f50d040000e5

1.概念初识:

之前逻辑回归的模型:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

一个包含隐藏的神经网络的网络结构:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

2.神经网络的表示:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

其中,x1,x2,x3表示其输入层,中间的四个圆圈则表示隐藏层,最后的一个节点是其输出层。而隐藏层数据是我们无法知道而需要进行训练学习的。对于上述网络结构而言,我们称其为一个两层的神经网络。(输入层不包含在内)

3.神经网络的前向传播计算:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

第一个隐藏层神经元的计算逻辑:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

第二个隐藏层神经元而言,计算逻辑相同:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

其中,对于ai[l]而言,l表示它是在第l层,而i则表示它是该层的第i个节点,对于w和b而言,符号表示的含义相同。

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

4.训练样本的矢量化:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

此时w是(m,3)的矩阵,x是(3,n)的矩阵,b是(m,1)的矩阵,在与wx相加时有广播效果,最后得到z(m,n)的矩阵。其中m是隐含层层数,n是样本个数。

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

5.**函数:

对于隐藏层和输出层而言,我们通常会选择一个**函数用于对其输出进行处理。

之前我们接触的**函数都是sigmod函数,但实际上,还有一些可能更好用的**函数。例如tanh函数通常会比sigmod函数用更好的性能。

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

tanh作为**函数优点:由于其平均值更接近于0,可以起到中心化的作用,通常更有利用算法优化。

特殊情况:二分类问题输出层的**函数,由于我们仅希望对其进行是否判断,其实更类似于0,1判断,此时选择sigmod函数是一个更加合理的选择。除二分类输出层外,几乎不使用:

sigmod函数和tanh函数共同的问题:当输入变量特别大或者特别小时,斜率非常小,此时并不利于梯度下降法进行学习。

在机器学习中,一个非常常用的**函数叫做ReLU函数(修正线性单元函数)。(推荐)

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

6.**函数不选择线性函数的原因

若**函数选择线性函数,线性函数作用到线性函数上,结果还是线性函数,也就是说,无论最终有多少隐藏层,得到的最终输出结果仍然是输入的线性组合。(很简单,不会推导参看原文)

7. **函数求导:

① sigmod函数:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

Ps:在后续的文章中,我们会使用g'(z)来表示dg(z)/dz。

② tanh函数

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

③ ReLU函数

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

当z=0时,ReLU函数的导数不存在,不过这个并不重要,我们可以假设其导数也是1即可。

④ Leaky ReLU函数:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

7. 梯度下降法:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

接下来,就让我们继续来看一个两层的神经网络吧:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

8.参数为什么要随机初始化:

参数初始化一个常用的原则是:使用较小随机数来对参数进行初始化。

① 为什么不能使用一个固定参数(例如0)来对神经网络进行初始化。

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

② 实际初始化过程:

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习

③ 为什么要乘以一个小系数

deeplearning.ai 吴恩达网上课程学习(五)——浅层神经网络理论学习