Tensorflow笔记【二】激活函数

激活函数是神经网络中的关键元素,引入非线性以解决线性模型无法处理的问题。Sigmoid和Tanh虽然存在梯度消失问题,但能引入非0均值;ReLU则因其简单快速和避免梯度消失在正区间的优势被广泛使用,但也存在输出非0均值和Dead ReLU问题。学习率调整和合适的激活函数选择对模型优化至关重要。
摘要由CSDN通过智能技术生成

为什么要用激活函数?

在实际应用中某些数据是线性可分的,即可以用一条直线将数据分开:
在这里插入图片描述
而有些数据则无法通过线性进行分割,
在这里插入图片描述
此时可以通过线性变换的方式进行分割:x² y²的方式

在这里插入图片描述

总而言之,激活函数可以引入非线性因素,解决线性模型所不能解决的问题。

神经网络复杂度:

在这里插入图片描述

一、空间复杂度:
		① 层数=隐藏层数+输出层    ② 总复杂度=总W + 总b
		上图的层数:隐藏层+输出层 = 2
		上图的复杂度:3*4+4 + 4*2+2 = 26
二、时间复杂度
		乘加运算次数
		3*4 + 4*2 = 20

学习率:

① W(t+1) = W(t) - L(r)* Зloss / ЗW(t)
② 指数衰减学习率 = 初始学习率 * 学习率衰减率 ** (当前轮数 / 多少轮衰减一次)

激活函数:

激活函数的标准

1、非线性:非线性可使多层神经网络可逼近所有函数
2、可微性:大多蚕蛹梯度下降的方式更新参数
3、单调性:当激活函数单调,可以保障单层网络的损失函数是凸函数
4、近似恒等性:f(x) ≈ x,当参数初始化随机最小值,神经网络更稳定

一、sigmoid 【tf.nn.sigmoid】

在这里插入图片描述

	函数:f(x) = 1 / (1 + e**-x)
    缺点:
		① 易造成梯度损失
		② 输出非0均值,训练慢
		③ 幂运算复杂,训练时间长

二、Tanh 【tf.math.tanh(x)】

在这里插入图片描述

	函数:f(x) = (1-e**-2x)/(1+e**-2x)
	缺点:
		① 输出是 0 均值
		② 易造成梯度消失
		③ 幂运算复杂,训练时间长

三、Relu 【tf.nn.relu(x)】

在这里插入图片描述

	函数:                 |- 0  x<0
		f(x) = max(x,0) = |
		                  |- x  x>=0
	优点:                                        缺点:
		① 解决梯度消失(正区间)                         ① 输出非0均值,收敛慢
		② 计算快(输入>0)                              ② Dead Relu问题
		③ 收敛快于sigmoid和Tanh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值