Courseraで機械学習のスタンフォードコースを受講しています。
コスト関数の導関数を取得しようとしましたが、まったく異なるものが得られました。
導関数はどのように取得されますか?
中間ステップはどれですか?
Courseraで機械学習のスタンフォードコースを受講しています。
コスト関数の導関数を取得しようとしましたが、まったく異なるものが得られました。
導関数はどのように取得されますか?
中間ステップはどれですか?
回答:
Andrew NgのCoursera Machine Learningコースのページ内の学生から提供されたメモ以外では利用できない(この派生を含む)コースのメモから修正されました。
以下では、上付き文字は個々の測定値またはトレーニングの「例」を示します。
シグモイド関数の導関数は
どこで
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)
微積分学はそれほど得意ではないが、コスト関数の調整を試してみたいので、導関数を計算する方法を見つける必要があります...ルールのステップごとの説明を含む派生。