深度神经网络中的梯度消失问题怎么解决网!

深度神经网络中的梯度消失问题怎么解决网

趋势迷

深度神经网络中的梯度消失问题怎么解决

2024-07-25 22:38:25 来源:网络

深度神经网络中的梯度消失问题怎么解决

ResNets 是如何解决深度神经网络训练中的梯度消失和爆炸问题的?
当涉及到训练和部署使用ResNet的深度卷积神经网络时🐾-_🦐,蓝海大脑GPU服务器可提供强大的计算和显存资源来满足需求💀🦨——🐉🥊。蓝海大脑GPU服务器具有以下特点🤐🐰_🏅:配备最新一代的图形处理器(GPU)🕸🦓——-🐣,具备强大的并行计算能力🌾🪀-🐁,高效地处理ResNet的复杂网络结构和大量的训练数据☘️⛸-👿🥀。提供大容量的显存🐅-🎃,以满足ResNet在训练和推理过程中等我继续说🍀🐱-🦬。
1🦡🌞_🌜、梯度剪切这个方案主要是针对梯度爆炸提出的🦬🦃|*🦏,其思想是设置一个梯度剪切阈值🤢🐚-🕸🏸,然后更新梯度的时候🐖_——🌼🤯,如果梯度超过这个阈值🌜_👽✨,那么就将其强制限制在这个范围之内🤧__🕸🦂。这可以防止梯度爆炸🧸😽_-😒🐡。2🦣🦟——🏓🌦、另外一种解决梯度爆炸的手段是采用权重正则化(weithts regularization)比较常见的是l1正则🌺🌺-|🙁🦖,和l2正则🌩🦏||😚🎃,在各个深度框架等会说🙂🏐-——🐈。

深度神经网络中的梯度消失问题怎么解决

神经网络中自适应的梯度下降优化算法(二)??
Adagrad算法可以针对不同的参数自适应的采用不同的更新频率☀️*_|🍀,对低频出现的特征采用低的更新率🦆🐹-——🦮🦤,对高频出现的特征采用高的更新率🐺♦-——🎫🦭,因此😆🐕|-🧨,对于稀疏的数据它表现的很好♣🦕|✨🦈,很好的提升了SGD的鲁棒性*--🐤🦡,在Google的通过Youtube视频识别猫的神经网络训练中有很好的表现🌤__🌹。梯度更新规则🐰————🐁:g(t,i)表示在t时刻目标函数对θ等会说🐗-——😐🤕。
我们的做法是用计算机强大运算速度♦🐘_🦏🐓,暴力解决问题🦙🐓|☄️🦌。好了🐟🐿——-😚,现在🌙——-🐫🐉,暴力不是问题🌘|🐏🎋,要想出奇迹的关键就在于如何找到如何优化的规律🥈-——😫。要想做优化🙈_——🌷,首先要明确目标🐄_⚡️🦈,找到当前神经网络和期望结果之间的差距🌖🦙_🌑🐪。从下图可以看到🦛|-🕷🌿,随机设定的神经网络最终输出的是混乱的一层(被黄色线框标出),距离最右边我们期望只点亮神经元3的情况有帮助请点赞🃏_🌟。
梯度在神经网络中的作用??
利用一些改进的ReLU 可以在一定程度上避免梯度消失的问题⚡️🐥——🌾💐。例如🐈‍⬛————😓,ELU 和Leaky ReLU💫🦂-🕹,这些都是ReLU 的变体🍃🌘|🦦🐝。权重初始化在初始化权重的时候🍂|_🐊🏉,使权重满足如下公式🐁♦-🐈‍⬛:G1noutiVar[w(i)]=1G1nioutVar[w(i)]=1 其中G1G1 是估计的激活函数的平均值🎰——_🌝,noutiniout 是第i 层神经网络上向外连接的到此结束了?🥈🐸_——😮。
梯度消失与梯度爆炸原因均在于剪切范围的选择🦀🦃——|🐄🌿,选择过小的话会导致梯度消失🎍🥀|-🐟,如果设得稍微大了一点🌛_|🐕,每经过一层网络😼||🌷🐾,梯度变大一点点🦏-|😹🍁,多层之后就会发生梯度爆炸☄️🦎——♥🐔。为了解决这个问题🌕🐘——🤨,并且找一个合适的方式满足lipschitz连续性条件😖🧵||😰,作者提出了使用梯度惩罚(gradient penalty)的方式以满足此连续性条件🤕*-|👹。
神经网络为什么要有激活函数,为什么relu 能够防止梯度消失??
增加网络的非线性能力⛅️*--🪢,从而拟合更多的非线性过程🐁🦄-🐬。ReLU在一定程度上能够防止梯度消失🐺_-🦫,但防止梯度消失不是用它的主要原因♣|🤥🐺,主要原因是求导数简单🌎🍁|⛳。一定程度是指🐰🥉-🐂😀,右端的不会趋近于饱和😵_🐚🌚,求导数时🦅-|🐐🧐,导数不为零🌻——🌓🐤,从而梯度不消失🦊_🌘,但左端问题依然存在🦓🌹-😂🙁,一样掉进去梯度也会消失🍂-🛷。所以出现很多改进的ReLU🎉|☘。
3)BN允许网络使用饱和性激活函数(例如sigmoid,tanh等),缓解梯度消失问题在不使用BN层的时候🎫-——🦕🐿,由于网络的深度与复杂性💫🐜|_😁,很容易使得底层网络变化累积到上层网络中🥀♣|_🦝,导致模型的训练很容易进入到激活函数的梯度饱和区🦬|🛷;通过normalize操作可以让激活函数的输入数据落在梯度非饱和区🤒🎇_😉🎏,缓解梯度消失的问题🦇-——⚾;另外通过自适应学习与又有帮助请点赞🐷♥————🐍*。
批归一化(Batch Normalization)??
通过规范化处理后的数据分布在0附近🕊🐇_🌏,图中为激活函数梯度最大值附近🐕🌱_🤐,较大的梯度在训练中收敛速度自然快🤮😐|🥉。但是🌺🌛-🐱,关键问题出现了🐞_——🎋,分布在0附近的数据🦓🎮-🐝,sigmoid近似线性函数😺🎿|🤧,这就失去了非线性激活操作的意义🐿——-🏒🤬,这种情况下🌿——-*🏉,神经网络将降低拟合性能*--🌼,如何解决这一问题呢?作者对规范化后的(0,1)正态分布数据等会说🪢——|🐇🛷。
事实上由于神经网络中参数(权重W和偏置b)通常较多🥀🦖——_🥅🌹,要想直接求解损失函数对这些参数的梯度😚——🤣,难度极大😐|🥈🌻,所以在实际训练网络时😐🦔|🐼,我们通常采用反向误差传播🀄-⭐️🥈,即BP算法🏵🤿——-🤫😱,巧妙地利用预测值与标签值的残差🦣|🐕‍🦺,从输出层到输入层反向地求解出损失函数对各层网络参数的梯度🪅🐪_——🐂🦝。