第三章 研究方法
3.2 隨機梯度下降法
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
17
3.2 隨機梯度下降法
如何最佳化正規化最小平方的式子,如式子(3.4)的函數?通常使用的演算 法有兩種,一為隨機梯度下降法(Stochastic Gradient Descent,SGD),二為交 替最小平方法(Alternating Least Square,ALS)。
這兩種方法中,交替最小平方法演算法能夠比較精確地找出 P、Q 矩陣使預 測誤差縮小,但缺點是運算速度較慢,而隨機梯度下降法能夠節省較多的時間,
且若在合理誤差內,所得到的預測結果都算是令人滿意地。本研究採用隨機梯度 下降法進行矩陣分解以得到評分預測結果,若讀者對交替最小平方法演算法有興 趣,可參考張良卉(2013)
。
隨機梯度下降法是一種最佳化目標函數的演算法,通常使用於大規模的機器 學習(Large Scale Machine Learning),接下來將介紹隨機梯度下降法的基本概 念與實例說明。
3.2.1 基礎概念
首先,我們先考慮簡單的監督式學習方法(Supervised Learning),𝒳空間 映射到𝒴空間,利用𝑥來預測𝑦,即𝑦̂為預測值。定義一個損失函數ℓ(𝑦̂, y)來計算 預測值和真實值的成本,𝑓
𝑤
(𝑥)為一由 w 參數所組成的函數,我們要找到函數f並 使損失函數Q(𝑥, y, w) = ℓ(𝑓𝑤
(𝑥), y)的期望損失達到最小,即E(𝑓) = ∫ ℓ(𝑓(𝑥), 𝑦)𝑑𝑃(𝑥, 𝑦) 𝐸
𝑛
(𝑓) =𝑛 1
∑𝑛 𝑖=1
ℓ(𝑓(𝑥𝑖
), 𝑦𝑖
) 其中𝑑𝑃(𝑥, 𝑦)為(𝑥, 𝑦)的未知分配。以下將分別介紹梯度下降法(Gradient Descent)和隨機梯度下降法 (Stochastic Gradient Descent)。
‧
梯度下降法(Gradient Descent):
利用梯度下降法將𝐸
𝑛
(𝑓𝑤
)中的 w 參數找出,參數 w 在每一步迭代中更新,此隨機梯度下降法(Stochastic Gradient Descent):
在隨機梯度下降法中,演算法一次只使用一組(𝑥
𝑡
, 𝑦𝑡
)來計算,並且每一步的‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
19
{(𝑥
(𝑖)
, 𝑦(𝑖)
):i=1,...,m}:所有的 Training Examples 合起來稱為訓練集 (Training Set),即指整個用來學習的資料庫。 X:代表輸入資料的空間(Space)。
Y:代表輸出資料的空間,在這個例子中,X 與 Y 都是實數。
在這裡我們就是要找到一個從 X 映射到 Y 的函數 h(x),而這個函數可以 靠著 x 來預測 y,傳統上這個 h 就稱為一個假設(Hypothesis)。如下示意圖:
此時,先決定 h(x)函數應該要表示成甚麼樣子,我們以簡單的線性函數來 逼近 y,如下:
𝑦̂ =
𝜃
(𝑥) = 𝜃0
+ 𝜃1
𝑥1
+ 𝜃2
𝑥2
= ∑ 𝜃
𝑝
𝑥𝑝
= 𝜃𝑇
𝑋2
𝑝=0
= ,𝜃
0
𝜃1
𝜃2
- [1 𝑥1
𝑥2
]𝑥
𝑝
為第 p 個變數,此處𝑥0
為 1。𝜃𝑝
為第 p 個參數(Parameters),或稱為權重 (Weights),由這些參數決定 h 函數如何把𝒳空間映射到𝒴空間,其中等號右邊 的θ與 X 皆為向量。建立好
𝜃
(𝑥)後,給定一組訓練集(Training Set),我們盡可能讓𝜃
(𝑥)非常 靠近 y,所以對於每一個θ的值,我們定義損失函數如下:‧
因此,經過簡化後的遞迴式子,可以得到每一個 training example 的遞迴公式 為:
𝜃
𝑝 ←
𝜃𝑝
+ 𝛼(𝑦(𝑖)
− 𝜃
(𝑥(𝑖)
))𝑥𝑝 (𝑖)
每次更新的距離會正比於誤差項𝜀 = 𝑦
(𝑖)
− 𝜃
(𝑥(𝑖)
),當𝜃
(𝑥(𝑖)
)很接近𝑦(𝑖)
時,也 就是𝜃很接近最佳解的時候,更新的距離會愈來愈短,到最後則不需更新了。‧
以上我們已經推導出單一 Training Example 的狀況,接下來要把它推廣到 全部訓練集的情況時,把加總符號放入,如下:
所以又稱為 Batch Gradient Descent 方法。使用此方法時頇注意一點,即梯度 下降演算法因容易受到區域極值的影響,造成找出的解可能是區域的極值,並非
隨機梯度下降演算法在迭代的過程中,一次只使用單一個 Training Example 來計算誤差並更新𝜃參數,相較於梯度下降演算法一次使用全部訓練集的方式,
在訓練集樣本數 m 很大時,隨機梯度下降演算法會比較容易進行計算,而且通 常此方法可以比較迅速的靠近最佳解,也就是最小值的地方,但是它永遠不會收
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
22
斂到最佳解,它只會在ℓ(𝜃)附近震盪而已,但實務上這個微小的誤差其實是可以 接受的,因為它已經足夠接近最佳解了,正因為如此,在訓練集的資料龐大的時 候,隨機梯度下降演算法會是比較好的選擇。