生活随笔
收集整理的這篇文章主要介紹了
梯度下降法原理及实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
梯度下降代表函數(shù)值減少速度最快的方向。當(dāng)設(shè)定目標(biāo)函數(shù)最小值時,只要朝著梯度下降的方向前進,就可以不斷的逼近最優(yōu)值
#encoding=utf-8????"""?????created?on?2018-08-12?????@author?wt?"""????"""?????利用隨機梯度法,首先需要有一個函數(shù),隨便找一個函數(shù)f(x)?=?x^2-4*x+4,則f'(x)=2*x-4?"""??import?numpy?as?np??import?matplotlib.pyplot?as?plt??????def?f(x):??????return?x*x-4*x+4????def?f1(x):??????return?2*x-4????def?Grandient_Descent(start_x,learning_rate,f):??????x?=?start_x??????for?i?in?range(20):??????????grad?=?f(x)??????????x?-=?grad*learning_rate??????????print(i,grad,x)??????????if?abs(grad)?<?1e-10:??????????????break??????return?x????Grandient_Descent(5,0.1,f)????x?=?np.linspace(-10,13,1000)??y?=?f(x)??plt.plot(x,y)??plt.show()??可以看出x不斷的隨著梯度值再下降注意:隨機梯度下降法中,步長設(shè)定值要小于安全步長,否則不論初始值等于多少,問題都會收斂不到最優(yōu)值或者原地打轉(zhuǎn)例如:根據(jù)上面的公式:x=5,f1(x)=6? ?-> x' = 5-6*step ,f1(x')=2*(5-6*step)-4 -> x'-f1(x')*step = x=5 求解y=1 安全步長為1
總結(jié)
以上是生活随笔為你收集整理的梯度下降法原理及实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。