Coursera ML-最適化アルゴリズムの選択は、マルチクラスロジスティック回帰の精度に影響しますか?
最近、Pythonを使用したCourseraでのAndrew Ngの機械学習の演習3を完了しました。 演習のパート1.4から1.4.1を最初に完了すると、トレーニング済みモデルが予想される94.9%に一致する精度を持っていることを確認するのが困難になりました。デバッグして、コストと勾配関数にバグがないこと、および予測子コードが正しく機能していることを確認した後でも、精度は90.3%しかありませんでした。で共役勾配(CG)アルゴリズムを使用していましたscipy.optimize.minimize。 好奇心から、別のアルゴリズムを試すことにし、ブロイデン-フレッチャー-ゴールドファーブ-シャノン(BFGS)を使用しました。驚いたことに、精度は大幅に96.5%に向上し、予想を上回りました。これら2つの異なる結果のCGとBFGSの比較は、ノートブックのヘッダー「最適化アルゴリズムの違いによる精度の違い」の下で確認できます。 最適化アルゴリズムの選択が異なるため、この精度の違いの理由はありますか?はいの場合、誰かが理由を説明できますか? また、これを引き起こしている関数にバグがないことを確認するためだけにコードをレビューしていただければ幸いです。 ありがとうございました。 編集:ここで、読者にJupyterノートブックへのリンクを紹介するのではなく、このページで行うコメントのリクエストに、質問に含まれるコードを追加しました。 モデルのコスト関数: def sigmoid(z): return 1 / (1 + np.exp(-z)) def compute_cost_regularized(theta, X, y, lda): reg =lda/(2*len(y)) * np.sum(theta[1:]**2) return 1/len(y) * np.sum(-y @ np.log(sigmoid(X@theta)) - (1-y) @ np.log(1-sigmoid(X@theta))) + reg def compute_gradient_regularized(theta, X, y, lda): gradient = np.zeros(len(theta)) XT = X.T beta …