梯度下降法、座標下降法、牛頓迭代法
1 梯度下降法
2 座標下降法
1.首先給定一個初始點,如 X_0=(x1,x2,…,xn);
2.for x_i=1:n
固定除x_i以外的其他維度
以x_i為自變數,求取使得f取得最小值的x_i;
end
3. 迴圈執行步驟2,直到f的值不再變化或變化很小.
3 牛頓迭代法
牛頓迭代法(Newton’s method)又稱為牛頓-拉夫遜方法(Newton-Raphson method),它是牛頓在17世紀提出的一種在實數域和複數域上近似求解方程的方法。多數方程不存在求根公式,因此求精確根非常困難,甚至不可能,從而尋找方程的近似根就顯得特別重要。
把f(x)在x0點附近展開成泰勒級數 f(x) = f(x0)+(x-x0)f’(x0)+(x-x0)^2*f”(x0)/2! +… 取其線性部分,作為非線性方程f(x) = 0的近似方程,即泰勒展開的前兩項,則有f(x0)+f’(x0)(x-x0)=0 設f’(x0)≠0則其解為x1=x0-f(x0)/f’(x0) 這樣,得到牛頓法的一個迭代序列:x(n+1)=x(n)-f(x(n))/f’(x(n))。
4 最小二乘法與梯度下降法區別
最小二乘是構建目標函式中的一種方法;
梯度下降是求解最優目標函式中的一種方法。
對於變數個數為2-3個的目標函式,可以直接用方程組的方式求解出來,這也就是我們常見的狹義上的最小二乘法。
對於變數個數多個的目標函式,這時,狹義的最小二乘法就難以勝任,而用梯度下降法求解就容易多了。
附錄
梯度下降法matlab示例:
function [k ender]=steepest(f,x,e)
%梯度下降法,f為目標函式(兩變數x1和x2),x為初始點,如[0;0]
syms x1 x2 m; %m為學習率
d=-[diff(f,x1);diff(f,x2)]; %分別求x1和x2的偏導數,即下降的方向
flag=1; %迴圈標誌
k=0; %迭代次數
while(flag)
d_temp=subs(d,x1,x(1)); %將起始點代入,求得當次下降x1梯度值
d_temp=subs(d_temp,x2,x(2)); %將起始點代入,求得當次下降x2梯度值
nor=norm(d_temp); %範數
if(nor>=e) %梯度為0,說明達到極小點
x_temp=x+m*d_temp; %改變初始點x的值
f_temp=subs(f,x1,x_temp(1)); %將改變後的x1和x2代入目標函式
f_temp=subs(f_temp,x2,x_temp(2));
h=diff(f_temp,m); %對m求導,找出最佳學習率
m_temp=solve(h); %求方程,得到當次m
x=x+m_temp*d_temp; %更新起始點x
k=k+1;
else
flag=0;
end
end
ender=double(x); %終點
end
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
呼叫函式:
syms x1 x2;
f=(x1-1)^2+2*(x2-2)^2+x1;
x=[3;0];
e=10^(-20);
[k ender]=steepest(f,x,e)
原文地址:http://blog.csdn.net/zkq_1986/article/details/52317258
相關文章
- 【機器學習之數學】02 梯度下降法、最速下降法、牛頓法、共軛方向法、擬牛頓法機器學習梯度
- 最速下降法、牛頓法和修正(阻尼)牛頓法
- 1. 梯度下降法梯度
- 什麼是梯度下降法?梯度
- 梯度下降法原理及小結梯度
- 機器學習之梯度下降法機器學習梯度
- 梯度下降法中導數的求解梯度
- 機器學習方法(一)——梯度下降法機器學習梯度
- 深入淺出--梯度下降法及其實現梯度
- 機器學習之隨機梯度下降法機器學習隨機梯度
- 隨機梯度下降法的數學基礎隨機梯度
- 梯度下降法原理與模擬分析||系列(1)梯度
- 牛頓迭代法求根
- 使用梯度下降法實現多項式迴歸梯度
- 牛頓法、梯度下降法、最小二乘法的原理以及利用它們解決實際問題的python程式設計梯度Python程式設計
- 在導數為0時極值點仍然難求的情況下用梯度下降法逼近梯度
- 機器學習梯度下降法,最通俗易懂的解釋機器學習梯度
- 求平方根 && 牛頓迭代法
- 梯度下降法實現最簡單線性迴歸問題python實現梯度Python
- AI數學基礎37-從程式碼角度深入理解梯度下降法2AI梯度
- 牛頓迭代法 - 求解非線性方程根的近似解
- 牛頓單點線割迭代法求解非線性方程
- 增補部落格 第二十二篇 python 牛頓迭代法Python
- MathNet Ray3D座標系下轉換3D
- 向量和矩陣的座標變換(下標記法)7矩陣
- Steam標籤學:哪些tag下的遊戲更賣座?遊戲
- ROS TF :使用 TF 設定機器人 釋出座標變換 使用座標變換 將感測器資料轉換為機器人座標系下ROS機器人
- 最優化演算法【牛頓法、擬牛頓法、BFGS演算法】優化演算法
- AUTOCAD——座標標註
- 座標系
- vue 實現高德座標轉GPS座標Vue
- Vue中使用MouseMove事件 獲取滑鼠座標頻率降低或事件卡頓Vue事件
- 流體力學守恆形式Euler方程(笛卡爾座標、柱座標、球座標)
- 機器學習之牛頓法機器學習
- 利用齊次座標進行二維座標轉換
- 海康相機 畫素座標(px,py)到sdk ptz 座標轉換最後到onvif ptz座標
- 物體物件在螢幕中的座標及滑鼠座標物件
- 3d基礎 - 從模型座標到螢幕座標3D模型
- Swift-下標Swift