求解函式梯度(Python,numpy

2021-10-13 09:51:26 字數 1002 閱讀 4988

#求函式的梯度,也就是所有偏導的組合

import numpy as np

defnumberical_grandient

(f, x)

: h =1e-

4#定義乙個微小量,不能太小,太小計算機沒法正確表示

grad = np.zeros_like(x)

#生成和x形狀相同的陣列

for idx in

range

(x.size)

:#計算所有偏導

tmp_val = x[idx]

x[idx]

= tmp_val + h #要計算的那個自變數加h,其餘不變

fxh1 = f(x)

#計算f(x+h)

x[idx]

= tmp_val - h #計算f(x-h)

fxh2 = f(x)

grad[idx]

=(fxh1 - fxh2)/(

2*h)

#計算偏導

x[idx]

= tmp_val

return grad

deffunction_2

(x):

#定義函式:f(x) = x1^2+x2^2

return x[0]

**2+ x[1]

**2#輸出三個梯度

print

(numberical_grandient(function_2, np.array(

[3.0

,4.0])

))print

(numberical_grandient(function_2, np.array(

[0.0

,2.0])

))print

(numberical_grandient(function_2, np.array(

[3.0

,0.0])

))

cost函式梯度求解證明

cost函式形式 簡單回顧一下幾個變數的含義 表1 cost函式解釋 x i 每個樣本資料點在某乙個特徵上的值,即特徵向量x的某個值 y i 每個樣本資料的所屬類別標籤 m樣本資料點的個數 h x 樣本資料的概率密度函式,即某個資料屬於1類 二分類問題 的概率 j 代價函式,估計樣本屬於某類的風險程...

Pytorch自動求解梯度

要理解pytorch求解梯度,首先需要理解pytorch當中的計算圖的概念,在計算圖當中每乙個variable都代表的乙個節點,每乙個節點就可以代表乙個神經元,我們只有將變數放入節點當中才可以對節點當中的變數求解梯度,假設我們有乙個矩陣 1.2.3.4.5.6.我們將這個矩陣 二維張量 首先在pyt...

python 梯度法求解函式極值的例項

如下所示 coding utf 8 a 0.001 定義收斂步長 xd 1 定義尋找步長 x 0 定義乙個種子x0 i 0 迴圈迭代次數 y 0dic import math def f x y math.sin x 定義函式f x sinx return y def fd x y math.cos...