#求函式的梯度,也就是所有偏導的組合
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...