前言
本文中主要介绍神经网络(NN)中的复杂度,分别介绍时间复杂度、空间复杂度。过程会有概念介绍、分析、和如何计算等。
神经网络的复杂度,包括时间复杂度 和 空间复杂度。
空间复杂度
简介
空间复杂度,包括两部分:总参数量 + 各层输出特征图。
总参数量:模型所有带参数的层的 权重参数+偏置 的总量;(总参数)
特征图:模型在实时运行过程中每层所计算出的输出特征图大小(层数)
分析与计算
下面是一张神经网络的结构;其中输入层有3个特征,即有3个神经元组成;输出层是进行2分类(是或不是,买或不买),即有2个神经元。有2层的隐藏层,第一层隐藏层有5个神经元,第二层隐藏层有4个神经元。
通常把输入层和输出层之间的统称为隐藏层;
层数:我们统计神经网络层数时,只考虑有计算能力的层,即隐藏层+输出层;因为输入层只是把特征数据进行输入,并没有做运算。所以上图中有3层神经网络(NN)。
总参数:总权重 W + 总偏置 b
类别 | 第一层(隐藏层1) | 第二层(隐藏层2) | 第三层(输出层) | 合计 |
权重 w | 3 x 5 | 5 x 4 | 4 x 2 | 43 |
偏置 b | 5 | 4 | 2 | 11 |
总参数 | 3 x 5 + 5 | 5 x 4 + 4 | 4 x 2 + 2 | 54 |
分析:1)通常每个神经元对应一个偏置 b;例如:在第一层(隐藏层1)中,有5个神经元,对应有5个偏置 b。
2)权重 w 我们可以数前后两层的线条,比如在输入层和隐藏层1之间,共有3 x 5 = 15 条线;这种线条可以叫权重线。
即:在隐藏层1的第一个神经元对应3个权重 w,第二个神经元也对应3个权重 w,............,第五个神经元也对应3个权重 w,合计15个权重 w。
3)神经网络层中 每个神经元都有计算能力,会把前面神经元的输入乘上权重 w,再加上偏置 b;得到结果进行当前输出。
时间复杂度
简介
模型的运算次数,可用浮点运算次数或者乘加运算次数衡量;是浮点运算次数(FLoating-point OPerations)。
分析与计算
下面是一张神经网络的结构;其中输入层有3个特征,即有3个神经元组成;输出层是进行2分类(是或不是,买或不买),即有2个神经元。有2层的隐藏层,第一层隐藏层有5个神经元,第二层隐藏层有4个神经元。
这里的时间复杂度:乘加运算次数 表示:
类别 | 第一层(隐藏层1) | 第二层(隐藏层2) | 第三层(输出层) | 合计 |
计算次数 | 3 x 5 | 5 x 4 | 4 x 2 | 43 |
本博客参考:北京大学 课程“人工智能实践:Tensorflow笔记”;
本文是带大家入门,如果想深入分析可以参考:https://zhuanlan.zhihu.com/p/31575074