浅层神经网络

神经网络表示

图 1 只有一个隐藏层的神经网络

我们有输入特征x1,x2,x3竖直堆叠起来,这是神经网络的输入层。中间有另外一层的圆圈,我们称之为神经网络的隐藏层。最后一层只有一个节点,这个只带一个节点的层就是输出层,它负责输出预测值y帽。

在一个神经网络中,当你使用监督学习训练它的时候,训练集包含了输入x,以及目标输出y。“隐藏层”的含义是,在训练集中,这些中间节点的真正数值我们是不知道的,在训练集中不看到它们的数值。我们可以在训练集中看到输入值x和输出y,但是隐藏层中的值在训练集中无法看到,这就是所谓的“隐藏层”,只是表示在训练集中无法看到

上图所示神经网络为双层神经网络。当我们计算神经网络的层数时,我们不算入输入层,并将输入层约定俗称将之称为第零层。

最后,我们要知道隐藏层和输出层都是带有参数的。

计算神经网络的输出

图 2logistic回归

 

图2中间的圆圈代表了回归计算的两个步骤。首先按步骤计算出z,第二步再计算激活函数sigmoid(z),神经网络只不过重复计算这些步骤很多次。

图 3第一个隐层节点的计算

 

我们先来看隐层的其中一个节点。我们暂时先隐去其它的节点,看上去和logistic回归很相似,隐层的这个节点进行两步计算。后续的隐藏的节点和第一个隐藏节点的计算类似。

图 4全部隐层节点的计算

我们通过向量化计算出相关结果。当我们向量化时有一条经验法则,当我们在一层中有不同的节点,那就纵向的堆叠起来。

图 5单样本的神经网络的计算

 

多样本中的的向量化

图 6多样本的神经网络的算法实现

 

图 7多样本向量化实现

 

我们把训练样本以列向量堆叠起来,同样把隐层计算出的结果堆叠起来

激活函数

要搭建一个神经网络,我们必须选择神经网络的隐层中用哪一个激活函数,输出单元用什么激活函数。我们可以使用g(z)作为激活函数,其中g(z)可以是非线性函数,不必一定选上文反复提及的σ(z)函数。

Sigmoid函数

Sigmoid函数的缺点是如果z非常大或非常小,函数的斜率就会很小,甚至基本接近于0,这样会拖慢梯度下降算法。除去二元分类时的输出层,否则不选用Sigmoid函数作为激活函数。在二元分类时的输出层选其作为输出函数是因为y帽介于0到1之间是最合理的。

图 8sigmoid函数

 

双曲正切函数

双曲正切函数几乎所有场合都优于σ函数,所以我们在隐层中会使用双曲正切函数替换sigmoid函数。函数的输出值介于-1和1之间,其平均值更接近0。它的优点是数据中心化的效果,会让下一层的计算更方便。它的缺点是如果z非常大或非常小,函数的斜率就会很小,甚至基本接近于0,这样会拖慢梯度下降算法。

图 9双曲正切函数

 

ReLU

修正线性单元ReLU是最受欢迎的激活函数。只要z为正,导数就是1。它的缺点是当z为负时,导数等于零。对于很多z空间,用ReLU会使神经网络的学习速度快很多,比使用tanh或σ激活函数快得多,因为它的斜率和0差很远。对于z的左半部分,ReLU的斜率为零,但在实践中,有足够多的隐层单元令z大于0,所以对于绝大多数训练样本来说还是很快的。

图 10ReLU

 

选择激活函数的经验法则

  • 如果你的输出值是0和1,或者在做二元分类,那么σ函数很适合作为输出层的激活函数,然后其它所有单元都用ReLU。
  • 如果不确定隐层用什么激活函数,就用ReLU。

为什么需要非线性激活函数

线性激活函数又称恒等激活函数。使用恒等激活函数,模型的输出值仅仅是输入特征x的线性组合。事实证明,如果使用线性激活函数或者如果没有激活函数,那么无论神经网络有多少层,一直在做的只是线性计算,这样隐层就没有意义了,因为线性隐层是没有任何作用的。

只有机器学习的是回归问题时的输出层可以使用线性激活函数。

直观理解反向传播

图 11反向传播算法的重要公式

 

随机初始化

训练神经网络时,随机初始化权重非常重要。对于logistic回归,可以将权重初始化为零,但如果将神经网络的各参数数组全部初始化为0,再使用梯度下降法,那么完全无效。

注意,初始化参数一般都很小,否则激活函数会接近饱和。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值