第14章 一不小心站在了技術發展的最前沿(第1/2 頁)
2014年,人工智慧領域正處於深度學習的快速發展時期,但在訓練深層神經網路時,仍存在一些無法繞過的核心難題,其中“梯度消失”和“梯度爆炸”問題尤其突出。
當馬庫斯和林楓的對話逐漸轉向這些人工智慧瓶頸時,他們自然聊到了這個話題。
對於人工智慧涉及到的梯度消失和梯度爆炸這個問題,對於前世就從事人工智慧方面工作的林楓來說,他自然是不陌生。
梯度消失和梯度爆炸是神經網路訓練中常見的問題。
瞭解梯度消失和梯度爆炸首先要了解神經網路。
簡單說,神經網路是一種模仿人腦工作原理的計算模型。
它由很多“神經元”組成,這些神經元分成多層,資料會從一層傳到另一層,最終得到一個結果。
訓練神經網路的過程就是不斷調整這些神經元之間的“連線強度”,讓網路的輸出越來越接近我們想要的結果。
為了調整神經網路中的這些連線強度,我們需要用到一種叫“梯度”的東西。
簡單來說,梯度就是用來指引我們“往哪裡走”的方向,就像你爬山時要知道往哪邊是上坡、哪邊是下坡。
我們透過“梯度”來知道哪些引數需要調整,從而讓網路的表現變得更好。
那“梯度消失”和“梯度爆炸”又是什麼呢?
假設你在玩一個滑滑梯,當你站在滑梯的最高處,往下滑時,你能很快感受到速度在增加,因為坡度很大。
但是,如果滑到快要到底部的地方,坡度變得很小,你幾乎就感覺不到滑動的速度了。
這裡的“坡度”就像是“梯度”——當坡度變小,滑動的速度也變小。
在神經網路中,類似的事情也會發生。
如果我們給網路很多層,它們之間的梯度會越來越小,傳到前面幾層時,梯度幾乎“消失”了。這就是“梯度消失”問題。
梯度太小,無法有效調整那些神經元的連線強度,網路的訓練就會變得非常困難。
想象你在爬一個大山,山的坡度越來越平,最終你幾乎感受不到自己在上升了,這時你很難再判斷該怎麼繼續往上爬。
在神經網路裡,梯度消失的問題就是這種感覺,網路不知道該如何繼續改進。
而梯度爆炸又是另外的一個極端。
假設這次你站在一座非常陡的懸崖邊,一不小心就滾下去了!
因為坡度太陡了,你的速度變得非常快,失控了。
在神經網路中,這種情況也被稱為“梯度爆炸”
當梯度太大時,引數的調整會變得過於劇烈,網路的學習變得不穩定,甚至會導致訓練失敗。
這就像你在陡峭的懸崖邊滑落,一下子失去了控制。
網路的引數變化過大,導致結果變得很不穩定,甚至完全錯誤。
概括地說:
梯度消失就像在一座越來越平的山坡上,梯度變得很小,神經網路不知道該怎麼調整,進而學習變得很慢,甚至無法進步。
梯度爆炸就像從懸崖邊滾下去,梯度變得很大,網路的學習變得過於劇烈,結果會非常不穩定,訓練過程變得不可控。
這兩個問題經常會出現在深層神經網路中。
而這也是馬庫斯所要傾訴的困擾。
“說起來,最近的研究還卡在了‘梯度消失’的問題上。”馬庫斯苦笑著說道,靠在沙發上,“我們在訓練一些更深層次的神經網路時,發現模型一旦超過一定的深度,反向傳播演算法中的梯度會逐漸趨近於零,根本無法有效更新權重。深度越大,梯度就越容易消失,整個網路的學習效率大幅下降。”
馬庫斯知道林楓碩士