使用反向传播训练神经网络的时间复杂度是多少?


17

假设一个NN包含n隐藏层,m训练实例中,x的功能,和ni在每个层中的节点。使用反向传播训练该NN的时间复杂度是多少?

我对它们如何找到算法的时间复杂度有一个基本的想法,但是这里有4个不同的因素需要考虑,即迭代,层,每层中的节点,训练示例,也许还有更多因素。我在这里找到了答案但还不够清楚。

除了上文所述,还有其他因素会影响NN训练算法的时间复杂度吗?


另请参阅https://qr.ae/TWttzq
nbro

Answers:


11

我还没有看到来自可靠来源的答案,但是我将尝试通过一个简单的示例(以我目前的知识)自己回答这个问题。

通常,请注意,通常使用矩阵来实现使用反向传播训练MLP。

矩阵乘法的时间复杂度

MijMjk的矩阵乘法的时间复杂度就是O(ijk)

注意,这里我们假设最简单的乘法算法:存在一些其他算法,它们的时间复杂度更好。

前馈算法

前馈传播算法如下。

首先,从层去ij,你做

Sj=WjiZi

然后您应用激活功能

Zj=f(Sj)

如果我们有N层(包括输入和输出层),它将运行N1次。

例如,让我们为具有4层的MLP计算前向通过算法的时间复杂度,其中i表示输入层的节点数,j表示第二层的节点数,k表示输入层的节点数。第三层和l输出层中的节点数。

由于共有4层,因此需要3矩阵来表示这些层之间的权重。让我们用WjiWkjWlk表示它们,其中Wji是一个具有j行和i列的矩阵(因此,Wji包含从第i层到第j层的权重)。

假设你有t的训练例子。为了从第i层传播到j,我们首先

Sjt=WjiZit

并且此运算(即矩阵乘法)的时间复杂度为O(jit)。然后我们应用激活功能

Zjt=f(Sjt)

并且这具有O(jt)时间复杂度,因为它是元素操作。

因此,总的来说,

O(jit+jt)=O(jt(t+1))=O(jit)

使用相同的逻辑,对于jk,我们有O(kjt),对于kl,我们有O(lkt)

总的来说,前馈传播的时间复杂度为

O(jit+kjt+lkt)=O(t(ij+jk+kl))

我不确定是否可以进一步简化。也许只是O(tijkl),但我不确定。

反向传播算法

反向传播算法进行如下。从输出层lk,我们计算误差信号Elt,该矩阵包含层l节点的误差信号l

Elt=f(Slt)(ZltOlt)

其中表示逐元素乘法。注意,Elt具有l行和t列:这仅表示每一列都是训练示例t的错误信号。

然后我们计算“Δ权重”,DlkRl×k(层之间l和层k

Dlk=EltZtk

其中ZtkZkt的转置。

然后,我们调整权重

Wlk=WlkDlk

对于lk,我们的时间复杂度为O(lt+lt+ltk+lk)=O(ltk)

现在,从kj。我们首先有

Ekt=f(Skt)(WklElt)

然后

Dkj=EktZtj

接着

Wkj=WkjDkj

where Wkl is the transpose of Wlk. For kj, we have the time complexity O(kt+klt+ktj+kj)=O(kt(l+j)).

And finally, for ji, we have O(jt(k+i)). In total, we have

O(ltk+tk(l+j)+tj(k+i))=O(t(lk+kj+ji))

which is same as feedforward pass algorithm. Since they are same, the total time complexity for one epoch will be

O(t(ij+jk+kl)).

This time complexity is then multiplied by number of iterations (epochs). So, we have

O(nt(ij+jk+kl)),
where n is number of iterations.

Notes

Note that these matrix operations can greatly be paralelized by GPUs.

Conclusion

We tried to find the time complexity for training a neural network that has 4 layers with respectively i, j, k and l nodes, with t training examples and n epochs. The result was O(nt(ij+jk+kl)).

We assumed the simplest form of matrix multiplication that has cubic time complexity. We used batch gradient descent algorithm. The results for stochastic and mini-batch gradient descent should be same. (Let me know if you think the otherwise: note that batch gradient descent is the general form, with little modification, it becomes stochastic or mini-batch)

Also, if you use momentum optimization, you will have same time complexity, because the extra matrix operations required are all element-wise operations, hence they will not affect the time complexity of the algorithm.

I'm not sure what the results would be using other optimizers such as RMSprop.

Sources

The following article http://briandolhansky.com/blog/2014/10/30/artificial-neural-networks-matrix-form-part-5 describes an implementation using matrices. Although this implementation is using "row major", the time complexity is not affected by this.

If you're not familiar with back-propagation, check this article:

http://briandolhansky.com/blog/2013/9/27/artificial-neural-networks-backpropagation-part-4


Your answer is great..I could not find any ambiguity till now, but you forgot the no. of iterations part, just add it...and if no one answers in 5 days i'll surely accept your answer
DuttaA

@DuttaA I tried to put every thing I knew. it may not be 100% correct so feel free to leave this unaccepted :) I'm also waiting for other answers to see what other points I missed.
M.kazem Akhgary

4

For the evaluation of a single pattern, you need to process all weights and all neurons. Given that every neuron has at least one weight, we can ignore them, and have O(w) where w is the number of weights, i.e., nni, assuming full connectivity between your layers.

The back-propagation has the same complexity as the forward evaluation (just look at the formula).

So, the complexity for learning m examples, where each gets repeated e times, is O(wme).

The bad news is that there's no formula telling you what number of epochs e you need.


From the above answer don't you think itdepends on more factors?
DuttaA

1
@DuttaA No. There's a constant amount of work per weight, which gets repeated e times for each of m examples. I didn't bother to compute the number of weights, I guess, that's the difference.
maaartinus

1
I think the answers are same. in my answer I can assume number of weights w = ij + jk + kl. basically sum of n * n_i between layers as you noted.
M.kazem Akhgary

1

A potential disadvantage of gradient-based methods is that they head for the nearest minimum, which is usually not the global minimum.

This means that the only difference between these search methods is the speed with which solutions are obtained, and not the nature of those solutions.

An important consideration is time complexity, which is the rate at which the time required to find a solution increases with the number of parameters (weights). In short, the time complexities of a range of different gradient-based methods (including second-order methods) seem to be similar.

Six different error functions exhibit a median run-time order of approximately O(N to the power 4) on the N-2-N encoder in this paper:

Lister, R and Stone J "An Empirical Study of the Time Complexity of Various Error Functions with Conjugate Gradient Back Propagation" , IEEE International Conference on Artificial Neural Networks (ICNN95), Perth, Australia, Nov 27-Dec 1, 1995.

Summarised from my book: Artificial Intelligence Engines: A Tutorial Introduction to the Mathematics of Deep Learning.


Hi J. Stone. Thanks for trying to contribute to the site. However, please, note that this is not a place for advertising yourself. Anyway, you can surely provide a link to your own books if they are useful for answering the questions and provided you're not just trying to advertise yourself.
nbro

@nbro If James Stone can provide an insightful answer - and it seems so - then i'm fine with him also mentioning some of his work. Having experts on this network is a solid contribution to the quality and level.
javadba

Dear nbro, That is a fair comment. I dislike adverts too. But it is possible for a book and/or paper to be relevant to a question, as I believe it is in this case. regards, Jim Stone
James V Stone
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.