3
  • 部分観測マルコフ過程で確率関数を実装するために多層NNを使用しようとしています。
  • NNへの入力は次のようになると思いました:現在の状態、選択されたアクション、結果の状態。出力は[0,1]の確率です(現在の状態で選択されたアクションを実行すると結果の状態につながる可能性があります)
  • トレーニングでは、前述の入力をNNにフィードし、すでに発生した各ケースのoutput=1.0を教えました。

問題:
ほぼすべてのテストケースで、出力確率は0.95に近いです。0.9未満の出力はありませんでした。ほぼ不可能な結果であっても、それはその高い確率を与えました。

PS:これは、起こったケースだけを教えたからだと思いますが、起こっていないケースは教えていません。しかし、エピソードの各ステップで、起こっていないアクションごとにoutput=0.0を教えることはできません。

この問題を克服する方法について何か提案はありますか?または、NNを使用したり、prob関数を実装したりする別の方法でしょうか?

ありがとう

4

2 に答える 2

2

問題は、すべての可能な次の状態の合計が 1 に等しくなければならないことです。そのようにネットワークを構築すると、それは保証されません。考えられる 2 つの選択肢が頭に浮かびます。ここでは、離散状態を想定しています。

  1. 予測を行うときは、考えられる次の状態ごとにネットワークを実行します。その後、すべての確率の合計で割って正規化します。
  2. 次の可能性のある状態ごとに 1 つの出力を使用します。次に、softmax レイヤーを (分類のように) 使用して、0 から 1 の範囲の値を解釈し、確率として合計して 1 にすることができます。

これら 2 つは、実際には数学的な観点からはほぼ同等です。

連続変数の場合、分布 (多変量ガウスなど) を仮定し、その分布のパラメーター (平均および共分散 stdev など) を出力として使用する必要があります。

于 2010-05-03T12:54:48.747 に答える
0

NNをフィッティングする場合、より広い範囲のデータをフィッティングしたい場合がありますが、トレーニングでは、0に近い確率でフィッティングしたいデータはありますか?そうでなければ、悪い結果が出るのではないかと思います。最初のステップとして、トレーニングデータセットでいくつかの異なるものを選択してみます。

また、NNをどのようにトレーニングしていますか?他の方法を使ってみましたか?活性化関数はどうですか、おそらくいくつかの異なるものを使って実験してください。

ニューラルネットを使用すると、モデルを選択する際の試行錯誤が役立つと思います。(これが十分に具体的でない場合は申し訳ありません。)

于 2010-05-01T16:39:51.723 に答える