コピー2022.12.16こんにちは、ヒガシです。このページでは、Tensorflow-Kerasにて構築したLSTMモデルの内部パラメータの持つ意味を実際のモデルを使いながら詳細解説していきます。このページを読めば、LSTMの内部構造を詳細把握できるはずです。内部パラメータを使ってLSTMの計算を実施してみるおわりにLSTMの重み、バイアスはどこに使われているのかまずはそもそもLSTMの重み&バイアスがどこで使われているのか、というところから説明していきます。以下がLSTMの模式図です。自分の理解で書いたのでよく出回っている画像と少し表現が違いますが、書いていることは同じはずです。今回着目したい重み&バイアスですが、上の画像でいうとW,Uが重み、bがバイアスです。boutという5種類の内部パラメータを有しているということになります。スポンサーリンクKeras-LSTMモデルの中身を見てみるそれではLSTMモデルの内部パラメータが何個あってどこで使われているのかがわかったところで、実際に学習済みのLSTMモデルの中身を見てみましょう。model.get_weights()で変数modelの内部パラメータを確認できます。5つのパラメータがそれぞれ出力されていますね。今回のモデルは、入力Xの次元=3、隠れ層hの次元=5、出力層の次元=1でモデルを構築してます。出てくるそれぞれのパラメータの大きは以下のようになっています。先ほども説明した通り、今回のモデルは、入力Xの次元=3、隠れ層hの次元=5、出力層の次元=1です。その数値が上記の重みの形にも表れていますね。持つ20とはなんなのか?次項ではこの数値について解説していきます。スポンサーリンクLSTMの内部パラメータの形についての解説それでは内部パラメータの形(大きさ)について説明していきます。出力層の次元をyuとした場合、それぞれのパラメータは以下の大きさで出力されることになっています。yu)bout_shape=(yu,)なに?この×4って。この×4について解説します。最初に紹介したLSTMの内部構造をおさらいです。cttという4つの中間パラメータを計算しています。cttという4つのパラメータを計算するために存在しています。具体的に説明すると以下の通りです。詳細は割愛しますが、Uもbも基本的には同じ考え方で分割されます。boutについては算出されたhtに使うだけなので説明は不要でしょう。スポンサーリンク内部パラメータを使ってLSTMの計算を実施してみるそれではここまでに紹介した知識を使い、LSTM内部の行列計算を実際に実演してみましょう。xdim)という次元でデータが格納されていることを前提に書いていきます。h=np.tanh(c)*otYt=np.dot(h,Wout)+boutこれで入力Xtを入れたときの出力Ytを算出可能です。詳細は前回記事にてご紹介していますのでこちらもあわせてご覧いただけると嬉しいです。【AI】学習済みLSTMモデルの内部計算をnumpyのみで再現する方法スポンサーリンクおわりにというわけで今回はTensorflow-Kerasを使って構築したLSTMモデルの内部パラメータの持つ意味とそれを使った内部計算の実施方法をご紹介しました。モデルの詳細理解にぜひご活用ください。仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。⇒興味をもった方は【ヒガサラ】で検索してみてください。確実にスキルアップできるはずです。最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。【AI】学習済みLSTMモデルの内部計算をnumpyのみで再現する方法こんにちは、ヒガシです。TensorflowやPytorchの環境下でAIモデルを構築しても、実際に運用する際にそれらの環境を準備できないことってよくありますよね。ディープラーニング内部の計算をエクセルを使って詳細解説!こんにちは、ヒガシです。今回はAIの中身について少し解説していこうと思います。データ数は多ければ良い?結論、場合によります。こんにちは、ヒガシです。この記事では、機械学習の教師データに関するお話をしていこうと思います。AIの内部で行っていることを初心者向けに詳細解説!画像認識のAIについて勉強してるんだけど正直なにをやっているかよくわからない。この記事では、こんな悩みを解決していきます。「画像認識のプログ...python【AI】ニューラルネットワークから重み、バイアスを取得する方法!こんにちは、ヒガシです。このページでは、Keras使って構築したAIモデル(ニューラルネットワーク)が保有する「重み」と「バイアス」をnumpyの配列として取得する方法をご紹介していきます。DDPGアルゴリズムの内部イメージを数式なしでざっくり解説!こんにちは、ヒガシです。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。ご指摘ありがとうございます。修正させていただきましました。【python-openCV】背景画像に別の画像を合成する方法!やぎ2023.05.29こんにちは。書く必要があると思います。【python-openCV】背景画像に別の画像を合成する方法!サトシ2023.05.11承知しました。アドバイス本当にありがとうございます。【VBA】大量のファイル名変更!指定したフォルダ内を一括操作!ヒガシ2023.05.11/はフォルダの階層が変わることを意味しますので使えません。substitute関数などを使って別文字に変換してから実行すると良いと思います。【VBA】大量のファイル名変更!指定したフォルダ内を一括操作!サトシ2023.05.10何度もすみません。/を使うと出来ないみたいです。2001-001-1/4とかにしたいのですが、ファイルが見つかりませんとかパスが無効ですとなります。検索タイトルとURLをコピーしました。