• 沒有找到結果。

第三章 研究方法

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

斂到最佳解,它只會在ℓ(𝜃)附近震盪而已,但實務上這個微小的誤差其實是可以 接受的,因為它已經足夠接近最佳解了,正因為如此,在訓練集的資料龐大的時 候,隨機梯度下降演算法會是比較好的選擇。

相關文件