2017-07-12 15 views
-2

私のコードを修正し、トレーニングのために自分のデータを準備した後、私は2つの質問の前に自分自身を見つけました。Python Tflearnマシン学習オプティマイザ、損失とパラメータ

背景: Iは第2の最初の列と輻輳の日付(分ごとに1個のエントリ)からなるデータ(値は、0〜200)を有します。私の目標はニューラルネットワークにそれを供給し、次の週には毎分の輻輳を予測できるようにすることです(私のデータセットは10M以上のエントリーであり、トレーニングのためのデータ不足の問題はないはずです)。

問題: 私は今質問が2つあります。まず、損失、オプティマイザ、リニアについてです。ある程度の数があり、他のドメインよりも優れているドメインがあります。このドメインは、このプロジェクトでお勧めしますか? (現在、私のテストでは、Adamをオプティマイザとして使用し、mean_squareを損失として、アクティブにするための線形として)使用しています。

私の2番目の質問は私が持っているエラーによく似ています(間違った損失/オプティマイザを使って私にリンクされているかもしれません)。私のコード(今は10 000の訓練データ)を使用するとき、精度は0、低損失(0.00X)、悪い予測(現実に近いものでも)です。どこから来たのか分かりますか?

答えて

1

何をしようとしていることは、時系列予測(時間TNにデータを与え、T-(N + 1)... T-1:時の状態を予測トン)と呼ばれ、一般的ですリカレントニューラルネットワークのタスク。 Hereは、あなたが見ておくべき話題についてAndrej Karpathyが投稿した素晴らしいブログ記事です。あなたの二つの質問について

:非常に使用するどのようなオプティマイザの質問は、入力データに依存するため

  1. これは答えるのは難しいです。一般的に言えば、使用しているオプティマイザに関係なく、ネットワークは収束します。しかし収束に要する時間は異なります。 Adagrad、Adadelta、Adamのような適応学習率法は、収束をわずかに速くする傾向があります。 Hereは、さまざまなオプティマイザの優れた書き方です。

  2. 基本ニューラルネットワーク(MLP)は、時系列予測ではうまくいかない。これは、精度が低いことの説明になります。損失は​​、それは本当に損失の0ではありません0

+0

だろう、なぜしかし、私は知らない、ただの精度は(損失がちょうど低いです)、ここで私が得たものの一例です。 'トレーニングステップ:460 |総損失:0.00238 |時間:0.332秒 |アダム|エポック:006 |紛失:0.00238 - binary_acc:0.0000 - iter:8320/9999' –

+0

なぜバイナリ精度を使用していますか? 予測値が0〜200であるべきではありませんか? – Flomp

+0

私はそれがなぜこの1つを示すのかわかりません、予測される値は0と200の間でなければなりません(そして私が現在悪い結果があっても、それらは1以上です)。最後に「トレーニングステップ:7100 |総損失:0.00304 |時間:1.385秒 |アダム|エポック:100 |損失:0.00304 - binary_acc:0.0000 | val_loss:0.00260 - val_acc:0.0000 - iter:8999/8999' –

関連する問題