最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

用梯度下降算法求解函數(shù)最小值

2022-10-26 21:35 作者:水木智聯(lián)  | 我要投稿

梯度下降是求解神經(jīng)網(wǎng)絡(luò)的核心算法。神經(jīng)網(wǎng)絡(luò)的優(yōu)化算法也是在梯度下降算法那基礎(chǔ)上的局部改良與優(yōu)化。

梯度下降算法通過求解神經(jīng)網(wǎng)絡(luò)損失函數(shù)的梯度,實(shí)現(xiàn)對損失函數(shù)最小值的逼近,間接實(shí)現(xiàn)最優(yōu)網(wǎng)絡(luò)模型的求解和逼近。

下面舉一個(gè)列子,演示梯度下降算法求解函數(shù)最小值的過程。

首先頂一個(gè)函數(shù)J(w),表示損失函數(shù)。

def J(w):

??? return w ** 2 - 2 * w +1

?

函數(shù)的導(dǎo)數(shù)(梯度)計(jì)算:

def gradient(w):?? # 梯度函數(shù)(導(dǎo)數(shù))

??? return 2 * w – 2

?

# 跟蹤模擬梯度下降

w_list = []? # 記錄w的變化歷程

J_list = []? # 對應(yīng)的損失值變化過程

?

w = 9?? # 隨機(jī)給w一個(gè)初值

alpha = 0.1? # 學(xué)習(xí)率

?

# 開始梯度下降,向最優(yōu)解靠近

for i in range(50):? #下降50歩,這個(gè)數(shù)字可調(diào)整

??? w_list.append(w)? #保存當(dāng)前的w

??? J_list.append(J(w))? # 保存當(dāng)前的損失值

??? w = w - alpha * gradient(w)? # 梯度下降一步,迭代一次

?

#繪圖顯示梯度下降效果(過程

import matplotlib.pyplot as plt

import numpy as np

#先畫原來的損失函數(shù)曲線

w = np.arange(-9,11,1)

J_w = J(w)

plt.figure(figsize=(12,6))

plt.plot(w, J_w)

plt.text(-7,80,'$J(w)=w^{2}-2w+1$',fontsize=15)

plt.xticks(range(-11,11,1));

#繪制剛才的梯度下降過程

plt.plot(w_list, J_list, 'ro--')

plt.show()

?

繪制的梯度下降過程如圖所示。

梯度下降過程,紅色點(diǎn)代表梯度下降的軌跡


print(f'模型的最優(yōu)解是:{w_list[-1]},對應(yīng)的損失值是:{J_list[-1]}')

顯示結(jié)果如下:

模型的最優(yōu)解是:1.0001427247692707,對應(yīng)的損失值是:2.03703598433691e-08

很有意思的一個(gè)結(jié)果。調(diào)整梯度下降的相關(guān)參數(shù),可以觀察到更多有趣的結(jié)果。當(dāng)然,用梯度下降求解如此簡單的函數(shù),有點(diǎn)兒“大材小用了”。不過,梯度下降用于神經(jīng)網(wǎng)絡(luò)求解,則再好不過了。


用梯度下降算法求解函數(shù)最小值的評論 (共 條)

分享到微博請遵守國家法律
溧水县| 长治县| 精河县| 青州市| 哈巴河县| 毕节市| 仪陇县| 象州县| 青河县| 富源县| 华阴市| 德保县| 壤塘县| 宁阳县| 凤翔县| 贵定县| 松滋市| 格尔木市| 阳新县| 平江县| 德保县| 天峻县| 婺源县| 道真| 阳江市| 鹤山市| 五莲县| 常德市| 天全县| 西乌珠穆沁旗| 宝坻区| 六盘水市| 义马市| 霍山县| 若羌县| 白山市| 张家界市| 嫩江县| 从化市| 郴州市| 高青县|