找回密码
 加入怎通
查看: 243|回复: 2

如何优化深度神经网络?(深度神经网络有哪些)

[复制链接]
我来看看 发表于 2023-03-10 01:03:13 | 显示全部楼层 |阅读模式
" p) y. t! I/ N9 S9 S8 L6 F8 m

训练一个深度神经网络以实现最佳的性能是一件具有挑战的任务在本文中,我将会探索这项任务中最常见的问题训练一个深度神经网络以实现最佳的性能是一件具有挑战的任务在本文中,我将会探索这项任务中最常见的问题及其解决方案。

5 n* H+ n) H X, \# \

这些问题包括网络训练时间过长,梯度消失与爆炸以及网络初始化,我们在此统称为优化问题而在训练网络中出现的另一类问题则称作正则化问题,对此,我已经在之前的文章中讨论过了,如果你没有阅读过,可以点击下方链接阅读原文。

$ m9 B7 [3 L. q$ L# y6 o% f x

Improving Deep Neural Networkshttps://towardsdatascience.com/improving-deep-neural-networks-b5984e29e336?source=post_page

6 ~3 Z7 i) @+ R

输入数据标准化当我们在训练神经网络时,我们可能会注意到模型训练的时间比预期的要久。这是因为网络的输入数据没有进行标准化处理,让我们尝试通过下方两个输入特征来理解标准化的含义。

& D3 H% v# v; x2 O R' B

在原始数据中,数据的 X 轴(特征X)取值区间为5-50,Y轴(特征Y)取值区间为3-7 另一方面,在标准化后的数据中,X轴取值区间时-0.15~0.15, Y轴的取值区间时-1.5~1.5通过标准化数据,即缩放数值从而使其特征范围非常接近:而标准化数据只需要两步过程。

& F+ x$ a, v: F* \% ~# } z

让数据减去其均值,使得数据的均值为 0,之后再让该数据除以其方差,从而缩放数据mu = np.mean(X)X = X - musigma = np.linalg.norm(X)X = X/sigma这里有一点值得注意的是,我们需要使用同样的 mu 值和 sigma 值去转换我们的测试数据,因为我们想用同样的方法来缩放它们。

% c7 Q/ b; J6 v; S1 @1 x

为什么标准化会起作用呢?既然我们已经知道了如何标准化数据集,那么让我们试着理解为什么标准化能够在下面的示例中起作用下面是成本值 J,权重 W 和偏差 b 之间的等高线图中心表示我们必须达到的最小成本

8 c k5 i+ }; c8 E& a- y

右边的图看起来更对称,这是标准化背后的工作原理的关键如果特征的范围变化很大,则不同权重的值也会随着发生很大的变化,并且将花费更多的时间来选择完美的权重集然而,如果我们使用标准化数据,那么权重就不会有很大的变化,从而在较短的时间内获得理想的权重集。

" G" G$ O% z1 f

此外,如果使用原始数据,则必须使用较低的学习率来适应不同的等高线高度但是在归一化数据的情况下,我们有更多的球面轮廓,通过选择更大的学习速率,我们可以直接实现最小值当特征在相似的尺度上时,优化权重和偏差变得容易。

' A5 _2 A$ T" z* Z2 J7 B; t

梯度消失和梯度爆炸梯度消失和梯度爆炸问题源于权值的初始化 以上两个问题都导致网络的训练不当和速度较慢问题正如其名称所暗示的那样,当权重消失并最终变得太小时,就会出现梯度消失;然而在梯度爆炸中,权重会爆炸并变得过大。

3 o) D" M8 f1 C& J! F0 w

让我们用一个案例来更好地理解它们设 W 是与单位矩阵 I 相近的经初始化的所有层的权重矩阵。

, O5 e+ Z# f/ W( K/ e

在前向传播中,一个特定层的输出 Z 由以下公式定义,其中 W 是权重矩阵,X 是输入,b 是偏差:

`1 g, R$ w- n' T

如果我们在 L 层(L 为层数)上执行上述计算,那么我们可以假设权重矩阵 W 将乘以 L 次,忽略偏差现在,如果特定值大于 1 ,例如 1.5,则层的激活将呈指数递增,梯度将变大的,与此同时梯度下降将采取大的步长,并且网络将花费很长时间来达到最小值。

- {' Q; ~: v2 a3 i' g: n8 u1 S

这种问题被称为梯度爆炸同样的,如果特定值小于 1,例如 0.9,则层的激活将呈指数递减,梯度将变得很小,与此同时梯度下降将采取小的步长,并且网络将需要很长时间才能达到最小值这种问题被称为梯度消失为了避免梯度爆炸和梯度消失的问题,我们应该遵循以下规则 :

/ i7 C. V/ z4 I9 h* b2 [) i

1. 激活层的均值应该为 02. 激活层的方差应该在每一层都保持不变如果遵循上述规则,则能够确保梯度下降不会采取太大或太小的步长,并以有序的方式向最小值方向移动,从而避免了梯度爆炸和梯度消失问题这也意味着网络将以更快的速度进行训练和优化。

, z) Z' L4 {2 A

由于问题的根源在于权值的初始化不当,所以我们可以通过正确地初始化权值来解决这个问题Xavier 初始化当特定层的激活函数为 Tanh 时,则使用 Xavier 初始化我们可以按照以下方式使用 Xavier 初始化:。

) k+ I6 Z8 p# {2 B

# Let the dimesnion of weight matrix be(5,3)# The variance is (1/neurons in previous layer)# Randn ensure that the mean = 0

$ E. e! k- J' P' {/ K/ h! i/ x

W = np.random.randn(5,3) * np.sqrt(1/3))He 初始化当特定层的激活函数为 ReLU 时,可使用 He初始化我们可以通过以下方式使用 He初始化:# Let the shape of the weight matrix be(5,3)。

* b7 q+ B5 r# f4 X

# The variance is (2/neurons in previous layer)# Randn ensure that the mean = 0W = np.random.randn(5,3) * np.sqrt(2/3))

- G' p. V) t% t: |! K

相关参考:Deep Learning Noteshttp://www.deeplearning.ai/ai-notes/initialization/Coursera — Deep Learning Course 2

/ i9 `) ?6 P; A. R) f; ?

https://www.coursera.org/learn/deep-neural-network/home/welcomevia https://medium.com/analytics-vidhya/optimization-problem-in-deep-neural-networks-400f853af406

8 X" g5 j1 b) n% q8 ?& n

本文译者:Ryan、肖书忠 雷锋网雷锋网雷锋网

2 t) D& Y, B3 W8 R: {& e/ I% p ' n2 M% J/ d& D' _* h : a& b; T1 R/ \* Z% D2 _/ z/ f$ } - k& s* @+ z5 n$ |7 ?0 y9 W/ v8 v- p4 j0 q% Z8 g. a
回复

使用道具 举报

光芒 发表于 2026-02-06 23:27:41 | 显示全部楼层
这个思路很新颖,打开了新世界的大门,谢谢分享
回复

使用道具 举报

闪亮丶 发表于 2026-07-05 11:43:18 | 显示全部楼层
这个分享太实用了,刚好能用到,感谢楼主!
回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 加入怎通

    本版积分规则

    QQ|手机版|小黑屋|网站地图|真牛社区 ( 苏ICP备2023040716号-2 )

    GMT+8, 2026-7-8 21:21 , Processed in 0.034254 second(s), 25 queries , Gzip On.

    免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

    Powered by Discuz! X3.5

    快速回复 返回顶部 返回列表