浅层神经网络(Shallow neural networks)学习笔记

作者arsoooo

1.1 计算一个神经网络的输出(Computing a Neural Network’s output)

在逻辑回归中,我们有a直接等于yhat,是因为在逻辑回归中我们只有一个输出层,所以我们没有用带方括号的上标。此处多层的神经网络,yhat表示最终输出,a表示中间层的输出,这些输出作为输入传入下一层里继续计算,所以又叫做激活值。
在这里插入图片描述
图中上标表示神经网络的层数,下标表示该层的第几个神经元,这是神经网络的符号惯例。
接下来计算一个神经网络的输出:
在这里插入图片描述
从隐藏层的第一个神经元开始计算,如上图第一个最上面的箭头所指。从上图可以看出,输入与逻辑回归相似,每个神经元的计算与逻辑回归一样分为两步,隐藏层的第二个以及后面两个神经元的计算过程一样,只是注意符号表示不同。在这里插入图片描述
向量化的过程是将神经网络中的一层神经元参数纵向堆积起来,例如隐藏层中的w纵向堆积起来变成一个(4,3)的矩阵,用符号W[1]表示。在这里插入图片描述得到Z[1]后,a[1] = sigmoid(Z[1]),接着通过a[1]进行一次计算得到a[2]。
在这里插入图片描述


1.2 多样本向量化(Vectorizing across multiple examples)

题目复杂,实际上1.1讲的是一个训练样本放入神经网络计算,现在是有m个训练样本,每个都要放进去计算。
当然我们不要用loop循环,而是把不同训练样本的x们组合成一个矩阵,其中水平方向上,对应于不同的训练样本;竖直方向上,对应不同的输入特征,而这就是神经网络输入层中各个节点。


1.3激活函数(Activation functions)

a = sigmoid(z),a是激活值,sigmoid是激活函数。除了sigmoid函数以外的非线性函数,tanh函数或者双曲正切函数是总体上都优于sigmoid函数的激活函数。

tanh函数是sigmoid的向下平移和伸缩后的结果。对它进行了变形后,使得数据的平均值更接近0而不是0.5,tanh函数在所有场合都优于sigmoid函数。

吴恩达老师给出了一些函数选择的建议:

如果输出是0、1值(二分类问题),则输出层选择sigmoid函数,然后其它的所有单元都选择Relu函数。

这是很多激活函数的默认选择,如果在隐藏层上不确定使用哪个激活函数,那么通常会使用Relu激活函数。有时,也会使用tanh激活函数,但Relu的一个优点是:当z是负值的时候,导数等于0。

这里也有另一个版本的Relu被称为Leaky Relu。当z是负值时,这个函数的值不是等于0,而是轻微的倾斜。这个函数通常比Relu激活函数效果要好,尽管在实际中Leaky ReLu使用的并不多。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值