深度學習為什麼go deeper go better?

時間 2021-05-31 06:36:35

1樓:

這個要是從運算的觀點考慮,其實蠻好理解的。

先說乙個前提,神經網路可以看做對一系列未知運算的擬合。每個層網路能擬合的運算複雜度是有限的。

從動態規劃的角度來看,無論什麼問題,都可以看做一步一步的基本運算,那麼越複雜的問題往往複雜度越高。

還是用簡單一點的話來說,割圓術:有乙個圓,想求得周長,假設咱們不知道圓周率,那麼怎麼辦,用正n邊形來近似表示,求正n邊形的周長。n越大,求出來的越正確。

深度學習任務,比如分類什麼的,受限於資料,問題定義等等,是未知的運算,而這種運算甚至難以用數學完美表示。那麼就可以用基本運算擬合(基本的網路結構),自然越多的邊能越好擬合圓,越多的層自然能越好地擬合複雜問題。

那如果問題是正方形這種簡單,我拿一萬個邊擬合,是不是會出問題,不會,如果是一萬個邊,把正方形的周長分成一萬個線段,也是可以的。

即,越多的層,理論上,其表示能力越強,它的上限越高,但下限和一層網路一樣。

2樓:去太平洋游泳

不一定是越深越好,具體看是什麼樣的問題了。比如你擬合平面上一條直線上的點,用一次函式就可以擬合;如果你擬合一條拋物線,需要二次函式,此時一次函式肯定是不夠的。

深度學習也可以看做是對資料進行擬合的過程,如果問題比較複雜,更高階,則需要更深的網路。當然不一定越深越好,因為越深的模型越容易出現梯度消失現象。雖然resnet模型緩解了梯度消失問題,最多大概是150來層,但是也夠用了。

目前深度學習方向,用來用去都是那幾個模型的變種。

對於小規模的問題,自己都可以設計乙個小網路來解決。就比如OCR方向,字元能有多大呢,並不需要像自動駕駛那樣需要超清的解析度。所以自然而然不需要設計很深的模型,一方面不容易訓練,另一方面,需要大量的樣本。

而且,大多數情況下,模型是需要用在服務端或者移動端的。需要對模型進行壓縮。費了半天搭建乙個深度模型,最後還需要進行剪枝壓縮,所以一開始最好衡量一下模型的層數。

3樓:任惠瓊

深度學習是學習樣本資料的內在規律和表示層次。這些學習過程中獲得的資訊對文字,影象和聲音等資料的解釋有很大的幫助。它的最終目標是讓機器能夠像人一樣具有分析學習能力,能夠識別文字、影象和聲音等資料。

深度學習是乙個複雜的機器學習演算法,在語音和影象識別方面取得的效果,遠遠超過先前相關技術。如果不進行深層的研究,只看資料表層,是無法達到深度學習的目的。

為什麼學習深度學習感覺無法入門?

嗯哼 先看書吧,小白入門的時候都有點心累。我隨便講講我作為小白的時候的一些經歷。我最開始看的是機器學習,吳恩達的課程,然後看了三分之一。開始也是雲裡霧裡的,根本搞不懂這位大佬再說些啥。後來自己動手跑了個kaggle,用sklearn做的,才大概有點感覺了。之後看的是沐神寫的 動手學深度學習 應該叫這...

深度學習為什麼會出現validation accuracy大於train accuracy的現象?

例如 Attention is all you need. 標美藝術設計 機器學習是近20多年興起的一門多領域交叉學科,涉及概率論 統計學 逼近論 凸分析 演算法複雜度理論等多門學科。機器學習理 我再補充乙個可能的原因。其他回答裡已經詳細解釋這個現象的主要原因 其他在訓練過程中用到而未在Valida...

深度學習為什麼對顯示卡要求高?

麗台科技 深度學習是乙個計算需求非常強烈的領域,GPU執行的是平行計算,擁有更多的運算單元和浮點計算能力,另外,GPU顯示卡往往擁有更大頻寬的視訊記憶體,在大吞吐量的應用中也會有很好的效能。這就意味著GPU更擅長深度學習,深度學習由多層的神經網路組成,這些神經網路包含很多權重和偏置,也就是許多巨大的...