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...