国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

最優(yōu)化方法——最小二乘法與梯度下降法

這篇具有很好參考價(jià)值的文章主要介紹了最優(yōu)化方法——最小二乘法與梯度下降法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

系列文章目錄

一、問題

二、實(shí)驗(yàn)思路綜述

1.實(shí)驗(yàn)工具及算法

2.實(shí)驗(yàn)數(shù)據(jù)

3.實(shí)驗(yàn)?zāi)繕?biāo)

4.實(shí)驗(yàn)步驟

三、最小二乘問題引入

1.最小二乘問題樣例

2.最小二乘問題解決方案及數(shù)學(xué)模型化

3.相關(guān)線性代數(shù)知識(shí)導(dǎo)入

3.1 梯度

3.2 矩陣的逆

3.3 QR分解

四、最小二乘法

1.定義

2.數(shù)學(xué)模型化

2.1 目標(biāo)函數(shù)

2.2 最小二乘法的解

2.3 列向量空間的意義

3.目標(biāo)求解推導(dǎo)

4.正規(guī)方程

4.1 通過Gram矩陣求解正規(guī)方程

4.2 通過QR分解求解正規(guī)方程

5.編程實(shí)踐

5.1 QR分解

5.2 求最優(yōu)解??

五、梯度下降法

1.定義

2.目標(biāo)函數(shù)推導(dǎo)

3.操作與算法流程

4.編程實(shí)踐

4.1 迭代次數(shù)

4.2 相鄰迭代解之間的“相對(duì)接近程度”

5.不同情況解的分析及誤差對(duì)比

5.1 不同算法分析

5.2 誤差分析

5.3 效率對(duì)比

6.不同語言與平臺(tái)對(duì)求解的影響

六、理論補(bǔ)充與應(yīng)用拓展

1.最小二乘法

1.1 線性回歸定義與算法步驟

1.2 最小二乘法的應(yīng)用

2.梯度下降法

2.1 BP神經(jīng)網(wǎng)絡(luò)

2.2 梯度下降法的應(yīng)用

七、實(shí)驗(yàn)小結(jié)

1.最小二乘問題求解總結(jié)

2.參考資料


系列文章目錄

本系列博客重點(diǎn)在最優(yōu)化方法的概念原理與代碼實(shí)踐(有問題歡迎在評(píng)論區(qū)討論指出,或直接私信聯(lián)系我)。

代碼可以全抄? ??大家搞懂原理與流程去復(fù)現(xiàn)才是有意義的?。?!

第一章?最優(yōu)化方法——K-means實(shí)現(xiàn)手寫數(shù)字圖像聚類_@李憶如的博客-CSDN博客

第二章?最優(yōu)化方法——QR分解_@李憶如的博客-CSDN博客

第三章 最優(yōu)化方法——最小二乘法?


梗概

? ? 本篇博客主要介紹最小二乘法、梯度下降法的原理與流程,分別使用Matlab、Pycharm分別實(shí)現(xiàn)了最小二乘法、不同迭代停止條件的梯度下降法等方法對(duì)給定優(yōu)化模型進(jìn)行求解并進(jìn)行解之間的誤差分析對(duì)比,并進(jìn)行了一定理論與應(yīng)用(內(nèi)附數(shù)據(jù)集和python及matlab代碼)。


一、問題

讀取附件“MatrixA_b.mat”文件中的矩陣A和向量b。建立關(guān)于矩陣, 向量,未知向量最小二乘優(yōu)化模型

1)通過最小二乘法的正規(guī)方程,求出優(yōu)化模型的準(zhǔn)確解;

2)利用梯度下降法迭代求出模型近似解,通過設(shè)置迭代停止條件,分析近似解與“準(zhǔn)確解”之間的誤差。

二、實(shí)驗(yàn)思路綜述

1.實(shí)驗(yàn)工具及算法

? ? 本次實(shí)驗(yàn)分別使用Matlab、Pycharm分別實(shí)現(xiàn)了最小二乘法、不同迭代停止條件的梯度下降法等方法對(duì)給定優(yōu)化模型進(jìn)行求解并進(jìn)行解之間的誤差分析對(duì)比。

2.實(shí)驗(yàn)數(shù)據(jù)

??? 本次實(shí)驗(yàn)使用給定矩陣A(50x40)與向量b(50x1)組成的優(yōu)化模型進(jìn)行實(shí)驗(yàn)內(nèi)容的探究,在拓展內(nèi)容的探究與嘗試中使用了部分網(wǎng)絡(luò)數(shù)據(jù)集。

3.實(shí)驗(yàn)?zāi)繕?biāo)

? ? 本次實(shí)驗(yàn)要求使用不同方法對(duì)給定優(yōu)化模型(最小二乘問題)進(jìn)行求解并進(jìn)行解的誤差分析及對(duì)比。此外,本人還在相關(guān)理論方面進(jìn)行了補(bǔ)充,對(duì)算法應(yīng)用進(jìn)行了實(shí)踐。

4.實(shí)驗(yàn)步驟

? ? 本次實(shí)驗(yàn)大致流程如表1所示:

表1 實(shí)驗(yàn)3流程

1.實(shí)驗(yàn)思路綜述

2.最小二乘問題的引入

3. 最小二乘法的推導(dǎo)與求解

4. 梯度下降法的推導(dǎo)與求解

5. 不同情況解的分析及誤差對(duì)比

6. 理論拓展與應(yīng)用實(shí)踐

三、最小二乘問題引入

1.最小二乘問題樣例

? ? 在求解最小二乘問題前,我們需要對(duì)其進(jìn)行定義與數(shù)學(xué)模型化,故本部分引入一個(gè)二維樣例如圖1所示,一個(gè)實(shí)際的測(cè)量問題如圖2所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖1 二維最小二乘問題樣例

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖2 實(shí)際最小二乘問題樣例

? ? 分析:對(duì)于圖1的問題,無法找到一條直線同時(shí)經(jīng)過A、B、C三點(diǎn),對(duì)于圖2的問題,我們無法求解出一組滿足條件的x1,x2,x3。

2.最小二乘問題解決方案及數(shù)學(xué)模型化

