2017-05-08 7 views
0

Q:Tensorflow RNNは、Elman Networkの非表示状態を実行するために実装されていますか?

enter image description here enter image description hereTensorflow RNNはElmanネットワークを完全に実装していますか?

cells = tf.contrib.rnn.BasicRNNCell(4) 
outputs, state = tf.nn.dynamic_rnn(cell=cells, etc...) 


私はTFのRNNに新しい静かで出力の意味、および状態について興味があります。 私はスタンフォードのテンソルフローチュートリアルに従っていますが、ここでは詳しく説明していないので、ここで尋ねています。 テストの後、stateはシーケンス計算後の隠れ状態であり、outputsは各タイムステップ後の隠れ状態の配列であると思います。

ですので、わかりやすくしたいと思います。出力と状態は隠れた状態ベクトルなので、Elmanネットワークを完全に実装するには、画像内にV行列を作成し、行列の乗算をやり直さなければなりません。私は正しいですか?

+0

ありがとう、なぜRNNCell output_sizeとstate_sizeプロパティがありますか?違いは何ですか? – amityaffliction

+0

出力に行列乗算はありません。また、BasicRNNCellの状態サイズと出力サイズは同じです(これは、例えばLSTMセルの場合は当てはまりません)。 –

答えて

0

私はあなたが中間状態と出力の出力が何であるかを尋ねていると思います。

私が理解しているところでは、状態は畳み込み/シーケンス計算後の中間出力であり、隠されているので、理解は正しい方向です。

出力は、ネットワークモデルの実装方法によって異なる場合がありますが、一般的には、操作(コンボルーション、シーケンス計算など)が適用された後にアクティブ化&ダウンサンプリング/プーリングが適用された配列ですその層全体にわたって識別可能な機能に集中することができます。

Colahのブログ(http://colah.github.io/posts/2015-08-Understanding-LSTMs/)から:

最後に、我々は、出力しようとしているかを決定する必要があります。この出力はセルの状態に基づいていますが、フィルタリングされたバージョンになります。まず、出力するセル状態のどの部分を決定するシグモイド層を実行します。次に、セル状態をtanhtanhに入れ(値を-1-1と11の間にプッシュして)、シグモイドゲートの出力でそれを掛けて、私たちが決定した部分だけを出力します。

言語モデルの例では、被験者が見えただけで動詞に関連する情報を出力したい場合があります。例えば、被験者が単数形であるか複数形であるかを出力して、次に動く場合に動詞をどの形に結合するかを知ることができます。

これが役に立ちます。

関連する問題