阿里P8谈谈浅层神经网络的学习方法

每当我们听到神经网络的大名时,就会认为它里面有许许多多的隐藏层,但其实还有一种只有少量隐藏层的神经网络,浅神经网络只包含一到两层隐藏层。对浅神经网络的研究可以加强我们对深度神经网络内部运行机制的理解。

本文将介绍什么是浅神经网络以及它的数学原理。下图所示是一个只包含一个隐藏层、一个输入层和一个输出层的浅神经网络。
 

æµå±ç¥ç»ç½ç»

神经元

神经元是神经网络中的原子单元。给定神经元一个输入,它将得到对应的输出,并将其作为下一层的输入。一个神经元可以认为是以下两部分的结合:

æµå±ç¥ç»ç½ç»

  1. 第一部分根据输入和权重来计算得到Z 。

  2. 第二部分在Z上施加激活函数得到神经元的最终输出A。

 

 隐藏层

隐藏层由许多神经元组成,每一个都会执行上述两步运算。在上图的浅层神经网络中,隐藏层的四个神经元进行如下计算:

æµå±ç¥ç»ç½ç»

在上面的方程中:

  1. 下标i表示第i层,下标j表示该层的第j个神经元。

  2. X是包含3个特征的输入向量。

  3. W[i]j是第i层第j个神经元的权值。

  4. b[i]j 是第i层第j个神经元的偏置。

  5. Z[i]j 是第i层第j个神经元的中间输出。

  6. A[i]j 第i层第j个神经元的最终输出。

  7. Sigma 是sigmoid激活函数。它的数学定义是:

æµå±ç¥ç»ç½ç»

显而易见,上述四个方程比较冗长,因此我们把它们进行向量化:

浅层神经网络

  1. 第一个方程用一个矩阵乘法计算所有的中间输出Z。

  2. 第二个方程用一个矩阵运算计算所有的激活函数输出A。

 浅层神经网络

神经网络通常由若干隐藏层构建。现在我们已经知道了某一层的计算方法,接下来学习如何在整个神经网络中根据给定输入X计算输出。以下这些方程也称为前向传播方程。

浅层神经网络

  1. 第一个方程计算第一个隐藏层的中间输出Z[1]。

  2. 第二个方程计算第一个隐藏层的最终输出A[1]。

  3. 第三个方程计算输出层的中间输出Z[2]。

  4. 第四个方程计算输出层的最终输出A[2],也就是整个神经网络的最终输出。

  激活函数

我们知道,一个神经网络根本上来说就是一组数学方程和权重的集合。为了提高神经网络的鲁棒性,从而在各种不同的场景下都能得到很好的效果,我们使用了激活函数。这些激活函数为神经网络引入了非线性特性。接下来在浅层神经网络的基础上理解激活函数的重要性。

如果没有激活函数,我们的浅层神经网络可以被表示成:

 

浅层神经网络

将方程一中的Z[1]代入方程2得到如下方程:

浅层神经网络

显而易见,输出将是一个新权重矩阵W、输入X和新偏置矩阵b线性组合,意味着隐藏层中的神经元及其权重都失去了意义。因此,我们需要用激活函数为网络引入非线性特性。

  权值初始化

神经网络的权重矩阵通常是随机初始化的。那么为什么不能将它初始化为0或者其它什么值呢?接下来通过我们的浅层神经网络来理解这个问题。

让我们用0或者其它值来初始化第一层的权重矩阵W1,和第二层的权重矩阵W2。现在,如果权重矩阵保持不变,那么隐藏层中神经元的激活函数也相同,激活函数的导数也相同。因此,该隐藏层中的各个神经元的权值将被修改为类似的值,从而某一隐藏层无需再包含多于一个神经元。然而这并非我们想要的。相反,我们希望隐藏层中的每一个神经元都独一无二,拥有不同的权重并且作为一个独立的方程来运算。因此,我们需要随机初始化权值。

最好的初始化方法是Xavier初始化。它的数学定义是:

浅层神经网络

方程表明,第l层的权重矩阵W的值由正态分布生成,其中均值μ= 0、方差sigma² 是第l-1层神经元数量的倒数。所有层的偏置b均初始化为0.

  梯度下降

神经网络的权重是随机初始化的。为了用神经网络进行正确预测,我们需要更新这些权值,用于更新权值的方法称之为梯度下降。以下通过计算图来进行理解。

浅层神经网络

上图中,前向传播(黑线所示)用于根据给定输入X计算输出。反向传播(红线所示)对计算图中每一步的输入计算其导数,从而更新权重矩阵W[1]、W[2]和偏置b[1]、b[2]。损失函数L定义如下:

浅层神经网络

根据上式所示损失函数L,隐藏层和输出层采用sigmoid激活函数,利用导数的链式法则可以计算出:

浅层神经网络

上面的方程可能看起来有点迷惑,但是它们在梯度下降中应用非常好。在计算dZ[1]的方程中,*表示点积,σ’ 表示sigma的导数。

“我强烈建议懂微积分的读者亲自计算一下上述方程,从而对于梯度下降的运行方式有一个更好的理解。”

在本文中,我们学习了浅层神经网络的数学原理。尽管我已经尽可能详细的解释了其中的所有内容,如果你感觉欠缺某些知识我们可以加我的QQ学习群进群探讨:519970686 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人工智能小雨老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值