神經網路最佳化技術
迭代梯度下降技術
梯度下降,也稱為最速下降,是一種迭代最佳化演算法,用於尋找函式的區域性最小值。在最小化函式時,我們關注的是要最小化的成本或誤差(記住旅行商問題)。它廣泛用於深度學習,這在各種情況下都很有用。這裡需要記住的是,我們關注的是區域性最佳化,而不是全域性最佳化。
主要工作原理
我們可以藉助以下步驟來理解梯度下降的主要工作原理:
首先,從一個初始的解猜測開始。
然後,在該點計算函式的梯度。
之後,透過沿梯度的負方向移動解來重複該過程。
透過遵循上述步驟,演算法最終將收斂到梯度為零的位置。
數學概念
假設我們有一個函式f(x),我們試圖找到該函式的最小值。以下是找到f(x)最小值的步驟。
首先,為x賦予某個初始值$x_{0}$
現在計算函式的梯度$\nabla f$,其直覺是梯度將在該x處給出曲線的斜率,並且其方向將指向函式的增加,以找出最小化它的最佳方向。
現在按如下方式更改x:
$$x_{n\:+\:1}\:=\:x_{n}\:-\:\theta \nabla f(x_{n})$$
這裡,θ > 0是訓練率(步長),它迫使演算法採取小步跳躍。
估計步長
實際上,錯誤的步長θ可能無法達到收斂,因此仔細選擇步長非常重要。在選擇步長時必須記住以下幾點
不要選擇太大的步長,否則會產生負面影響,即它會發散而不是收斂。
不要選擇太小的步長,否則它需要很長時間才能收斂。
關於選擇步長的一些選項:
一種選擇是選擇一個固定的步長。
另一種選擇是為每次迭代選擇不同的步長。
模擬退火
模擬退火(SA)的基本概念受到固體退火過程的啟發。在退火過程中,如果我們將金屬加熱到其熔點以上並將其冷卻下來,則結構特性將取決於冷卻速率。我們也可以說SA模擬了金屬退火過程。
在ANN中的使用
SA是一種隨機計算方法,受退火類比的啟發,用於近似給定函式的全域性最佳化。我們可以使用SA來訓練前饋神經網路。
演算法
步驟1 - 生成一個隨機解。
步驟2 - 使用某個成本函式計算其成本。
步驟3 - 生成一個隨機的鄰近解。
步驟4 - 使用相同的成本函式計算新解的成本。
步驟5 - 將新解的成本與舊解的成本進行比較,如下所示:
如果Cost新解 < Cost舊解,則移動到新解。
步驟6 - 測試停止條件,該條件可能是達到最大迭代次數或獲得可接受的解。
Hopfield網路技術
Hopfield神經網路是由John J. Hopfield博士於1982年發明的。它由一個單層組成,該單層包含一個或多個完全連線的迴圈神經元。Hopfield網路通常用於自動關聯和最佳化任務。
閱讀更多:使用Hopfield網路進行最佳化