在上一張,我們學習過了lms演算法,就是利用了著名的梯度下降法,但是lms演算法只是一種特殊的實現,是均方差這個特定函式的梯度下降,這次我們來看一下梯度下降對普通函式求極值的一些應用。
我們來試一下二次函式的極值點求法。
首先我們建立乙個二次函式:
y=x^2+2*x
這個極值大家應該知道 x取-1就可以得到極小值。
我們來編寫乙個梯度下降法來求極值點:
x=50;
% y=x^2;
sigma=0.9;
yr=10^5;
fori=1:100000;
y=x^2+2*x;
ifabs(y-yr)<10^-100
break;
endx=x-sigma*(2*x+2);
yr=y;
% sigma=0.9999^i*sigma;
endfprintf('迭代次數 %d',i);
前一節誤差的迭代就是x的步長。
非常準確。
建立乙個函式:
y=x^3+8*x^2+2*x
這個函式的圖形如下圖:
endfprintf('迭代次數 %d',i);
雖然梯度下降法可以有效的快速收斂,但當函式越來越複雜以後,會特別容易收斂到非最小值點,這就需要有乙個更加好的初值和更加合適的學習率。
機器學習(三) 梯度下降法
本部落格大部分參考了這篇博文 在微積分裡面,對多元函式的引數求 偏導數,把求得的各個引數的偏導數以向量的形式寫出來,就是梯度。比如函式f x,y 分別對x,y求偏導數,求得的梯度向量就是 f x f y 簡稱gr adf x,y 或者 f x,y 如果是3個引數的向量梯度,就是 f x f y,f ...
神經網路的梯度下降法
常用的神經網路如bp神經網路 rbf神經網路等都有三層神經元,即輸入層 隱藏層和輸出層。我們知道通過不斷的修改神經元之間的權值和偏置使網路的輸出能夠擬合所有的訓練輸入,為了量化這個目標,引入乙個代價函式 其中w表示所有網路中權值集合,b是所有的偏置,n是訓練輸入資料的個數,a表示當輸入為x時輸出的向...
深度學習(七)梯度下降法
應用機器學習演算法時,我們通常採用梯度下降法來對採用的演算法進行訓練。其實,常用的梯度下降法還具體包含有三種不同的形式,它們也各自有著不同的優缺點。總結如下 下面我們以線性回歸演算法來對三種梯度下降法進行比較。一般線性回歸函式的假設函式為 對應的能量函式 損失函式 形式為 下圖為乙個二維引數 0和 ...