機器學習 梯度下降法(除錯 其它思考)

2022-03-22 01:17:12 字數 1982 閱讀 3261

1)疑問 / 難點

2)梯度下降法的除錯思路

如果機器學習的演算法涉及到求解梯度,先使除錯方式求出梯度,提前得到此機器學習演算法的正確結果;

數學推導方式(根據演算法模型推導出的求解梯度的公式)求出梯度的數學解,將數學解帶入機器學習演算法中,得出結果;

對比兩種最終得到的結果是否一致,如果一樣,則此數學推導公式可用,如果不一樣,則此數學推導公式待改進;

3)公式的確定

θ:損失函式的變數(theta)

θ1

+  =  θ + ε:表示 θ 右側的點的變數;

θ1

-  =  θ - ε:表示 θ 左側的點的變數;

θ1

+  -  θ  ==  θ  -  θ1

-  ==  ε

4)**實現

true_theta:有 11 個元素,因為包含截距;

true_theta = np.arange(1, 12, dtype=float):是乙個一位陣列,並沒有轉置為向量;

x_b.dot(true_theta) + np.random.normal(size = 1000):此時用 矩陣 . dot(一維陣列) + 一維陣列;

res:當前 theta 對應的梯度;

theta_1 = theta.copy():將 theta 向量複製給 theta_1;#  此處的 copy() 是序列的方法;

特點由於該求解過程與函式 j() 的內部實現無關,該過程適用於所有函式的梯度求解;

dj:代表求梯度的函式,這裡作為引數,可以傳入不同方法求解梯度;

initial_theta:theta 的初始化值,為乙個向量,一般設定為全 0 向量;

除錯公式求梯度,最終可以得到結果,但執行速度較慢;

通過(dj_debug 函式)計算過程可以看出,這種除錯方法對梯度的計算,適用於一切目標函式;

1)梯度下降法型別類

每一次都對所有樣本進行計算,求出梯度

缺點:運算速度較慢;

優點:穩定,按此梯度方向,損失函式一定減小最快;

每一次只對隨機抽取的乙個樣本,求出其梯度,作為 theta 的優化方向;

優點:運算速度較快;

缺點:不穩定,每一次的優化方向是不確定的,甚至有可能像反方向優化;

綜合了批量梯度下降法和隨機梯度下降法的優點,避免了它們的確定;

思路:每次計算優化的方向(梯度),即不是檢視所有樣本也不只看乙個樣本,而是每次抽取 k 個樣本,把這 k 個樣本的梯度作為優化方向;

優點(一):比批量梯度下降法運算量小,速度快;

優點(二):比隨機梯度下降法更穩定,獲取的優化方向更能偏向批量梯度下降法中的梯度方向;

缺點:增加了乙個新的超引數 k ,每一批該去多少個樣本?

k 個樣本的梯度求解:和批量梯度下降法的求解過程一樣;

2)隨機的優點

跳出區域性最優解:更能找到損失函式的整體最優解,而不像批量梯度下降法那樣,每次選取初始值後,可能只優化得到乙個區域性最小值,而不是損失函式整體的最小值;

更快的執行速度

機器學習領域很多演算法都要使用隨機的特點:隨機森林、隨機搜尋

3)梯度下降法理解回顧

不是乙個機器學習演算法

是一種基於搜尋的最優化方法

作用:最小化乙個損失函式

作用:最大化乙個效用函式

每次引數 theta 加上變化量;

機器學習之梯度下降法 梯度下降法分析

梯度下降法的基本思想是函式沿著其梯度方向增加最快,反之,沿著其梯度反方向減小最快。在前面的線性回歸和邏輯回歸中,都採用了梯度下降法來求解。梯度下降的迭代公式為 j j j j 在回歸演算法的實驗中,梯度下降的步長 為0.01,當時也指出了該步長是通過多次時間找到的,且換一組資料後,演算法可能不收斂。...

機器學習 梯度下降法

梯度下降法,一般用來求解線性回歸方程,我的理解是根據一組形如 特徵1,特徵2.結果 的資料來找到這些對應的特徵和結果之間的聯絡 例如,我們利用一組 銷量的資料判斷乙個物品的銷量和 之間的關係 我們要求的線性回歸方程可以表示為 銷量 引數 實質上其實就是找到對應的 引數 而當影響乙個結果的特徵不只有乙...

機器學習 梯度下降法

1 梯度下降法的邏輯思路 的取值影響獲得最優解的速度 取值不合適,甚至得不到最優解 是梯度下降法的乙個超引數 一般需要調參找到最適合的 太小,減慢收斂學習速度 太大,導致不收斂 2 梯度下降法的問題 3 其它1 具體實現 模擬損失函式 y x 2.5 2 1 資料集特徵值 plot x np.lin...