? ? 最小二乘問題:由于各種誤差,難以求得滿足問題條件的一組解(無法通過現(xiàn)有數(shù)據(jù)擬合出一條過所有數(shù)據(jù)的線或超平面)的問題。

? ? 解決方案:對(duì)于最小二乘法,核心的解決方案就是尋找該問題的近似解。并盡可能逼近原問題的目標(biāo),使殘差向量r=Ax-b在某種度量下盡可能小。最小二乘問題數(shù)學(xué)模型化如圖3所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖3 最小二乘問題模型

3.相關(guān)線性代數(shù)知識(shí)導(dǎo)入

? ? 在后續(xù)需要用不同方法求解最小二乘問題,在此對(duì)核心相關(guān)線性代數(shù)知識(shí)進(jìn)行一定補(bǔ)充。

3.1 梯度

? ? 梯度的本意是一個(gè)向量(矢量),表示某一函數(shù)在該點(diǎn)處的方向?qū)?shù)沿著該方向取得最大值,即函數(shù)在該點(diǎn)處沿著該方向(此梯度的方向)變化最快,變化率最大(為該梯度的模)。

? ? 梯度求解樣例如式1所示:

式1 梯度求解樣例

3.2 矩陣的逆

? ? 當(dāng)一個(gè)矩陣X滿足XA=I時(shí),X被稱為A的左逆,同理可以定義右逆。

? ? 矩陣的逆:如果矩陣A存在左逆和右逆,則左逆和右逆一定相等,此時(shí)X稱為矩陣的逆(矩陣非奇異),記作A^-1。

? ? 逆存在的判斷:對(duì)于一個(gè)矩陣的逆是否存在,有如表2中所示五種常用方法:

表2 逆矩陣存在判斷常用方法

1.若矩陣行列式不為0,可逆

2.若矩陣的秩為n,可逆

3.若存在一個(gè)矩陣B,使AB=BA=I,可逆

4.對(duì)于齊次方程AX=0,若方程只有零解,可逆

5.對(duì)于非齊次線性方程AX=b,若方程只有特解,可逆

? ? 矩陣逆的常用證明框架如圖4所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖4 矩陣逆的證明框架

? ? 補(bǔ)充:性質(zhì)(a)對(duì)任意矩陣A都成立,性質(zhì)(b)對(duì)方陣矩陣A都成立。

? ? 逆矩陣求解:在編程實(shí)現(xiàn)中矩陣求逆一般使用庫函數(shù),在不同語言中均進(jìn)行了打包,如matlab中可使用inv()求逆矩陣,用法詳見:矩陣求逆 - MATLAB inv - MathWorks 中國(guó),pinv()求偽逆,用法詳見:Moore-Penrose 偽逆 - MATLAB pinv - MathWorks 中國(guó)

3.3 QR分解

? ? QR分解是將一個(gè)矩陣A分解成具有標(biāo)準(zhǔn)正交列向量的矩陣Q和上三角矩陣R(對(duì)角線元素不為0)的算法。這個(gè)分解能夠有效的提高計(jì)算機(jī)求解線性方程、最小二乘問題、帶約束的最小二乘問題的效率,有效降低計(jì)算復(fù)雜度,QR分解形式如圖5所示。

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖5 QR分解定義形式

? ? QR分解根據(jù)原理分為Gram-Schmidt、Householder、Givens三種實(shí)現(xiàn)方法,經(jīng)本人實(shí)驗(yàn)2探究發(fā)現(xiàn),對(duì)于較稠密矩陣,使用Householder QR分解有較高的效率與穩(wěn)定性。

四、最小二乘法

? ? 在本部分對(duì)于最小二乘法的定義、數(shù)學(xué)模型化、目標(biāo)求解推導(dǎo)、模型求解做詳解。

1.定義

? ? 最小二乘法是一種數(shù)學(xué)優(yōu)化技術(shù)。它通過最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配。利用最小二乘法可以簡(jiǎn)便地求得未知的數(shù)據(jù),并使得這些求得的數(shù)據(jù)與實(shí)際數(shù)據(jù)之間誤差的平方和為最小。

? ? 最小二乘法還可用于曲線擬合,其他一些優(yōu)化問題也可通過最小化能量或最大化熵用最小二乘法來表達(dá)。在誤差估計(jì)、不確定度、系統(tǒng)辨識(shí)及預(yù)測(cè)、預(yù)報(bào)等數(shù)據(jù)處理諸多學(xué)科領(lǐng)域也得到廣泛應(yīng)用。

2.數(shù)學(xué)模型化

2.1 目標(biāo)函數(shù)

? ? 結(jié)合最小二乘問題模型與最小二乘法定義,將最小二乘法數(shù)學(xué)模型化,故對(duì)于給定的給定A∈R^mxn,b∈R^m,求解x∈R^n讓目標(biāo)函數(shù)最小,目標(biāo)函數(shù)如式2所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

式2 最小二乘法目標(biāo)函數(shù)

2.2 最小二乘法的解

? ? 結(jié)合最小二乘法的原理,對(duì)于式2的目標(biāo)函數(shù)求解,得到的x應(yīng)該滿足式3的條件:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

式3 最小二乘法的解的條件

? ? 分析:當(dāng)殘差r=Ax?b=0時(shí),則x是線性方程組Ax=b的;否則其為誤差最小平方和下方程組的近似解

2.3 列向量空間的意義

? ? 對(duì)于滿足最小二乘法目標(biāo)函數(shù)式2的解x,其列向量空間的意義如圖6所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖6 最小二乘法列向量空間的意義

分析:如圖6所示,Ax∈range(A)中最接近b的向量,r=Ax-b正交(垂直)于值域空間range(A)。

3.目標(biāo)求解推導(dǎo)

? ? 對(duì)于最小二乘法的目標(biāo)函數(shù)式2,我們需要得到滿足式3條件的最優(yōu)解x。由于目標(biāo)函數(shù)f(x)為可微函數(shù),故最優(yōu)解x滿足梯度?f(x)=0,如式4所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

4.正規(guī)方程

? ? 由最小二乘法定義與梯度公式求導(dǎo)可知,我們需要找到目標(biāo)函數(shù)的最優(yōu)解即找梯度?f(x)=0,梯度公式推導(dǎo)后如式8所示,由此定義最小二乘法的正規(guī)方程如式9所示:

