国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python+numpy+matplotalib實(shí)現(xiàn)梯度下降法

2020-02-15 22:52:14
字體:
供稿:網(wǎng)友

這個(gè)階段一直在做和梯度一類算法相關(guān)的東西,索性在這兒做個(gè)匯總,

一、算法論述

梯度下降法(gradient  descent)別名最速下降法(曾經(jīng)我以為這是兩個(gè)不同的算法-.-),是用來求解無約束最優(yōu)化問題的一種常用算法。下面以求解線性回歸為題來敘述:

設(shè):一般的線性回歸方程(擬合函數(shù))為:(其中的值為1)

  

這一組向量參數(shù)選擇的好與壞就需要一個(gè)機(jī)制來評(píng)估,據(jù)此我們提出了其損失函數(shù)為(選擇均方誤差):

我們現(xiàn)在的目的就是使得損失函數(shù)取得最小值,即目標(biāo)函數(shù)為:

如果的值取到了0,意味著我們構(gòu)造出了極好的擬合函數(shù),也即選擇出了最好的值,但這基本是達(dá)不到的,我們只能使得其無限的接近于0,當(dāng)滿足一定精度時(shí)停止迭代。

那么問題來了如何調(diào)整使得取得的值越來越小呢?方法很多,此處以梯度下降法為例:

分為兩步:(1)初始化的值。

                  (2)改變的值,使得按梯度下降的方向減少。

值的更新使用如下的方式來完成:

        

其中為步長因子,這里我們?nèi)《ㄖ担⒁馊绻?img alt="" src="/d/file/p/2020/02-16/47215caabaf188cb4f0e6d41813e7261.gif" />取得過小會(huì)導(dǎo)致收斂速度過慢,過大則損失函數(shù)可能不會(huì)收斂,甚至逐漸變大,可以在下述的代碼中修改的值來進(jìn)行驗(yàn)證。后面我會(huì)再寫一篇關(guān)于隨機(jī)梯度下降法的文章,其實(shí)與梯度下降法最大的不同就在于一個(gè)求和符號(hào)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 苏尼特左旗| 克拉玛依市| 紫金县| 新竹县| 霸州市| 会昌县| 方城县| 江北区| 昂仁县| 百色市| 大埔县| 寿宁县| 斗六市| 梅州市| 永寿县| 拜泉县| 通海县| 沭阳县| 台南县| 承德县| 依兰县| 含山县| 黄梅县| 祁东县| 江都市| 肃宁县| 蓝田县| 崇州市| 义马市| 潜山县| 文安县| 北安市| 乌兰察布市| 河北区| 芒康县| 军事| 昌黎县| 开封县| 永安市| 曲沃县| 保德县|