gpt4 book ai didi

neural-network - 神经网络和大O

转载 作者:行者123 更新时间:2023-12-04 04:29:12 25 4
gpt4 key购买 nike

我必须完成以下作业。我失去了这个问题的所有分数,因为我什至不知道从哪里开始。坦率地说,我们没有被教过这些。我没有收到关于这个作业的反馈,但我真的很想学习如何解决这些问题。有人可以让我知道从哪里开始吗?我非常沮丧,因为我没有得到教授的帮助。我想做的就是学习一些东西。我已经用谷歌搜索了这个问题,并没有找到任何有帮助的东西。

假设我有一个由 m 个数据点组成的训练集,具有 n 个特征。进一步假设我使用具有 h 个隐藏节点的神经网络来学习这些数据,并且在反向传播终止之前需要 e 个 epoch。用大 O 符号回答以下每个问题。 (例如 O(m^2n^5/h)。

一种。假设数据集中的每个特征对应一个输入节点,存储这个神经网络需要多少内存?
湾训练这样一个神经网络分类器需要多少时间?
C。训练完成后需要多少时间来确定测试点的类别?

最佳答案

让我提供一些基本的指导,以便您开始。你应该能够完成作业。

假设我们有一个带有 n 的神经网络输入,隐藏层h神经元和 m输出。我们总共有这么多神经元:

nbNeurons = h + m.

现在,一个神经元占用的内存量为 O(w) ,其中 w是神经元接收的输入数量。原因是神经元每个输入有一个权重加上一些附加信息,例如 bias , learning rate , output , error .由于所有这些都受一个常数的限制,因此一个神经元所需的内存与权重(即输入)的数量成正比。

隐藏层有 h具有 n 的神经元输入每个,所以它需要 h*O(n)内存单位。输出层有 m具有 h 的神经元输入每个,因此 m*O(h) .因此
memory = h*O(n) + m*O(h) = O(h*n) + O(m*h) = O((n+m)*h)

k 喂养神经元输入需要 k乘法加 k+1添加 + 1 sigmoid(或类似)函数的评估。这显然与 k 成正比。因此 O(k) .

喂养我们的网络需要喂养 h带有 n 的隐藏神经元输入每个,因此 h*O(n)加喂 m输出神经元 h每个输入, m*O(h) .所以,
feed time = h*O(n) + m*O(h) = O((n+m)*h)

现在,继续并保持相同的推理来计算使用一个训练数据样本训练网络时传播错误所需的操作数量。您将为网络提供样本,然后调整每个神经元的权重和偏差。最后,将此数量乘以 epoch 数(因为您将多次重复相同的一组操作)。

关于neural-network - 神经网络和大O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53843459/

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