式9 最小二乘法正規(guī)方程

? ? 分析:分析式9中的正規(guī)方程,其等價(jià)于?f(x)=0,f(x)=,且最小二乘法問題所有解都滿足正規(guī)方程。如果A的列線性無關(guān),則A^TA為非奇異矩陣,此時(shí)正規(guī)方程(原問題)有唯一解。

? ? 對(duì)于正規(guī)方程的求解一般有三種方法,分別為直接求解正規(guī)方程組求解、通過Gram矩陣求解QR分解求解,后兩種方法實(shí)現(xiàn)流程詳解如下:

4.1 通過Gram矩陣求解正規(guī)方程

? ? 通過Gram矩陣求解正規(guī)方程一般流程如表3所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

? ? Tips:經(jīng)過四舍五入之后,Gram矩陣為奇異矩陣。

4.2 通過QR分解求解正規(guī)方程

? ? 方法②比方法①更穩(wěn)定,因?yàn)樗?strong>避免構(gòu)造Gram矩陣,通過QR分解求解正規(guī)方程一般流程如表4所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

5.編程實(shí)踐

? ? 根據(jù)實(shí)驗(yàn)任務(wù)1)的要求,本部分將編程實(shí)踐通過最小二乘法的正規(guī)方程,求出給定數(shù)據(jù)優(yōu)化模型的準(zhǔn)確解。

5.1 QR分解

? ? 對(duì)實(shí)驗(yàn)給定矩陣A與向量b進(jìn)行導(dǎo)入,并對(duì)A進(jìn)行QR分解(Householder),算法流程如表5所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

? ? 在代碼實(shí)現(xiàn)上,可使用matlab庫函數(shù)[Q,R] = qr(A)使用Householder進(jìn)行QR分解,用法解析可見:QR 分解 - MATLAB qr - MathWorks 中國(guó),也可自己構(gòu)建QR分解函數(shù),分解與穩(wěn)定性分析代碼可見:最優(yōu)化方法——QR分解_@李憶如的博客-CSDN博客

5.2 求最優(yōu)解??

? ? 在得到給定矩陣A分解出的Q、R矩陣(不同QR分解得到不同矩陣,需要轉(zhuǎn)換)后,根據(jù)公式10對(duì)Q、R、b進(jìn)行求最優(yōu)解并編程實(shí)現(xiàn)(逆矩陣可用inv()函數(shù)求),最終得到最優(yōu)解x_least并保存供后續(xù)對(duì)比,代碼如下:

x_least=inv(R)*Q'*b; %精確解

五、梯度下降法

? ? 除了最小二乘法,梯度下降法也常用于最優(yōu)化問題最優(yōu)解的逼近,尤其是對(duì)于R^mxn列向量線性相關(guān)或n非常大的情況,本部分對(duì)于梯度下降法法的定義、數(shù)學(xué)模型化、目標(biāo)求解推導(dǎo)、模型求解做詳解。

1.定義

? ? 梯度下降法是一個(gè)一階最優(yōu)化算法。要使用梯度下降法找到一個(gè)函數(shù)的局部極小值,必須向函數(shù)上當(dāng)前點(diǎn)對(duì)應(yīng)梯度(或者是近似梯度)的反方向的規(guī)定步長(zhǎng)距離點(diǎn)進(jìn)行迭代搜索。即梯度下降法求解目標(biāo)問題最優(yōu)解的過程為:x1,x2,,xk→x,其中xk是第k步迭代,期望更新xk+1,滿足f(xk+1)<f(xk),核心原理如圖12所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖12 梯度下降法核心原理

2.目標(biāo)函數(shù)推導(dǎo)

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

3.操作與算法流程

? ? 對(duì)于優(yōu)化問題,根據(jù)梯度下降法原理與目標(biāo)求解推導(dǎo)總結(jié)其算法流程如表6所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

? ? 其中,迭代停止條件一般有設(shè)置迭代次數(shù)相鄰迭代解之間的“相對(duì)接近程度”兩種。

4.編程實(shí)踐

? ? 根據(jù)實(shí)驗(yàn)任務(wù)2)的要求,本部分將編程實(shí)踐通過梯度下降法求出給定優(yōu)化模型的“近似解”,核心代碼如下:

%%梯度下降法
min=0.01;
x=zeros(40,1);
for k = 1:30 %或指定迭代次數(shù)
f(1,k)=0.5*norm(A*x-b,2)^2; % 目標(biāo)函數(shù)值
p = A'*(A*x-b);
a = norm(p,2)^2 / norm(A*p,2)^2;
y = x - a * p; %y為x(k+1)
temp(1,k) = norm((x-y),2)/norm(x,2); %迭代解間的相對(duì)接近程度
error(1,k) = norm((x_least - x),2); %誤差迭代
% 
%   if norm((x-y),2)/norm(x,2) < min
%       break
%   end
x = y; %迭代
end

4.1 迭代次數(shù)

? ? 本部分以迭代次數(shù)作為迭代停止條件,為探究最優(yōu)迭代次數(shù),應(yīng)觀察分析不同迭代次數(shù)對(duì)于目標(biāo)求解的影響(目標(biāo)函數(shù)值的變化)。本次實(shí)驗(yàn)中,迭代次數(shù)與目標(biāo)函數(shù)值之間的關(guān)系如圖14所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖14 迭代次數(shù)與目標(biāo)函數(shù)值間的關(guān)系

? ? 分析:由圖14可見,迭代次數(shù)在30之后,隨迭代次數(shù)增大,目標(biāo)函數(shù)趨于穩(wěn)定,故在本實(shí)驗(yàn)中,選取迭代次數(shù)為30作為停止條件為較優(yōu)選擇。

4.2 相鄰迭代解之間的“相對(duì)接近程度”

? ? 本部分以相鄰迭代解之間的“相對(duì)接近程度”作為迭代停止條件,本實(shí)驗(yàn)以公式:梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能為例作為評(píng)估標(biāo)準(zhǔn)。為探究最優(yōu)閾值,應(yīng)觀察分析不同閾值對(duì)于目標(biāo)求解的影響(目標(biāo)函數(shù)值的變化)。本次實(shí)驗(yàn)中,迭代次數(shù)與相鄰迭代解之間的“相對(duì)接近程度”之間的關(guān)系如圖15所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖15 迭代次數(shù)與相鄰迭代解之間的“相對(duì)接近程度”之間的關(guān)系

