2 Neural Networks

结合吴恩达.机器学习.初识神经网络
其中符号表达形式不一样:θ —> w , b(分开)
此篇是在其基础上进行修改和添加

Activation functions

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

如果你是用线性激活函数或者叫恒等激励函数,那么神经网络只是把输入线性组合再输出;那么无论你的神经网络有多少层一直在做的只是计算线性函数,所以不如直接去掉全部隐藏层。

2. 非线性激活函数

  • sigmoid 函数: ? = ?(?) = 1 / (1+?^−?)
  • tanh 函数(sigmoid 的向下平移和伸缩后的结果) : ? = ???ℎ(?) = (?^? − ?^−?) / (?^? + ?^−?)

sigmoid & tanh:
tanh 函数效果总是优于 sigmoid 函数。因为函数值域在-1 和+1 的激活函数,其均值是更接近零均值的。
例外:在二分类的问题中,对于输出层,因为?的值是 0 或 1,所以想让?的数值介于 0 和 1 之间,而不是在-1 和+1 之间。所以需要使用 sigmoid 激活函数。

sigmoid 函数和 tanh 函数两者共同的缺点:在?特别大或者特别小的情况下,导数的梯度或者函数的斜率会变得特别小,最后就会接近于 0,导致降低梯度下降的速度。

  • Relu 函数
  • Leaky Relu 函数 :当?是负值时,这个函数的值不是等于 0,而是轻微的倾斜;这个函数通常比 Relu 激活函数效果要好,尽管在实际中 Leaky ReLu 使用的并不多。

Relu & Leaky Relu优点:

  1. 在?的区间变动很大的情况下,激活函数的导数或者激活函数的斜率都会远大于0
  2. sigmoid 和 tanh 函数的导数在正负饱和区的梯度都会接近于 0,这会造成梯度弥散,而 Relu 和 Leaky ReLu 函数大于 0 部分都为常数,不会产生梯度弥散现象。(同时应该注意到的是,Relu 进入负半区的时候,梯度为 0,神经元此时不会训练,产生所谓的稀疏性,而 Leaky ReLu 不会有这问题)

总结
sigmoid 激活函数:除了输出层是一个二分类问题基本不会用它。
tanh 激活函数:tanh 是非常优秀的,几乎适合所有场合。
ReLu 激活函数:最常用的默认函数,,如果不确定用哪个激活函数,就使用 ReLu 或者Leaky ReLu(一般不用)。

Forward/Back propagation

- forward propagation

- back propagation

dZ ^ [L-1]推导
δ : 即 dZ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值