\Bigr)$も計算されます。Embedレイヤより先はないので、Noneを返します。入力データの勾配は返しません。\mathbf{h}_{T-1}}$をEncoderの$T-1$番目のLSTMレイヤに入力します。以上が学習時に行う処理です。最後に、文章生成の処理を確認します。7.1節のときは、求めた確率分布に従い「確率的に」単語を生成しました。7.3節では、確率分布の最大値に従い「決定的に」単語を生成します。x_{0,T-1})$を入力した場合を想定します。これは足し算データセットでいうと、1つの式(例えば$71+118$)を文字IDで表したものです。h_{0,H-1}^{(T-1)})$がDecoderに入力します。Encoderの隠れ状態$\mathbf{h}_{T-1}$を簡易的に作成して、TimeLSTMクラスのset_state()メソッドに渡してインスタンス変数に保存します。10)データ数(バッチサイズ)が1の場合でも、2次元配列である必要があります。文章生成では、時刻0のデータ$x_{0,0}$のみをDecoderに入力します。これは7.1節で、最初の単語を指定したの同じです。足し算データセットの場合は、区切り文字_の文字IDのみを入力します。指定した単語に連ねて生成する単語数を指定します。足し算データセットの場合は、x_test・t_testの列数5から区切り文字を除いた4です。4ちなみに、区切り文字の文字IDは6です。指定した個数の文字ID(単語ID)をサンプリングしてsampledに格納していきます。sampledが、エンコードされた足し算の式の情報$\mathbf{h}_{T-1}$から求めた解答になります。$\mathbf{h}_{T-1}$の他には情報がない区切り文字しか与えていないため、足し算の式(時系列データ)を足し算の答(時系列データ)に変換したことになります。この例では7.1節の文章生成とは違い、最初に入力する文字(単語)は区切り文字であり不要な情報です。そこで、start_idはsampledの初期値には含めません。サンプリングしない単語も指定しないため、while文ではなくfor文で指定した回数繰り返します。足し算の答を得ることを想定すると、生成するデータ(文字)に確率的な揺らぎは必要なく、一番可能性の高いデータ(文字)を選びたいところです。そこで、確率が最大の文字IDを選ぶことにします。スコアを正規化しても大小関係は変わらないのでした。スコアが最大の要素が、確率が最大の要素です。よって、スコアが最大の文字を次の文字として選びます。scoreから値が最大の要素のインデックスをnp.argmax()で調べて、そのインデックスをサンプリングした文字IDとします。サンプルを保存サンプリングされたデータを確認しましょう。7]_999これが変換後の時系列データです。id_to_charは、7.2.4項の足し算データセットを読み込む必要があります。ここでは学習を行っていないので、結果はデタラメです。以上がDecoderで行う処理です。実際に足し算データセットを利用した処理は次項で行います。処理の確認ができたので、Decoderをクラスとして実装します。sampledTimeEmbedクラスの逆伝播メソッドbackward()はNoneを返します。よって、Encoderの逆伝播メソッドbackward()もNoneを返します。実装したクラスを試してみましょう。簡易的な入力データ$\mathbf{xs}$と、Decoderのインスタンスを作成します。4)順伝播を計算します。13)「Decoderの入力データ$\mathbf{xs}$」と「エンコードされたEncoderの入力データの情報$\mathbf{h}_{T-1}$」から、スコア$\mathbf{ys}$が得られました。Lossレイヤに入力して損失$L$を求めます。\mathbf{ys}}$を簡易的に作成して、逆伝播の計算を行います。より、それぞれ勾配を用いてパラメータを更新します。\mathbf{h}_{T-1}}$が得られました。これをEncoderに入力します。最後に、文章生成を行います。_66学習を行っていないので、この結果はデタラメです。文字ID5は(空白)なので、sampledの要素数と変換後の文字数が一致しないように見えるかもしれません。以上でEncoderとDecoderを実装できました。オライリー・ジャパン,2018年.おわりに前項とこの項をやったのなら次も一緒にやっちゃいましょう。00:04何かおかしな内容があれば、ご指摘いただけるととても嬉しいです。【R】円周の作図5.3:正射影ベクトルの導出【『スタンフォード線形代数入門』のノート】スポンサーリンクはてなブログをはじめよう!anemptyarchiveさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。