前言
本文中主要介紹神經網絡(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