【深度学习的数学】2-11 用Excel体验梯度下降法(用python实现)
生活随笔
收集整理的這篇文章主要介紹了
【深度学习的数学】2-11 用Excel体验梯度下降法(用python实现)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
梯度下降法是神經(jīng)網(wǎng)絡(luò)計(jì)算的基礎(chǔ),下面我們用python編程來體驗(yàn)它!
代碼
# -*- coding: utf-8 -*- """ @File : 梯度下降法求函數(shù)最小值.py @Time : 2020/5/17 21:30 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """# 函數(shù) def f(a, b):return a ** 2 + b ** 2# 梯度 def calcu_gra_f2x(a, b):return 2 * adef calcu_gra_f2y(a, b):return 2 * b# 位移向量 def calcu_delta_x(gra_x, ita):return gra_x * -itadef calcu_delta_y(gra_y, ita):return gra_y * -itaif __name__ == '__main__':# 學(xué)習(xí)率eta = 0.1# 初始參數(shù)x, y = 3.00, 2.00gra_f2x, gra_f2y = calcu_gra_f2x(x, y), calcu_gra_f2y(x, y)delta_x, delta_y = calcu_delta_x(gra_f2x, eta), calcu_delta_y(gra_f2y, eta)z = f(x, y)# 執(zhí)行梯度下降法for i in range(0, 20):print('第{:0>2d}輪\tx={:.2f}\ty={:.2f}\tgra_f2x={:.2f}\tgra_f2y={:.2f}\tdelta_x={:.2f}\tdelta_y={:.2f}\tz={:.2f}'.format(i, x, y, gra_f2x, gra_f2y, delta_x, delta_y, z))# 更新變量x = x + delta_xy = y + delta_ygra_f2x = calcu_gra_f2x(x, y)gra_f2y = calcu_gra_f2y(x, y)delta_x = calcu_delta_x(gra_f2x, eta)delta_y = calcu_delta_y(gra_f2y, eta)z = f(x, y)結(jié)果:
D:\20200228_play_with_pytorch\python\python.exe C:/Users/SIQI/Desktop/20200511_用Excel體驗(yàn)梯度下降法(改成用python體驗(yàn))/梯度下降法求函數(shù)最小值/梯度下降法求函數(shù)最小值.py 第00輪 x=3.00 y=2.00 gra_f2x=6.00 gra_f2y=4.00 delta_x=-0.60 delta_y=-0.40 z=13.00 第01輪 x=2.40 y=1.60 gra_f2x=4.80 gra_f2y=3.20 delta_x=-0.48 delta_y=-0.32 z=8.32 第02輪 x=1.92 y=1.28 gra_f2x=3.84 gra_f2y=2.56 delta_x=-0.38 delta_y=-0.26 z=5.32 第03輪 x=1.54 y=1.02 gra_f2x=3.07 gra_f2y=2.05 delta_x=-0.31 delta_y=-0.20 z=3.41 第04輪 x=1.23 y=0.82 gra_f2x=2.46 gra_f2y=1.64 delta_x=-0.25 delta_y=-0.16 z=2.18 第05輪 x=0.98 y=0.66 gra_f2x=1.97 gra_f2y=1.31 delta_x=-0.20 delta_y=-0.13 z=1.40 第06輪 x=0.79 y=0.52 gra_f2x=1.57 gra_f2y=1.05 delta_x=-0.16 delta_y=-0.10 z=0.89 第07輪 x=0.63 y=0.42 gra_f2x=1.26 gra_f2y=0.84 delta_x=-0.13 delta_y=-0.08 z=0.57 第08輪 x=0.50 y=0.34 gra_f2x=1.01 gra_f2y=0.67 delta_x=-0.10 delta_y=-0.07 z=0.37 第09輪 x=0.40 y=0.27 gra_f2x=0.81 gra_f2y=0.54 delta_x=-0.08 delta_y=-0.05 z=0.23 第10輪 x=0.32 y=0.21 gra_f2x=0.64 gra_f2y=0.43 delta_x=-0.06 delta_y=-0.04 z=0.15 第11輪 x=0.26 y=0.17 gra_f2x=0.52 gra_f2y=0.34 delta_x=-0.05 delta_y=-0.03 z=0.10 第12輪 x=0.21 y=0.14 gra_f2x=0.41 gra_f2y=0.27 delta_x=-0.04 delta_y=-0.03 z=0.06 第13輪 x=0.16 y=0.11 gra_f2x=0.33 gra_f2y=0.22 delta_x=-0.03 delta_y=-0.02 z=0.04 第14輪 x=0.13 y=0.09 gra_f2x=0.26 gra_f2y=0.18 delta_x=-0.03 delta_y=-0.02 z=0.03 第15輪 x=0.11 y=0.07 gra_f2x=0.21 gra_f2y=0.14 delta_x=-0.02 delta_y=-0.01 z=0.02 第16輪 x=0.08 y=0.06 gra_f2x=0.17 gra_f2y=0.11 delta_x=-0.02 delta_y=-0.01 z=0.01 第17輪 x=0.07 y=0.05 gra_f2x=0.14 gra_f2y=0.09 delta_x=-0.01 delta_y=-0.01 z=0.01 第18輪 x=0.05 y=0.04 gra_f2x=0.11 gra_f2y=0.07 delta_x=-0.01 delta_y=-0.01 z=0.00 第19輪 x=0.04 y=0.03 gra_f2x=0.09 gra_f2y=0.06 delta_x=-0.01 delta_y=-0.01 z=0.00Process finished with exit code 0貌似這么簡單的計(jì)算也用不著使用函數(shù)吧??徒增代碼量??
參考文章:《深度學(xué)習(xí)的數(shù)學(xué)》之梯度下降法python實(shí)現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的【深度学习的数学】2-11 用Excel体验梯度下降法(用python实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 睡觉时憋气发出“嗯嗯”的声音?
- 下一篇: python报错:float objec