梯度下降法 初探

2021-09-03 02:42:27 字數 2290 閱讀 7986

1、梯度下降法的基本思想

梯度下降法的基本思想可模擬為乙個下山的過程。假設乙個場景:乙個人困於山上,需要

從山上下來(即到山的最低谷)。 此時山上有大霧,看不見下山的路,他必須利用自己的腳

去探索下山的路。這時候,他就可以利用梯度下降演算法來幫助自己下山。他能以當前所處位置為

基準,尋找這個位置最陡峭的方向,然後朝著山的高度下降的方向走;反之如果我們要上山,我

朝著山最陡峭的位置向上走。然後每走 一步都反覆採用同乙個方法,最後就能成功的抵達山谷。

2、梯度下降是什麼:

梯度下降可以模擬於上述下山的場景。

首先,我們 有乙個可微分的目標函式,這個 函式代表一座山。我們的目標就是找到這個函式的最小值,

也就是山底。我們需要找到當前位置最陡峭的方向,然後沿著這個方向下山,對應函式中,就是 找到給定點

的梯度,然後沿著梯度相反的方向, 就能讓函式值下降的最快。梯度的方向就是函式變化率最大的方向。。

我們利用上訴方法, 反覆求目標函式的梯度,讓目標函式不斷的達到區域性的最小值,相當於沿著最陡峭的

方向下山。確定了函式定點處的梯度就相當於確定了最陡峭的方向。

3、梯度的確定:

梯度是對目標函式的每個變數進行微分,然後用逗號分開,用<>包括起來。梯度的本質就是乙個向量。

梯度在微積分中的概念:

(1)在單變數的函式中,梯度其實就是函式的微分,代表著函式在某個給定的切線斜率。

(2)在 多變數函式中,梯度是乙個向量,向量有方向,梯度的 方向就是指出了函式在給定

的上公升最快的方向。

4、梯度下降演算法的數學解釋

下面我們從數學 角度解釋梯度下降演算法的計算過程和思想:

上述公式的含義:j是關於θ的乙個函式,我們當前所處的位置為θ0點,要從這個點走到j的最小值點,

也就是山底。首先我們先確定前進的方向,也就是梯度相反的方向,然後走一段距離的步長α,

走完這個步長,就到達了θ1這個點。

梯度下降演算法公式的含義:

α在梯度下降演算法中被稱為學習率或者步長, 意味著α控制每一步走的距離,α過大會導致錯過

最低點,α過小會導致時間花銷太大。在梯度下降法中選擇學習率α很關鍵。

梯度前的負號,意味著朝梯度相反的方向前進,梯度的方向是函式在此點上公升最快的方向,

需要朝下降最快的方向走,就要給梯度加個負號。

5、梯度下降演算法的matlab實現過程:

% 用梯度下降演算法求單變數函式的最小值

% 目標函式: f(x) = (x^2)/2 - 2*x , 自變數初始值 x0=-4,學習率 α=0.5,收斂精度 e=0.001

% 目標函式的梯度:gradient = x - 2

clc;

clear;

e = 0.001; % 收斂精度

alpha = 0.5; % 學習速率

n = 50; % 迭代次數

x = zeros(1,n); % 每次迭代過程中自變數的值

x(1,1) = -4; % 自變數初始值

%figure; % 建立顯示影象的視窗物件

s = -4:0.1:6;

f_s = s.^2/2 - 2*s;

plot(s,f_s,'r-') % 繪製函式影象

for i = 1:n

x(1,i+1) = x(1,i) - alpha*(x(1,i)-2);

endhold on; % 保留原來的影象

梯度下降法和隨機梯度下降法

批量梯度下降法 batch gradient descent 在更新引數時使用所有的樣本來進行更新 隨機梯度下降法 stochastic gradient descent 求梯度時沒有用所有的m個樣本的資料,而是僅僅選取乙個樣本j來求梯度。小批量梯度下降法 mini batch gradient d...

梯度下降法

梯度下降法 是乙個一階 最優化演算法 通常也稱為 最速下降法 我之前也沒有關注過這類演算法。最近,聽史丹福大學的機器學習課程時,碰到了用梯度下降演算法求解線性回歸問題,於是看了看這類演算法的思想。今天只寫了一些入門級的知識。我們知道,函式的曲線如下 程式設計實現 c code cpp view pl...

梯度下降法

回歸 regression 梯度下降 gradient descent 發表於332 天前 技術,科研 被圍觀 1152 次 前言 這個系列主要想能夠用數學去描述機器學習,想要學好機器學習,首先得去理解其中的數學意義,不一定要到能夠輕鬆自如的推導中間的公式,不過至少得認識這些 式子吧,不然看一些相關...