? ? 分析:結(jié)合圖14,由圖15可見,隨迭代次數(shù)增加,相鄰迭代解之間的“相對(duì)接近程度”波動(dòng)下降。經(jīng)統(tǒng)計(jì)分析后,對(duì)本實(shí)驗(yàn),我選擇相鄰迭代解之間的“相對(duì)接近程度”的閾值為0.01,作為梯度下降法的終止條件。

5.不同情況解的分析及誤差對(duì)比

? ? 不同方法、語言求解最小二乘問題得到結(jié)果、效率都有所不同,本部分進(jìn)行對(duì)比分析。

5.1 不同算法分析

? ? 最小二乘法與梯度下降法得到的解及對(duì)應(yīng)效率是不同的,結(jié)合兩種算法的原理與流程分析可做解釋。

? ? 對(duì)于最小二乘法,核心就是求偏導(dǎo),然后使偏導(dǎo)為0,得到理論上的“準(zhǔn)確解”。其最后一步解方程組,計(jì)算量相對(duì)較大。

? ? 而對(duì)于梯度下降法,可以看作是更簡(jiǎn)單的一種求最小二乘法最后一步解方程的方法,本質(zhì)上是在以梯度的方向和步長(zhǎng)向目標(biāo)“準(zhǔn)確解”迭代逼近的算法。誤差存在于梯度下降會(huì)有一個(gè)初始解,這個(gè)解往往與“準(zhǔn)確解”的距離較遠(yuǎn),所以每一次迭代的步長(zhǎng)的方向和長(zhǎng)度都是盡量“減小”誤差,但是得到最后的解還是會(huì)與“準(zhǔn)確解”存在一定的誤差。

? ? 總的來說,最小二乘法可以得到全局最優(yōu)的閉式解,梯度下降法是通過迭代更新來逐步進(jìn)行的參數(shù)優(yōu)化方法,最終結(jié)果為局部最優(yōu)。

5.2 誤差分析

? ? 本部分對(duì)兩種不同迭代停止條件的梯度下降法求出的“近似解”與最小二乘法得到的“準(zhǔn)確解”進(jìn)行對(duì)比,然后用做誤差分析。其中,迭代解與準(zhǔn)確解的誤差如圖16所示,近似解與準(zhǔn)確解之間的誤差如表7所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖16 迭代解與準(zhǔn)確解的誤差關(guān)系

? ? 分析:由圖16可見,初始化x(0)=0,度量誤差的情況下,梯度下降法求得的迭代解與最小二乘法求出的準(zhǔn)確解之間的誤差隨迭代次數(shù)增加而減少,由0次迭代時(shí)誤差為2.0007,到100次迭代時(shí)誤差降為0.752。

表7 本實(shí)驗(yàn)近似解與準(zhǔn)確解之間的誤差

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

? ? 分析:由表7可見,初始化x(0)=0,以度量誤差的情況下,本實(shí)驗(yàn)使用的兩種梯度下降法(迭代次數(shù)=30停止,梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能<0.01停止)得到的近似解與最小二乘法得到的精確解(閉式最優(yōu))的誤差分別為1.337985271.491785332。而兩種梯度下降法得到的目標(biāo)函數(shù)值與最小二乘法得到的函數(shù)值誤差分別為0.0845861550.1191079252

5.3 效率對(duì)比

? ? 為探究不同方法的效率對(duì)比,本部分用上述提到的三種方法分別針對(duì)實(shí)驗(yàn)給定的最小二乘問題求解,每種方法運(yùn)行20次,運(yùn)行時(shí)間數(shù)據(jù)匯總?cè)绫?所示,效率對(duì)比如圖17所示:

表8 不同方法求解最小二乘問題平均運(yùn)行時(shí)間匯總

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖17 不同方法求解最小二乘問題效率對(duì)比

? ? 分析:由表8與圖17可見,無論是哪種梯度下降法,平均運(yùn)行時(shí)間均低于最小二乘法

? ? 結(jié)合正確性與效率分析,最小二乘法雖然能求出相對(duì)準(zhǔn)確的解,但需要更長(zhǎng)的運(yùn)行時(shí)間,故在面對(duì)給定的問題時(shí),應(yīng)該有選擇性的根據(jù)問題的性質(zhì)選擇兩種方法中的一個(gè)。

? ? 具體來說,最小二乘法中需要計(jì)算矩陣的逆,這是相當(dāng)耗費(fèi)時(shí)間的,而且求逆也會(huì)存在數(shù)值不穩(wěn)定的情況,因而這樣的計(jì)算方法在應(yīng)用中有時(shí)不值得提倡。

? ? 相比之下,梯度下降法雖然有一些弊端,迭代的次數(shù)可能也比較高,但是相對(duì)來說計(jì)算量并不大.而且,在最小二乘法這個(gè)問題上,收斂性有保證。故在大數(shù)據(jù)量的時(shí)候,反而是梯度下降法(其實(shí)應(yīng)該是其他一些更好的迭代方法)更加值得被使用。

6.不同語言與平臺(tái)對(duì)求解的影響

? ? 為探究不同語言與平臺(tái)對(duì)最小二乘問題求解的影響,分別將最小二乘法、兩種梯度下降法在Pycharm2021中使用Python重構(gòu),具體代碼詳見附件。

? ? 分別使用maatlab與python實(shí)現(xiàn)的三種方法對(duì)實(shí)驗(yàn)給定矩陣A(50x40)向量b(50x1)進(jìn)行求解,每個(gè)平臺(tái)的各個(gè)方法均進(jìn)行20次求平均運(yùn)行時(shí)間,數(shù)據(jù)匯總?cè)绫?所示,效果對(duì)比如圖18所示:

表8 不同語言、不同方法求解最小二乘問題的平均運(yùn)行時(shí)間

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

18 不同語言、不同方法求解最小二乘問題的效率對(duì)比

? ? 分析:由表8與圖18可見,在不同方法求解最小二乘問題中,matlab的運(yùn)行時(shí)間均略低于Python,效率較高。

