梯度下降你真的懂嗎

2021-09-27 13:34:46 字數 1594 閱讀 5470

已知:(x,y)=(x,f(x))對應的資料(1,1),(2,1.8),(3,3.2),(4,3.8),(5,5.25),找到這些點擬合出的函式?

假設:的函式最簡單的形式為h(x

)=θx

h(x)=\theta x

h(x)=θ

x目標:

開始:

可以看出,上面的例子中θ

\theta

θ的初始值以及學習率α

\alpha

α是關鍵。

其實,θ

\theta

θ的初始值設定不是問題。就目標函式而言,這裡

min ⁡θ

l(θ)

=12n

∑i(h

(xi)

−f(x

i))2

=12n

∑i(θ

xi−f

(xi)

)2\min_ l(\theta)=\frac \sum_ \left( h(x_i)-f(x_i) \right) ^2\\=\frac \sum_ \left( \theta x_i-f(x_i) \right) ^2

θmin​l

(θ)=

2n1​

i∑​(

h(xi

​)−f

(xi​

))2=

2n1​

i∑​(

θxi​

−f(x

i​))

2損失函式是關於θ

\theta

θ的二次函式,二次函式求最小值,令其導數=0(基礎,對於連續函式,導數=0處的點為駐點,駐點是可能的極值點,也有可能是鞍點)。其實,θ

\theta

θ的初始選擇不是問題,無非就是選的距離最優點近一些就快一些,否則就會慢一些。解釋如下圖:

然而,α

\alpha

α學習率的選擇將是乙個影響沿著梯度下降方向邁出多大步子的問題,步子邁大了,可能會邁過最優點,步子邁小了,需要多輪iteration,耗時一些。

上面說的是最簡單的乙個引數問題,多個引數比較複雜,原理是一樣,給定初始引數值,按照梯度下降更新梯度,需要說明,每次求最優,是需要各個引數求偏導數同時滿足=0,並按照各自的梯度同時更新各自的引數。

String的split方法,你真的懂嗎

string的split方法相信大家都不陌生,或多或少都用過它將字串轉成乙個陣列,但是就是這樣乙個簡單的方法,裡面也有乙個不得不注意 不深不淺的小坑。本地測試 如下圖所示 圖1大家會發現split1跟split3的長度符合我們的預期,但是split2應該是長度為5,但實際長度卻仍然為4。相信大家在遇...

js的非同步載入你真的懂嗎

面試高頻之js的非同步載入 講這個問題之前,我們從另乙個面試高頻問題來切入,我們的web頁面從開始解析到頁面渲染完成都經歷了什麼 1 建立document物件,開始解析頁面,此時document.readystate loading 2 遇到link標籤引入的css檔案,建立執行緒並非同步載入css...

梯度下降 隨機梯度下降 批梯度下降

下面的h x 是要擬合的函式,j 損失函式,theta是引數,要迭代求解的值,theta求解出來了那最終要擬合的函式h 就出來了。其中m是訓練集的記錄條數,j是引數的個數。梯度下降法流程 1 先對 隨機賦值,可以是乙個全零的向量。2 改變 的值,使j 按梯度下降的方向減少。以上式為例 1 對於我們的...