zoukankan      html  css  js  c++  java
  • 神经网络层数增多 梯度消失、爆炸问题 以及 激活函数在反向传播中的作用

    假设有一个三层全连接网络,设(x_i)为第i层网络的输入,(f_i)为第i层激活函数的输出,,则
    (x_i = f_{i - 1})

    (f_{i+1} = f(f_i * w + b))

    注意现在x是已知的,要通过已知的x去训练w

    (Loos = g(f_3))

    (w_{3(new)} = w_{3(old)} - lr * delta Loss / delta w_{3(old)})

    其中(delta Loss / delta w_{3(old)} = delta Loss / delta f_3 * delta f_3 / delta w_{3(old)} = delta Loss / delta f_3 * f'_3(w_{3(old)}))

    推广得
    (delta Loss / delta w_{1(old)} = (delta Loss / delta f_3) * (delta f_3 / delta f_2) * (delta f_2 / delta f_1) * (delta f_1 / w_{1(old)}))

    又因为(x_i = f_{i - 1}),所以

    (delta Loss / delta w_{1(old)} = (delta Loss / delta f_3) * f'_3 * f'_2 * f'_1)

    tanh:

    sigmoid:

    relu:

    图像可见,tanh和sigmoid当值较大时会发生饱和现象,导数较小,当网络很深时,传播到第一层时,梯度就会趋近于0,因此训练时拟合得较慢,训练时间就比较长
    relu得导数要么是0要么是1,因此训练得就比较快。
    梯度爆炸和消失:
    对于(f'_i)
    此部分大于1,那么层数增多的时候,最终的求出的梯度更新将以指数形式增加,即发生梯度爆炸,
    如果此部分小于1,那么随着层数增多,求出的梯度更新信息将会以指数形式衰减,即发生了梯度消失。

    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    【题解】Luogu P2081 [NOI2012]迷失游乐园
    【题解】Luogu P4436 [HNOI/AHOI2018]游戏
    【题解】Luogu P4438 [HNOI/AHOI2018]道路
    【题解】Luogu P1344 [USACO4.4]追查坏牛奶Pollutant Control
    【题解】Luogu P3674 小清新人渣的本愿
    Mysql之数据库存储引擎
    Linux之取消别名设置
    Linux之别名设置
    Mysql之设置用户指定ip地址操作数据库
    Linux之php编译安装5.6
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/15316327.html
Copyright © 2011-2022 走看看