神经网络(NN)复杂度

前言

本文中主要介绍神经网络(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

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章