人工神经网络之过程理解--损失函数与梯度下降的密切关系

举报
whitea133 发表于 2025/10/27 23:43:53 2025/10/27
【摘要】 人工神经网络之过程理解--损失函数与梯度下降的密切关系

优化器知识:[5分钟深度学习] #01 梯度下降算法_哔哩哔哩_bilibili

损失函数和优化器的联系,以及什么是反向传播算法:[5分钟深度学习] #02 反向传播算法_哔哩哔哩_bilibili

感知机和人工神经网络(多层感知机MLP)的区别

  1. 感知机:只有一层,为线性函数(线性层)y=wx+by = wx + b ,之后再接入一个激活函数(固定且必须使用阶跃函数 (Step)符号函数 (Sign) 作为激活函数。)

    1. 也就是说,单层感知机只能处理二分类问题
  2. 人工神经网络(多层感知机):绝不使用阶跃函数或符号函数作为隐藏层或输出层的激活函数!它必须使用连续、可导的非线性激活函数(如 Sigmoid, Tanh, ReLU 及其变体)。因为多层感知机,后面的感知机会受到前面感知机输出的影响,如果前面的感知机使用了阶跃函数 (Step)符号函数 (Sign), 则后面的感知机只能接收到0,1,-1的输入,极大的影响网络的性能!!!(这样毫无意义)

因此人工神经网络(多层感知机)绝不使用阶跃函数或符号函数作为隐藏层或输出层的激活函数!

补充:

MLP 的输出层激活函数:

  • 回归任务 (预测连续值): 线性激活函数 (f(z) = z)ReLU (如果输出需非负)。
  • 二分类任务: Sigmoid 函数 (输出一个 [0, 1] 的值,解释为属于正类的概率)。
  • 多分类任务: Softmax 函数 (输出一个概率分布,所有可能类别的概率和为 1)。
  • Tanh (Hyperbolic Tangent)

关于隐藏层的激活函数和输出层激活函数的选择方法(问deepseek):

问题:

image.png

回答:

图1:
image.png

图2:

image.png

损失函数

损失函数:用来衡量输入与输出之间的误差。(常见的有最小二乘法,交叉熵损失)

梯度下降算法(优化器)

优化器(梯度下降算法):用来调整神经网络中 wwbb 参数,使得最终的神经网络图像最佳地拟合现实情况。(常见的即为adam优化器)

优化器中涉及到一个常见的参数,即学习率 ε\varepsilon

学习率的作用是:控制 wwbb 参数的调整速率。学习率 ε\varepsilon 越大,wwbb 每一次变化幅度就越大;学习率 ε\varepsilon 越小,wwbb每一次变化幅度就越小。

然而 ε\varepsilon 不应当过大或者过小。过大会导致 wwbb 一直大幅度变化,从而无法达到最佳的中间值;过大会导致 wwbb 变化太慢,训练速度实际长。

损失函数和梯度下降算法(优化器)的关系是什么?

关系:损失函数确定之后,再确定梯度算法

我们就可以分别求出 wwbb调整函数,该函数的输入是x(输入值),y(经过神经网络后的输出值),y‘(实际值)

如下举例:

假设损失函数最小二乘法梯度下降算法θεg\theta-\varepsilon g

对于梯度下降算法:

  1. 其中 θ\theta 为要调整的参数(即wwbb

  2. ε\varepsilon为学习率

  3. g为 θ\theta (即 wwbb)的梯度。

    1. 因为输出的x一般都是向量/矩阵/张量形式,所以出来的y一般是向量形式,从而计算 的 θ\theta 梯度也是向量形式,所以 g 一般取所有梯度的平均值。

由上,可以得出wwbb调整函数

image.png

梯度我们是可以计算的,计算如下:

image.png

在这个例子中,

  1. ww 梯度表达式的自变量有:y , y_gt(真实值),x
  2. bb 梯度表达式的自变量有:y , y_gt(真实值)

得出 wwbb 的梯度之后,我们带入到之前的调整函数,即带入到:

image.png

由此,我们就可以完整得出 wwbb调整函数另一表现形式:

  1. ww <- wε(yygt)xw-\varepsilon(y-y_{gt})x
  2. bb <- bε(yygt)b-\varepsilon(y-y_{gt})

至此,我们只需要代入 $ y, y_{gt}, x$ 即可更新 wwbb 的这两个参数的值了。

总结这个例子:

  1. 损失函数:

    1. 一用来表示输出值与实际值的误差(即损失值,编程上用loss表示)
    2. 二是提供了我们需要的参数 θ\theta梯度表达式,不同的损失函数,所提供的梯度表达式不同(所以要合理的选择损失函数)。(这个提供的梯度表达式就是精华)
  2. 梯度下降算法:通过代入损失函数提供梯度表达式梯度下降算法中,得出参数 θ\theta调整函数(这个调整函数就是精华) **。**​$ $

反向传播算法

反向传播算法:一种用于加速计算梯度的算法。(固定的算法)

常见的一些神经网络现象

  1. 梯度消失现象:某一层或几层神经网络的参数不再更新

  2. 梯度爆炸现象:线性单元输出过大,或是网络是循环结构,就会导致梯度累计超出计算机的数值上限。

  3. 神经元坏死(出现于Relu激活函数):当一个神经元永远输出 0(即对所有输入样本都满足 z = w·x + b ≤ 0),且梯度永远为 0,导致其权重无法更新时,该神经元就“死亡”(Dead Neuron)

    1. 神经元坏死的数学原理:

      1. 假设某神经元权重为 w,偏置为 b
      2. 若初始化后 wb 使得对所有输入 x 都有 z = w·x + b ≤ 0,则:
       * 正向输出恒为 `0` → 对网络无贡献
       * 反向梯度恒为 `0` → 权重更新公式 `w = w - η * 0 = w`(权重永远不变)
      
      1. 结果:神经元永久失效,如同从网络中被移除。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。