六、理論補(bǔ)充與應(yīng)用拓展

? ? 對(duì)于最小二乘法與梯度下降法,除了本實(shí)驗(yàn)中對(duì)于矩陣向量構(gòu)成的優(yōu)化模型求解,在其他方面上也有廣泛的應(yīng)用,在本部分做簡(jiǎn)單嘗試與實(shí)踐。

1.最小二乘法

1.1 線性回歸定義與算法步驟

線性回歸及其詳細(xì)應(yīng)用可見:機(jī)器學(xué)習(xí)——LR(線性回歸)、LRC(線性回歸分類)與人臉識(shí)別

? ? 回歸與線性回歸:回歸分析是指一種預(yù)測(cè)性的建模技術(shù),主要是研究自變量和因變量的關(guān)系。線性回歸為最基礎(chǔ)的一種回歸算法。用線(面)等模型對(duì)于現(xiàn)有相對(duì)線性的數(shù)據(jù)進(jìn)行較小損失的擬合,并使擬合出的模型可較好預(yù)測(cè)數(shù)據(jù),一般算法流程如表9所示:

表9 線性回歸算法流程

輸入: 數(shù)據(jù)集

過程

1、變量的篩選與控制

2、對(duì)正態(tài)性分布的數(shù)據(jù)做散點(diǎn)圖與相關(guān)分析

3、通過最小化損失函數(shù)來確定參數(shù),得到(擬合)回歸方程

4、不斷檢驗(yàn)?zāi)P?,?yōu)化參數(shù),得到最優(yōu)的回歸方程

5、使用回歸方程做預(yù)測(cè)

輸出:回歸方程

1.2 最小二乘法的應(yīng)用

? ? 根據(jù)線性回歸定義與表9所示,在線性回歸問題中,常常使用最小二乘法來擬合數(shù)據(jù),包括但不限于基于正規(guī)方程的解去擬合直線或超平面,預(yù)測(cè)數(shù)據(jù)。在本部分以一個(gè)實(shí)際樣例探究最小二乘法在線性回歸中的應(yīng)用。

? ? 問題描述:探究學(xué)生成績(jī)與學(xué)生學(xué)習(xí)時(shí)間的關(guān)系

? ? 線性回歸實(shí)現(xiàn):將學(xué)習(xí)時(shí)間作為變量,成績(jī)作為預(yù)測(cè)值,建立回歸方程,并用最小二乘法最小化損失函數(shù),得到回歸方程并驗(yàn)證,驗(yàn)證后用其預(yù)測(cè)。核心代碼如下:

%%最小二乘法應(yīng)用
x=[23.80,27.60,31.60,32.40,33.70,34.90,43.20,52.80,63.80,73.40];
y=[41.4,51.8,61.70,67.90,68.70,77.50,95.90,137.40,155.0,175.0];
figure
plot(x,y,'r*') %作散點(diǎn)圖(制定橫縱坐標(biāo))
xlabel('x(學(xué)生學(xué)習(xí)時(shí)間)','fontsize',12)
ylabel('y(學(xué)生成績(jī))','fontsize',12)
set(gca,'linewidth',2)
%采用最小二乘擬合
Lxx=sum((x-mean(x)).^2);
Lxy=sum((x-mean(x)).*(y-mean(y)));
b1=Lxy/Lxx;
b0=mean(y)-b1*mean(x);
y1=b1*x+b0; %線性方程用于預(yù)測(cè)和擬合
hold on
plot(x,y1,'linewidth',2);
m2=LinearModel.fit(x,y); %函數(shù)進(jìn)行線性回歸

數(shù)據(jù)與擬合結(jié)果如圖20所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖20 數(shù)據(jù)與擬合結(jié)果

? ? 分析:由圖20可見,可看出模型對(duì)數(shù)據(jù)擬合較好,預(yù)測(cè)相對(duì)線性。如需預(yù)測(cè)不在圖中的數(shù)據(jù),只需將對(duì)應(yīng)學(xué)習(xí)時(shí)間作為x代入回歸模型(方程)中即可。驗(yàn)證了最小二乘法在線性回歸應(yīng)用中的正確性。

2.梯度下降法

2.1 BP神經(jīng)網(wǎng)絡(luò)

? ? BP神經(jīng)網(wǎng)絡(luò)及其應(yīng)用詳見:機(jī)器學(xué)習(xí)——深度神經(jīng)網(wǎng)絡(luò)實(shí)踐(FCN、CNN、BP

? ? BP神經(jīng)網(wǎng)絡(luò)是一種簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò),核心思路是模仿人的大腦工作原理,構(gòu)造的一個(gè)數(shù)學(xué)模型,它的仿生結(jié)構(gòu)如圖21所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖21 BP神經(jīng)網(wǎng)絡(luò)拓?fù)鋱D

? ? 其中,BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)包含三層,最靠前的是輸入層,中間是隱層(可以有多個(gè)隱層,每層隱層可以有多個(gè)神經(jīng)元),最后是輸出層,一般工作流程如表10所示:

表10 BP神經(jīng)網(wǎng)絡(luò)流程

輸入: 數(shù)據(jù)集

過程

1.輸入層負(fù)責(zé)接收輸入,在輸入層接收到輸入后,每個(gè)輸入神經(jīng)元會(huì)把值加權(quán)傳遞到各個(gè)隱層神經(jīng)元。

2.各個(gè)隱神經(jīng)元接收到輸入神經(jīng)元傳遞過來的值后,與自身的基礎(chǔ)閾值b匯總求和,經(jīng)過一個(gè)激活函數(shù)(通常激活函數(shù)是tansig函數(shù)),然后加權(quán)傳給輸出層。

3.輸出神經(jīng)元把各個(gè)隱神經(jīng)元傳過來的值與自身閾值b求和(求和后也可以再經(jīng)過一層轉(zhuǎn)換),即是輸出值。

輸出:對(duì)應(yīng)結(jié)果

2.2 梯度下降法的應(yīng)用

