Python中用numpy解決梯度下降最小值的方法-創(chuàng)新互聯(lián)

這篇文章主要介紹Python中用numpy解決梯度下降最小值的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)IDC提供業(yè)務(wù):達(dá)州電信機(jī)房,成都服務(wù)器租用,達(dá)州電信機(jī)房,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動機(jī)房,聯(lián)通機(jī)房。

問題描述:求解y1 = xx -2 x +3 + 0.01*(-1到1的隨機(jī)值) 與 y2 = 0 的最小距離點(diǎn)(x,y)

給定x范圍(0,3)

不使用學(xué)習(xí)框架,手動編寫梯度下降公式求解,提示:x = x - alp*(y1-y2)導(dǎo)數(shù)(alp為學(xué)習(xí)率)

函數(shù)圖像為:

Python中用numpy解決梯度下降最小值的方法

代碼內(nèi)容:

import numpy as np import matplotlib.pyplot as plt def get_loss(x):    c,r = x.shape    loss = (x**2 - 2*x + 3) + (0.01*(2*np.random.rand(c,r)-1))    return(loss) x = np.arange(0,3,0.01).reshape(-1,1) """plt.title("loss") plt.plot(get_loss(np.array(x))) plt.show()""" def get_grad(x):    grad = 2 * x -2    return(grad) np.random.seed(31415) x_ = np.random.rand(1)*3 x_s = [] alp = 0.001 print("X0",x_) for e in range(2000):    x_ = x_ - alp*(get_grad(x_))    x_s.append(x_)    if(e%100 == 0):        print(e,"steps,x_ = ",x_) plt.title("loss") plt.plot(get_loss(np.array(x_s))) plt.show()


運(yùn)行結(jié)果:

X0 [1.93745582] 0 steps,x_ =  [1.93558091] 100 steps,x_ =  [1.76583547] 200 steps,x_ =  [1.6268875] 300 steps,x_ =  [1.51314929] 400 steps,x_ =  [1.42004698] 500 steps,x_ =  [1.34383651] 600 steps,x_ =  [1.28145316] 700 steps,x_ =  [1.23038821] 800 steps,x_ =  [1.18858814] 900 steps,x_ =  [1.15437199] 1000 steps,x_ =  [1.12636379] 1100 steps,x_ =  [1.1034372] 1200 steps,x_ =  [1.08467026] 1300 steps,x_ =  [1.06930826] 1400 steps,x_ =  [1.05673344] 1500 steps,x_ =  [1.04644011] 1600 steps,x_ =  [1.03801434] 1700 steps,x_ =  [1.03111727] 1800 steps,x_ =  [1.02547157] 1900 steps,x_ =  [1.02085018]


圖片

Python中用numpy解決梯度下降最小值的方法

                                     

以上是Python中用numpy解決梯度下降最小值的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享文章:Python中用numpy解決梯度下降最小值的方法-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://muchs.cn/article4/dpidoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、企業(yè)建站、網(wǎng)站導(dǎo)航、微信小程序App開發(fā)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)