gpt4 book ai didi

artificial-intelligence - 多输出神经网络

转载 作者:行者123 更新时间:2023-11-30 08:22:59 24 4
gpt4 key购买 nike

我已经用 python 构建了我的第一个神经网络,并且我一直在研究一些数据集;到目前为止进展顺利!

我有一个关于对具有多种结果的事件进行建模的简单问题:-

假设我希望训练一个网络来告诉我每个运行者赢得 100m 冲刺的概率。我会给网络提供每个运行者的所有相关数据,输出的数量将等于比赛中运行者的数量。

我的问题是,使用 sigmoid 函数,如何确保输出之和等于 1.0 ?网络会自然地学会这样做,还是我必须以某种方式明确地实现这一点?如果是这样,我将如何去做?

非常感谢。

最佳答案

神经网络的输出将接近 1。我认为它实际上不会达到 1。

您实际上不需要查看哪个输出等于 1。一旦您将网络训练到特定的错误级别,当您呈现输入时,只需稍后在输出中查找最大输出即可。例如,假设您的输出层显示以下输出:[0.0001, 0.00023, 0.0041, 0.99999412, 0.0012, 0.0002],那么赢得比赛的运行者就是 4 号运行者。

所以,是的,你的网络将“学习”产生 1,但它不会完全是 1。这就是为什么你要在一定的错误率范围内进行训练。我最近创建了一个神经网络来识别手写数字,这就是我使用的方法。在我的输出层中,我有一个包含 10 个分量的向量。第一个分量代表 0,最后一个分量代表 9。因此,当我向网络提供 4 时,我希望输出向量看起来像 [0, 0, 0, 0, 1, 0, 0, 0 , 0, 0]。当然,这并不是我确切得到的,而是我训练网络提供的。因此,要找到它是哪个数字,我只需检查哪个组件具有最高的输出或分数。

现在,在你的第二个问题中,我相信你是在问网络如何学习提供正确的答案?为此,您需要为网络提供一些训练数据并对其进行训练,直到输出低于某个错误阈值。因此,您需要的是一组包含输入和正确输出的数据。最初,您的神经网络将使用随机权重进行设置(有一些算法可以帮助您选择更好权重以最大程度地减少训练时间,但这有点更高级)。接下来,您需要一种方法来告诉神经网络从提供的数据中学习。所以基本上你将数据提供给神经网络,它会提供一个输出,这很可能是错误的。然后,您将该数据与预期(正确)输出进行比较,并告诉神经网络更新其权重,以便它更接近正确答案。您一遍又一遍地执行此操作,直到错误低于某个阈值。

最简单的方法是实现随机反向传播算法。在此算法中,您计算​​神经网络的实际输出与预期输出之间的误差。然后,将误差从输出层一直反向传播到隐藏层的权重,并随时调整权重。然后重复此过程,直到计算的误差低于某个阈值。因此,在每一步中,您都会越来越接近您的解决方案。

您可以使用here描述的算法。其中涉及大量数学知识,因此请做好准备!如果您想查看该算法的实现示例,可以查看我在 github 上的 Java 代码。 。该代码还使用动量和简单形式的模拟退火,但标准反向传播算法应该很容易辨别。维基百科文章 backpropagation有一个link反向传播算法在 Python 中的实现。

你可能不会立即理解该算法;期望花一些时间来理解它并完成一些数学运算。我坐下来拿着铅笔和纸编码,这就是我最终明白发生了什么的方式。

这里有一些资源可以帮助您更好地理解反向传播:

如果你想要更多资源,也可以看看我的回答here .

关于artificial-intelligence - 多输出神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8439194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com