??? 根據(jù)神經(jīng)網(wǎng)絡(luò)定義與表10所示,對(duì)于相關(guān)算法,參數(shù)更新是重要步驟。對(duì)于BP神經(jīng)網(wǎng)絡(luò)而言,常用梯度下降法去更新參數(shù)即通過反向傳播計(jì)算不同參數(shù)的梯度,再用梯度進(jìn)行參數(shù)的優(yōu)化。在本部分以一個(gè)實(shí)際樣例探究梯度下降在BP神經(jīng)網(wǎng)絡(luò)中的應(yīng)用。

? ? 問題描述:鳶尾花數(shù)據(jù)的分類(根據(jù)鳶尾花的四種特征屬性去分三類)

? ? BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn):本次實(shí)踐我選擇了四層BP神經(jīng)網(wǎng)絡(luò),第一層為輸入層,第二層和第三層都為中間層,第四層為輸出層。

? ? 輸入層為四個(gè)神經(jīng)元(每類特征屬性都能參與計(jì)算),輸出層為三個(gè)神經(jīng)元(分別對(duì)應(yīng)三個(gè)類別的概率大小),兩個(gè)中間層根據(jù)經(jīng)驗(yàn)確定為二十五個(gè)神經(jīng)元。

? ? 將不同層神經(jīng)元進(jìn)行全鏈接,中間的鏈接即為權(quán)重w,除了輸入層,其它層神經(jīng)元都賦予一個(gè)偏置b以及激活函數(shù)f,另外給最后輸出結(jié)果一個(gè)評(píng)判誤差的損失函數(shù)。

? ? 權(quán)重w和偏置b通過隨機(jī)數(shù)生成,中間層激活函數(shù)設(shè)置為relu函數(shù),輸出層激活函數(shù)設(shè)置為softmax函數(shù)(用來分類),損失函數(shù)設(shè)置為交叉熵誤差(因?yàn)榉诸悤r(shí)用到了獨(dú)熱編碼,因此適合用交叉熵誤差)。

? ? 參數(shù)更新的方法設(shè)置為隨機(jī)梯度下降法。即通過反向傳播計(jì)算不同參數(shù)的梯度,再用梯度進(jìn)行參數(shù)的優(yōu)化。代碼如下:

# 訓(xùn)練集:鳶尾花150*50%
# 網(wǎng)絡(luò)結(jié)構(gòu):輸入層(4)+中間層(25)+中間層(25)+輸出層(3)
# 中間層激活函數(shù):relu,輸出層激活函數(shù):softmax
# 損失函數(shù):交叉熵誤差
# 隨機(jī)梯度下降

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets

# 鳶尾花數(shù)據(jù)讀入
iris_data = datasets.load_iris()
input_data = iris_data.data
correct = iris_data.target
n_data = len(correct)

# 對(duì)數(shù)據(jù)進(jìn)行預(yù)處理
# 標(biāo)準(zhǔn)化
ave_input = np.average(input_data, axis=0)
std_input = np.std(input_data, axis=0)
input_data = (input_data - ave_input) / std_input
print(input_data)

# 標(biāo)簽轉(zhuǎn)化為獨(dú)熱編碼
correct_data = np.zeros((n_data, 3))
for i in range(n_data):
    correct_data[i, correct[i]] = 1.0
print(correct_data)
# 切分訓(xùn)練集和測(cè)試集
index = np.arange(n_data)
index_train = index[index % 2 == 0]
index_test = index[index % 2 != 0]

input_train = input_data[index_train, :]
input_test = input_data[index_test, :]

correct_train = correct_data[index_train, :]
corre_test = correct_data[index_test, :]

n_train = input_train.shape[0]
n_test = input_test.shape[0]

# 設(shè)置參數(shù)
n_in = 4
n_mid = 10
n_out = 3

wb_width = 0.1
eta = 0.1
epoch = 100

batch_size = 8
interval = 100


# 實(shí)現(xiàn)網(wǎng)絡(luò)層
class Baselayer:
    def __init__(self, n_upper, n):
        self.w = wb_width * np.random.randn(n_upper, n)
        self.b = wb_width * np.random.randn(n)

    def updata(self, eta):
        self.w = self.w - eta * self.grad_w
        self.b = self.b - eta * self.grad_b


class MiddleLayer(Baselayer):
    def forward(self, x):
        self.x = x
        self.u = np.dot(x, self.w) + self.b
        self.y = np.where(self.u <= 0, 0, self.u)  # relu函數(shù)

    def backward(self, grad_y):
        delta = grad_y * np.where(self.u <= 0, 0, 1.0)  # relu函數(shù)的求導(dǎo)--!!
        self.grad_w = np.dot(self.x.T, delta)
        self.grad_b = np.sum(delta, axis=0)
        self.grad_x = np.dot(delta, self.w.T)


class OutputLayer(Baselayer):
    def forward(self, x):
        self.x = x
        u = np.dot(x, self.w) + self.b
        self.y = np.exp(u) / np.sum(np.exp(u), axis=1, keepdims=True)  # SoftMax函數(shù)

    def backward(self, t):
        delta = self.y - t
        self.grad_w = np.dot(self.x.T, delta)
        self.grad_b = np.sum(delta, axis=0)
        self.grad_x = np.dot(delta, self.w.T)


# 實(shí)例化
middle_layer_1 = MiddleLayer(n_in, n_mid)
middle_layer_2 = MiddleLayer(n_mid, n_mid)
output_layer = OutputLayer(n_mid, n_out)


# 定義函數(shù)
def forward_propagation(x):
    middle_layer_1.forward(x)
    middle_layer_2.forward(middle_layer_1.y)
    output_layer.forward(middle_layer_2.y)


def back_propagation(t):
    output_layer.backward(t)
    middle_layer_2.backward(output_layer.grad_x)
    middle_layer_1.backward(middle_layer_2.grad_x)


def update_wb():
    middle_layer_1.updata(eta)
    middle_layer_2.updata(eta)
    output_layer.updata(eta)


def get_error(t, batch_size):
    return -np.sum(t * np.log(output_layer.y + 1e-7)) / batch_size


train_error_x = []
train_error_y = []
test_error_x = []
test_error_y = []

# 學(xué)習(xí)過程

n_batch = n_train // batch_size

