【问题标题】:How to compute big O time complexities for Machine Learning and Deep Learning models? Are there also other measures to define complexity of models?如何计算机器学习和深度学习模型的大 O 时间复杂度?是否还有其他措施来定义模型的复杂性?
【发布时间】:2020-03-21 05:09:29
【问题描述】:

我正在尝试衡量 ML 模型实现的复杂性,以此作为将它们与统计方法(例如)进行比较的一种方式。是否可以像在其他算法/程序中那样使用 Big O 复杂性度量?

我有seen 建议根据内存使用情况训练时间 来衡量复杂性。但是,这些不是理论上的测量值,并且可能因机器而异。我使用的一种方法是简单地比较可训练参数的总数。可能需要测量数学运算的总数。但是,在构建具有不同层类型的深度模型时,这可能会很复杂。

您对如何衡量机器学习模型的复杂性有什么建议吗?具体来说,可以考虑,比如卷积神经网络。

【问题讨论】:

    标签: machine-learning deep-learning time-complexity computer-science


    【解决方案1】:

    根据this source,对于前馈神经网络,反向传播的大 O 为 O(n^5),前向传播的大 O 为 O(n^4)"。

    您也可以考虑 this other source 以及这样说: “对 ML 算法进行大 O 分析归结为回答以下问题:

    1. ML 算法是否收敛?如果是,它是确定性地还是概率性地收敛?
    2. 能否将收敛所需的迭代次数显示为 N 的函数?在什么条件下?
    3. 如果我们不能给出迭代次数的明确形式,我们至少可以提供收敛速度吗?”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 2023-01-09
      相关资源
      最近更新 更多