已知:(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
θminl
(θ)=
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 對於我們的...