為什麼少有見關於人工智慧演算法的演算法複雜度分析?

時間 2021-05-05 17:47:50

1樓:呂衝

不知道你指的是廣義的人工智慧,還是當前以神經網路為主的狹義的人工智慧。我猜是後者,就從後者的角度簡單回答一下。

不同模型之間的複雜度還是有對比的,比如對比引數數量,對比FLOPs。但是神經網路相對於傳統的演算法,實際的執行時間高度依賴於具體的實現,受很多因素的影響。

比如,在卷積神經網路中,具有相同計算複雜度的普通卷積和組卷積,組卷積的記憶體訪問開銷更大,實際執行速度會比普通卷積慢很多。

再比如,兩種神經網路模組a和b具有相同的計算複雜度,且都有兩個分支,但是a的兩個分支的計算複雜度不平衡,b的兩個分支的計算複雜度相同,那麼a的實際執行速度會被計算複雜度高的分支拖慢。

再比如,計算複雜度相同的兩種模組a和b,很可能在tensorflow上a比b快,在pytorch上b比a快,在某種機器上a比b快,在另外一種機器上b比a快,跟具體的軟硬體實現很大關係。

從這三個例子可以看出,在神經網路中,理論上的計算複雜度並不能完全決定實際執行速度,所以在很多情況下單純對比理論上的計算複雜度沒有意義,實際執行速度才是終極衡量指標。

2樓:Pale Justice

會不會是因為訓練和測試是分開的?訓練沒有實時性要求,訓練多久都可以;只要訓練好了,實際使用的時候代乙個資料入方程的時間就能完成測試。

就是說時間主要花費在訓練部分,而實際使用時考慮的是測試部分的時間;所以時間複雜度也就不重要了?

3樓:Shu Matt

並不少啊。

比如k-means就有複雜度分析,證明了在歐式距離下,它對於維度d和對於分類個數k都是NP-complete問題。

前者見"The hardness of k-means clustering"

後者見"The planar k-means problem is NP-hard"

關於k-means近似演算法的分析的文獻也非常多。

4樓:

如果看單次迭代的複雜度,神經網路前向/後向傳播的複雜度都是和參數量成正比;如果要算 Hessian 矩陣,就是和參數量的平方成正比。如果是神經網路以外的方法,很多演算法也都有複雜度分析的,比如說 HMM 的 viterbi 演算法推斷一次需要多少時間,KMeans 的 Lloyd 迭代一輪需要多少時間等等。總體來說,這種分析都比較簡單,結果很平凡,不像傳統的資料結構與演算法裡那樣需要精巧的分析才能得到乙個界。

如果看訓練直到收斂的複雜度,這就要看用什麼優化演算法,一般文章會證乙個界(在 balabala 條件下以什麼速率收斂),但是這種分析對於指導實踐意義不大,容易假設過強或者是不考慮實際資料的分布。另外傳統資料結構與演算法裡,資料量是潛在無限的,比如說排序你可以隨機生成乙個任意長度的陣列;而人工智慧演算法多為有監督的演算法,標註資料不是可以無限獲取的。如果是為了不同硬體上演算法可比性的問題,可以匯報在某些公認的基準資料集上的迭代輪數、浮點運算次數(FLOPS)以及對應的效能(準確率、BLEU)等指標來比較,這樣也能規避演算法實際執行時間隨著硬體公升級而不可比的問題。

5樓:

在非監督學習領域,演算法有比較演算法複雜度。

例如異常檢測演算法 abod演算法是N3,後來就來了個fast abod ,複雜度降到 n2 +k. 今天下午看了篇abod文章, 詳細比較了演算法複雜度,準確度和召回的指標

6樓:墨雨蕭軒

在傳統演算法中,我們通常根據輸入的規模(e.g.,N)來分析時間複雜度,例如O(N), O(NlogN), O(N^2)。

但是現在人工智慧領域裡提出的很多方法其實是模型的堆砌。總體執行時間已經不能簡單地用輸入規模(e.g.

,樣本數量)來衡量了,還依賴於模型所使用的各種結構。但是各種神經網路的結構之間也沒辦法簡單地根據其參數量來比較執行時間。

當然,從傳統的時間複雜度分析來看,模型的計算開銷其實是常數(因為跟輸入規模無關),所以各種模型的時間複雜度都是O(N)。所以也就沒啥可以分析的了,還不如直接列出實際執行時間(附上執行環境)。

7樓:豬鼻蛇

對於大資料+人工智慧場景,經典的大O複雜度實際意義比較有限一是執行太慢,常數大一倍的代價就很大,只推乙個bound不夠用二是真實資料上往往有很多更強的先驗,使worst case和接近的情況不容易取到,平均情況也不適合uniform distribution

三是具體的應用研究往往都有比較固定的benchmark資料集,可以匯報資料集上的實際執行時間量級作為參考

四是真正做優化演算法的本來也不多啊,做演算法的人本身幾乎不可能不報告關於收斂速度的資訊吧

人工智慧演算法能否通過輸出結果改進準確率?

小軒的164 這個想法還是很有趣的。將未標籤的資料輸入到乙個確定的網路中得到soft target,然後是可以利用soft target來做一些事情。比如Distillation就是設計更簡單的網路結構來回歸這些soft targets,以實現簡單網路模擬複雜深度網路的特性。還有就是上面提到的tan...

人工智慧演算法歧視和偏見是固有的嗎?可以被改進嗎?

汽車大衛王 人工智慧這個翻譯本身就帶來很多誤解。人工智慧當中的人工,artificial,意思是人造。類似於人造甜味劑 artificial sweetener.人工智慧除了機器學習這個分支品類,主要可以認為是由決定樹,和人定規則來的。人工智慧演算法歧視和偏見是固有的嗎?把社會學家,人類學家,哲學家...

考研考網路安全還是現在很火的人工智慧 演算法方向呢?

乙個看不清未來的人 因為你問出這個問題,所以大概率還是對自己沒自信,如果是學霸,請隨便 如果沒有特別的偏好,建議你考網路安全,這個專業是以後的剛需,人工智慧,考個碩士也是高不成低不就,大部分都在調參,學幾個模型進公司也不一定用的上,更不要說現在進公司的要求太高了 還有現在很多在職的程式設計師都在轉型...