PyTorch 学习笔记(四):激活函数对比、权重初始化、防止过拟合的方法

一. 激活函数

如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。

1. Sigmoid

Sigmoid非线性函数的数学表达式是 σ ( x ) = 1 1 + e − x \sigma (x)=\frac{1}{1+e^{-x}} σ(x)=1+ex1,其图形如下图所示:
在这里插入图片描述
我们知道Sigmoid函数是将一个实数输入转化到0-1之间的输出,具体来说越小的负数转化到越靠近0,越大的正数越靠近1。

历史上Sigmoid函数频繁的使用,因为其具有良好的可解释性。但最近这些年,Sigmoid函数已经很少被人使用了,主要是因为Sigmoid函数有以下两大缺点。
(1)Sigmoid函数会造成梯度损失。一个非常不好的地方在于Sigmoid在靠近1和0的两端时梯度几乎为0,而反向传播算法的梯度向下传播时,每过一层就会增加一个 g ′ ( z ) g^{'}(z) g(z)项(Sigmoid关于每一层线性组合值的导数),且Sigmoid函数的导数满足 f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f^{'}(x)=f(x)(1-f(x)) f(x)=f(x)(1f(x)),又f(x)的值在(0, 1)之间,故 f ′ ( x ) f^{'}(x)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值