From 79c8c8c9d44321f6d2f179c8d0edfe422ebc203b Mon Sep 17 00:00:00 2001 From: benjas <909336740@qq.com> Date: Sat, 7 Nov 2020 15:10:57 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E7=86=B5=E5=92=8C=E6=BF=80=E6=B4=BB?= =?UTF-8?q?=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 必备数学基础.md | 53 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/必备数学基础.md b/必备数学基础.md index 585728d..f2e76cf 100644 --- a/必备数学基础.md +++ b/必备数学基础.md @@ -706,4 +706,55 @@ K(x, y) = (4+10+18)^2 = 32^2 = 1024 | B | 0.9 | 0.1 | 0.1 | 0.1 | 0.1 | | C | 0.1 | 0.1 | 0.1 | 0.1 | 0.6 | -如上所示,我们可以认为A是类别2和类别4的,B是类别1的,C是类别5的。 \ No newline at end of file +如上所示,我们可以认为A是类别2和类别4的,B是类别1的,C是类别5的。 + +#### 激活函数的问题 + +**杀死梯度**: + +之前我们计算梯度下降时,当值无限接近于边缘,如X轴,那么梯度就为0,也就没办法应用,特别是神经网络是串行的,结果是累乘的求梯度,这样其中一个为0时,那么乘以0就全部结果为0 + +**非原点中心对称**: + +> 原点对称是0的位置 + +Sigmoid没有负数,都是大于0的,当梯度更新的时候,要么全为负要么全为正,不会有正有负,也就是一根筋的往一个方向跑,优化更新会产生阶梯式 + +![1604732378732](assets/1604732378732.png) + +那么更新就会慢,收敛效果一般 + +**Tanh函数** + +- 原点中心对称 +- 输出在-1到1直接 +- 梯度消失现象依然存在,会贴近边缘 + +![1604732534318](assets/1604732534318.png) + +**ReLU函数** + +- 公司简单使用 +- 解决梯度消失现象,计算速度更快 + +![1604732635344](assets/1604732635344.png) + +> 没有了梯度为0的地方 + +![1604732590962](assets/1604732590962.png) + +> 会直接把小于0的杀死 + +![1604732707768](assets/1604732707768.png) + +> 虚线是其它函数,实现是relu,可以看到relu函数收敛的非常快 + +但是上面还存在一个问题,就是杀死小于0的神经元,那么这些神经元就不会再更新,它可能会存在作用,所以改进后 + +**Leaky ReLU** + +- 解决了Rulu会杀死一部分神经元的情况 + +![1604732878237](assets/1604732878237.png) + +> 可以看到max里面最小值是0.01x,也就是不会直接杀死 \ No newline at end of file