इस उत्तर का श्रेय टिप्पणियों से एंटोनी परेलाडा को जाता है, जो मुझे लगता है कि इस पृष्ठ पर एक अधिक प्रमुख स्थान के हकदार हैं (क्योंकि इससे मुझे तब मदद मिली जब कई अन्य उत्तर नहीं थे)। इसके अलावा, यह एक पूर्ण व्युत्पत्ति नहीं है, लेकिन के एक स्पष्ट कथन के अधिक है । (पूर्ण व्युत्पत्ति के लिए, अन्य उत्तर देखें)।∂J(θ)∂θ
∂J(θ)∂θ=1m⋅XT(σ(Xθ)−y)
कहा पे
X∈Rm×nσ(z)θ∈Rny=Training example matrix=11+e−z=sigmoid function=logistic function=weight row vector=class/category/label corresponding to rows in X
इसके अलावा, उन लोगों के लिए एक पायथन कार्यान्वयन जो के ग्रेडिएंट की गणना संबंध में करना चाहते हैं ।Jθ
import numpy
def sig(z):
return 1/(1+np.e**-(z))
def compute_grad(X, y, w):
"""
Compute gradient of cross entropy function with sigmoidal probabilities
Args:
X (numpy.ndarray): examples. Individuals in rows, features in columns
y (numpy.ndarray): labels. Vector corresponding to rows in X
w (numpy.ndarray): weight vector
Returns:
numpy.ndarray
"""
m = X.shape[0]
Z = w.dot(X.T)
A = sig(Z)
return (-1/ m) * (X.T * (A - y)).sum(axis=1)