写点什么

AIGC 背后的技术分析 | 机器学习背后的微分入门

作者:TiAmo
  • 2023-05-27
    江苏
  • 本文字数:1551 字

    阅读完需:约 5 分钟

AIGC背后的技术分析 | 机器学习背后的微分入门

1、机器学习背后的微分入门


为了理解更深层次的原理,让我们再来讨论一下最简单的神经网络——感知器(perceptron)。感知器是由 Frank Rosenblatt 在 1957 年发明的,要想理解它,请参考图 1。



■ 图 1 感知器概念表示

图 1 中有两个圆,一个在左边,另一个在右边,有一条线连接着这两个圆。如果你把它映射到生物学术语上,可以将圆看作神经元(neurons),而这条线将是一个突触(synapse)。这条线有一个叫作权重(weight)的值,它描述了两个神经元之间连线的重要程度。

简言之,神经元是一种特殊的细胞,是人类神经系统中可以携带信号的一个基本单元。突触是两个神经元之间的连接。

左边的神经元称为输入神经元。你不需要计算它的值,而是为它提供一个值,假设我们给了它一个 0.2 的值。右边的神经元称为输出神经元,它的值取决于与它相连的神经元的值。在本例中,只有一个神经元连接到输出神经元,输出神经元的值是输入神经元的值和突触的值的乘积。

换言之,你将每个输入神经元乘以其各自的权重,并将这些乘积相加在一起,就可以得到输出神经元的值。假设权重的值为 0.4,现在让我们根据输入 i 和权重 w 计算输出神经元 o 的值:



就是这样!现在让我们代入值并查看结果:



现在我们得到了一个输出值。但是一个神经网络并没有这么简单,除非你可以训练它提供你想要的输出。在本例中,假设我们希望神经网络做一个简单的任务: 对提供的输入取负。所以,在这个例子中,我们想得到输出-0.2,但我们却得到了 0.08。


下表给出了变量最初的简化视图。



为了获得更好的输出,我们需要改变权重的值,以更接近预期的结果。那么我们该怎么做呢?我们需要用到一些微分的知识。别担心,你不需要知道任何高级的微分知识。


在我们弄清楚新的权重应该是什么之前,我们需要首先看看神经网络距离预期输出有多少偏差,这被称为损失函数或误差函数。在本例中,我们取期望输出和神经网络输出之间的平方差,假设预期输出 z 为



让我们来计算一下损失:



这就是说,神经网络的“不正确性”是 0.0784。但这是如何帮助我们计算新权重的呢?答案是通过计算损失函数的导数,我们有了一个新的函数,它可以告诉我们如何更新权重以更接近期望的输出。你不需要担心该函数是如何工作的,你只需要知道



这就是说,神经网络的“不正确性”是 0.0784。但这是如何帮助我们计算新权重的呢?答案是通过计算损失函数的导数,我们有了一个新的函数,它可以告诉我们如何更新权重以更接近期望的输出。你不需要担心该函数是如何工作的,你只需要知道



是损失函数对权重的导数,我们继续来计算一下。



计算结果如下:



现在我们得到了损失函数的导数值。我们应该如何使用它更新权重呢?

在这里,你需要明白一些事情: 你不能只更新权重,你必须通过一定的量调整权重,这被称为学习率(learning rate)。就像人类一样,如果学习率太高(一个学得太快的人),神经网络根本就不会学到很多内容;如果学习率太低,神经网络则需要太长时间进行学习。所以你需要一个很合适的学习率。在本例中,我们使用 0.1 的学习率:



计算结果如下:

好吧!让我们尝试用神经网络进行预测:



哇,我们比之前更接近期望输出了。我们想要的输出是-0.2,但我们得到的输出是 0.08,我们的输出值 0.08 距离-0.2 为 0.28。然而,在我们通过微分运算进行处理后,我们得到的输出为 0.07776。现在,这个新输出 0.07776 距离-0.2 是 0.27776。

下表给出了一次迭代后系统如何学得比以前更好的简化视图。



从另一个角度来看,让我们再次计算损失:



我们从 0.078 降到了 0.077。现在,如果我们继续重复这个过程,我们应该会得到一个可接受的值。对于更大的数据集,我们可能需要重复成千上万次才能获得较好的结果。

此外,你只是根据一个训练样本计算了一个新的权重值。数据并不是很多,神经网络需要更多的数据进行学习。如果你想用更多的样本进行训练,那么一种方法就是对多个训练样本的损失进行平均。

发布于: 2023-05-27阅读数: 3
用户头像

TiAmo

关注

有能力爱自己,有余力爱别人! 2022-06-16 加入

CSDN全栈领域优质创作者,万粉博主;阿里云专家博主、星级博主、技术博主、阿里云问答官,阿里云MVP;华为云享专家;华为Iot专家;亚马逊人工智能自动驾驶(大众组)吉尼斯世界纪录获得者

评论

发布
暂无评论
AIGC背后的技术分析 | 机器学习背后的微分入门_机器学习_TiAmo_InfoQ写作社区