神经网络(NN)复杂度
博主微信公众号(左)、Python+智能大数据+AI学习交流群(右):欢迎关注和加群,大家一起学习交流,共同进步!
一、NN复杂度:
多用 NN层数 和 NN参数 的个数表示。
二、空间复杂度
空间复杂度用神经网络层数和神经网络中待优化参数的个数表示。
我们计算神经网络层数时,只统计具有运算能力的层。输入层仅把数据传输过来,没有运算,所以在统计神经网络层数时,不算输入层。
输入层和输出层之间的所有层,都叫作隐藏层。
1、层数 = 隐藏层的层数 + 1个输出层
神经网络的层数,是 n 个隐藏层的层数加上 1 个输出层。
比如,左侧这张图输入层有三个节点,隐藏层是有一层,有四个节点,输出层由两个节点。共有两次神经网络,为 2 层 NN。
2、总参数 = 总w + 总b
参数的个数是所有 w 和 b 的总数。
第一层参数是3行4列个w,加上4个偏置b(每个神经元有一个偏置项b,这里有4个神经元,所以有4个b)。
第二层参数是4行2列个w,加上2个偏置b。
三、时间复杂度
1、乘加运算次数
时间复杂度可以用神经网络中乘加运算的次数表示。
我们给出的这个神经网络,每个具有计算能力的神经元小球,都要收集前一层的每一个输入特征,乘以各自线上的权重w,再加上这个神经元的偏置项b。
有几条权重线,就有几次乘加运算。
第一层有3行4列条权重线,也就是12次乘加运算;第二层有4行2列条权重线,也就是8次乘加运算;这个网络一共有20次乘加运算。