2017-10-07 12 views
-1

勾配降下(エラーでテスト差)が高い

だから私は1つのY出力と、いくつかのX入力で設定されたサンプルデータの勾配降下アルゴリズムを実行するプログラムを作成しようとしています。ユーザに、エラーに基づいて係数を更新する「エポック」の数を設定させるのではなく、古いエラーに対して更新されたエラーを反復的にテストし、差のレベルがある公差を下回ったときに機能を停止するおそらくユーザーによって設定されます)。これについて正しいことをしていますか?もしそうなら、古いエラーと新しいエラーとの違いを数値化するための最良の方法は何でしょうか?

私はこれを、Pythonでのデータプログラミングのコースの一環として行っています。

ヒントありがとうございます。あなたはミニバッチ勾配法で最適化されたときに訓練誤差が各反復の後、通常は安定していない、または確率的勾配降下または他のアルゴリズムが依存

:私がいることを指摘したいと思い

おかげ

答えて

0

バッチサイズ あなたのアプローチは、早期停止または無限ループにつながる可能性があります。

しかし、Batch Gradient Descentを使用している場合は、あなたのアプローチがうまくいくと思います。

編集:

確率GDはバッチGDに、あなたがトレーニングセット内のすべてのサンプルのためのエラーや卒業生を計算しながら、あなたは、一度に一つのサンプルのエラーと勾配を計算することを意味します。

BatchGDの欠点は、トレーニングセット全体で何度もグラジエントを計算する必要があることです。

あなたのf値について:私はあなたが鞍点(あなたの機能がフラットな場所)にこだわることができると思います。それでも、このアプローチを実装する場合https://en.wikipedia.org/wiki/Saddle_point

はしかし、私はあなたの「新しい」エラー(または新しいF値)は一つの「古い」の後10のまたは20のステップされるべきだと思います。

+0

ありがとうございます。私は、私の経験が確率論的バッチとバッチgdの違いを知る限りではないのではないかと心配しています。あなたは詳しく説明できますか?私の訓練データにはy変数を持つ2つの変数があり、私はf値を使うことを考えていました。 – Thomas

関連する問題