神經網絡(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

 

 

 

 

 

 

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