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) 
微積分学はそれほど得意ではないが、コスト関数の調整を試してみたいので、導関数を計算する方法を見つける必要があります...ルールのステップごとの説明を含む派生。