for i in range(epoch):
    # 統(tǒng)計(jì)誤差
    forward_propagation(input_train)
    error_train = get_error(correct_train, n_train)

    forward_propagation(input_test)
    error_test = get_error(corre_test, n_test)

    train_error_x.append(i)
    train_error_y.append(error_train)

    test_error_x.append(i)
    test_error_y.append(error_test)

    index_random = np.arange(n_train)

    np.random.shuffle(index_random)

    for j in range(n_batch):
        mb_index = index_random[j * batch_size:(j + 1) * batch_size]
        x = input_train[mb_index, :]
        t = correct_train[mb_index, :]

        forward_propagation(x)

        back_propagation(t)

        update_wb()

plt.plot(train_error_x, train_error_y, label="Train")

plt.plot(test_error_x, test_error_y, label="Test")

plt.legend()

plt.xlabel("epoch")

plt.ylabel("error")

plt.show()

不同梯度下降方法更新參數(shù)下的分類結(jié)果與epoch的關(guān)系如圖22所示:

梯度下降法求解x-2)^4+(x-2*y)^2,最優(yōu)化方法,最小二乘法,matlab,算法,人工智能

圖22 不同梯度下降方法更新參數(shù)下的分類結(jié)果與epoch的關(guān)系

? ? 分析:由圖22可見,無論哪種梯度下降更新參數(shù),隨著epoch增加,訓(xùn)練集與測(cè)試集的誤差均會(huì)減小并呈現(xiàn)較相似趨勢(shì)。但對(duì)于隨機(jī)梯度下降而言,波動(dòng)與誤差較大。而自適應(yīng)梯度下降更新BP神經(jīng)網(wǎng)絡(luò)的參數(shù)較為穩(wěn)定,且兩數(shù)據(jù)集擬合效果好(分類效果好,誤差小)。

七、實(shí)驗(yàn)小結(jié)

1.最小二乘問題求解總結(jié)

(1)對(duì)于本實(shí)驗(yàn),重點(diǎn)介紹的最小二乘問題求解方法有兩種,分別是最小二乘法與梯度下降法,兩種方法對(duì)比簡(jiǎn)單總結(jié)如表11所示:

表11 最小二乘問題求解的方法對(duì)比總結(jié)

方法

原理

優(yōu)點(diǎn)

缺陷

最小二乘法

?fx=0,基于正規(guī)方程求解

得到的解相對(duì)精確

1.對(duì)異常點(diǎn)比較敏感

2.求逆的復(fù)雜度高

3.對(duì)于非線性數(shù)據(jù)效果不佳

梯度下降法

迭代,逐漸逼近精確解

效率相對(duì)較高

1.得到的解為局部最優(yōu),可能會(huì)停滯在局部最優(yōu)

2.接近極小值點(diǎn)的情況下,存在鋸齒現(xiàn)象,收斂速度降低

2)通過實(shí)驗(yàn)中對(duì)給定優(yōu)化模型使用不同方法進(jìn)行求解,本實(shí)驗(yàn)中效率由高到低是梯度下降法>最小二乘法,解的精確度由高到低是最小二乘法>梯度下降法。針對(duì)表11中總計(jì),在實(shí)際問題的求解方法的選擇上,要根據(jù)數(shù)據(jù)的類型與任務(wù)的需求決定。

(3)從優(yōu)化的角度來說,最小二乘法與梯度下降法均存在一定問題,在數(shù)學(xué)推導(dǎo)上仍有優(yōu)化的空間,故對(duì)于最小二乘問題出現(xiàn)了許多其他優(yōu)化方法求解,同樣值得學(xué)習(xí)。

(4)不同語言與平臺(tái)對(duì)于最小二乘問題求解的效率有一定影響,一般來說,隨著矩陣與向量的規(guī)模增大,matlab下同方法的效率會(huì)高于Python,在選擇的過程中要結(jié)合數(shù)據(jù)與個(gè)人熟悉度。

(5)最小二乘法與梯度下降法有多種應(yīng)用,例如線性回歸擬合數(shù)據(jù)與神經(jīng)網(wǎng)絡(luò)參數(shù)更新等,在理論與實(shí)踐方面都有許多聯(lián)系。

2.參考資料

1.最優(yōu)化方法——Least Squares_顯然易證的博客-CSDN博客_least_squares優(yōu)化?

2.最優(yōu)化方法——QR分解_@李憶如的博客-CSDN博客

3.梯度下降法求解BP神經(jīng)網(wǎng)絡(luò)的簡(jiǎn)單Demo_老餅講解-BP神經(jīng)網(wǎng)絡(luò)的博客-?

??????4.機(jī)器學(xué)習(xí)——LR(線性回歸)、LRC(線性回歸分類)與人臉識(shí)別

5.BP神經(jīng)網(wǎng)絡(luò) 鳶尾花分類 Python 隨機(jī)梯度下降法 Adagrad(自適應(yīng)梯度下降法)?文章來源地址http://www.zghlxwxcb.cn/news/detail-788578.html

到了這里,關(guān)于最優(yōu)化方法——最小二乘法與梯度下降法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【最優(yōu)化算法】基于【MATLAB】的最速下降仿真

    【最優(yōu)化算法】基于【MATLAB】的最速下降仿真

    無約束問題的求解過程一般都是通過一系列的一維搜索來實(shí)現(xiàn),搜索方向的不同,形成了不同的最優(yōu)化方法。這篇文章從最速下降法入手,來進(jìn)行搜索。 最速下降法又叫梯度法,通過梯度下降法來一步步的迭代求解,得到最小化的損失函數(shù)和模型參數(shù)值。如果我們需要求解損

    2024年02月05日
    瀏覽(25)
  • 數(shù)學(xué)學(xué)習(xí)——最優(yōu)化問題引入、凸集、凸函數(shù)、凸優(yōu)化、梯度、Jacobi矩陣、Hessian矩陣

    數(shù)學(xué)學(xué)習(xí)——最優(yōu)化問題引入、凸集、凸函數(shù)、凸優(yōu)化、梯度、Jacobi矩陣、Hessian矩陣

    例如:有一根繩子,長(zhǎng)度一定的情況下,需要如何圍成一個(gè)面積最大的圖像?這就是一個(gè)最優(yōu)化的問題。就是我們高中數(shù)學(xué)中最常見的最值問題。 最優(yōu)化問題的一般形式是: m i n ? f ( x ) x ∈ C min?f(x) \\\\ x in C min ? f ( x ) x ∈ C 其中, f f f 是目標(biāo)函數(shù), A A A 是約束條件,

    2024年02月15日
    瀏覽(22)
  • 非線性最優(yōu)化問題求解器Ipopt介紹

    Ipopt(Interior Point OPTimizer) 是求解大規(guī)模非線性最優(yōu)化問題的求解軟件??梢郧蠼馊缦滦问降淖顑?yōu)化問題的(局部)最優(yōu)解。 m i n ? x ∈ R n ??? f ( x ) s . t . g L ≤ g ( x ) ≤ g U x L ≤ x ≤ x U (0) underbrace{min}_ {x in R?} , , , f(x) \\\\ s.t. g_L ≤ g(x) ≤ g_U \\\\ x_L ≤ x ≤ x_U tag{0} x ∈ R

    2024年01月20日
    瀏覽(25)
  • 詳細(xì)介紹如何使用Ipopt非線性求解器求解帶約束的最優(yōu)化問題

    詳細(xì)介紹如何使用Ipopt非線性求解器求解帶約束的最優(yōu)化問題

    ?? 本文中將詳細(xì)介紹如何使用Ipopt非線性求解器求解帶約束的最優(yōu)化問題,結(jié)合給出的帶約束的最優(yōu)化問題示例,給出相應(yīng)的完整的C++程序,并給出詳細(xì)的解釋和注釋,以及編譯規(guī)則等 ?? 一、Ipopt庫的安裝和測(cè)試 ?? 本部分內(nèi)容在之前的文章《Ubuntu20.04安裝Ipopt的流程介

    2024年02月08日
    瀏覽(42)
  • 【最優(yōu)化算法】基于【MATLAB】的共軛梯度法【Conjugate Gradient】分析與推導(dǎo)

    【最優(yōu)化算法】基于【MATLAB】的共軛梯度法【Conjugate Gradient】分析與推導(dǎo)

    ??個(gè)人主頁:歡迎訪問Ali.S主頁 ?? 最近更新:2022年7月19日 ? Java框架學(xué)習(xí)系列:Mybatis框架 ? Java基礎(chǔ)學(xué)習(xí)系列:面向?qū)ο箫w機(jī)大戰(zhàn) ?? 通信仿真學(xué)習(xí)系列:【硬件】【通信】【MATLAB】【最優(yōu)化】 ?? 個(gè)人簡(jiǎn)介:通信工程本碩??、Java程序員??。目前只會(huì)CURD?? ?? 點(diǎn)贊 ??

    2023年04月19日
    瀏覽(57)
  • MATLAB 之 非線性方程數(shù)值求解、最優(yōu)化問題求解和常微分方程初值問題的數(shù)值求解

    MATLAB 之 非線性方程數(shù)值求解、最優(yōu)化問題求解和常微分方程初值問題的數(shù)值求解

    非線性方程的求根方法很多,常用的有牛頓迭代法,但該方法需要求原方程的導(dǎo)數(shù),而在實(shí)際運(yùn)算中這一條件有時(shí) 是不能滿足的,所以又出現(xiàn)了弦截法、二分法等其他方法。 在 MATLAB 中,非線性方程的求解和最優(yōu)化問題往往需要調(diào)用最優(yōu)化工具箱來解決。優(yōu)化工具箱提供了一

    2024年02月08日
    瀏覽(27)
  • 利用 MATLAB 編程實(shí)現(xiàn)乘子法求解約束最優(yōu)化問題。
擬 Newton 法

    利用 MATLAB 編程實(shí)現(xiàn)乘子法求解約束最優(yōu)化問題。 擬 Newton 法

    1、畫出 PH 法的算法流程圖; 2、MATLAB 編寫 PH 法求解約束優(yōu)化問題的函數(shù),無約束子問題用精確一 維搜索的擬 Newton 法((函數(shù)式 M 文件,精度設(shè)為 epson 可調(diào));編寫程序(命 令式 M 文件),調(diào)用 PH 法,求解如下問題: ? 初始點(diǎn)?。?0,10),按教材 P217,例 12 取不同的參

    2024年02月11日
    瀏覽(66)
  • 【算法系列】非線性最小二乘求解-梯度下降法

    【算法系列】非線性最小二乘求解-梯度下降法

    ·【算法系列】卡爾曼濾波算法 ·【算法系列】非線性最小二乘求解-直接求解法 ·【算法系列】非線性最小二乘求解-梯度下降法 ·【算法系列】非線性最小二乘-高斯牛頓法? ·【算法系列】非線性最小二乘-列文伯格馬夸爾和狗腿算法? 文章目錄 系列文章 文章目錄 前言 一、

    2024年02月16日
    瀏覽(18)
  • Python中scipy.optimize求解有無約束的最優(yōu)化算法舉例(附代碼)

    Python中scipy.optimize求解有無約束的最優(yōu)化算法舉例(附代碼)

    目錄 算法需要輸入的參數(shù) 算法輸出的優(yōu)化結(jié)果 優(yōu)化算法應(yīng)用舉例 優(yōu)化算法舉例代碼? 優(yōu)化算法輸出結(jié)果? 其他優(yōu)化問題舉例 最優(yōu)化求解問題標(biāo)準(zhǔn)格式如下:? Python中scipy庫有很多包,其中一個(gè)就是scipy.optimize.minimize求解有無約束的最小化問題。 原文請(qǐng)參考: scipy.optimize.m

    2024年02月09日
    瀏覽(25)
  • 機(jī)器學(xué)習(xí)筆記之最優(yōu)化理論與方法(一)最優(yōu)化問題概述

    從本節(jié)開始,將對(duì) 最優(yōu)化理論與方法 進(jìn)行簡(jiǎn)單認(rèn)識(shí)。 無論是 最優(yōu)化理論 還是 最優(yōu)化方法 ,討論的 對(duì)象 都是 最優(yōu)化問題 。 關(guān)于 最優(yōu)化問題 的一種簡(jiǎn)單描述:最優(yōu)化問題本質(zhì)上屬于 決策問題 。 例如 路徑選擇 問題:確定達(dá)到目的地最佳路徑的計(jì)量標(biāo)準(zhǔn) 。其中問題的 目

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包