SSブログ

【Neural Network Console】LSTMを理解するため Elman_net を理解する [AI]

組込AIだと、時系列データを処理することが多いので、時系列データを扱えるニューラルネット "LSTM" について、NNCのソニー小林師匠の動画を見て勉強しました。





NNCは動画が充実していて本当に助かります。NNL (Nnabla) はもう少しなんとかならんですかねぇ…

で、この動画で、 LSTM を理解するには、Elman_net を理解するのがよろし!と師匠が言っているので、Elman_net を試してみました。見よう見真似で組んでみたネットワークがこちら。


2020-06-24.png


ここで、"RecurrentInput", "Slice" といったレイヤーが新顔なのでちょっと戸惑います。

■ ReccurentInput の説明
ReccurentInput は、Reccurent Neural Network のループの開始位置を指定します。
Axisは Time ループの軸を指定し、Time ループは Axis で指定された軸の長さになります。


(1,28,28) の長さの画像は 各行 (1,28) の一次元データを28回ループする形になりますので、Axis は "1" を指定します。

■ Slice の説明
Slice は配列の一部を抜き出します。

Start抜き出す配列の開始位置を指定します。
Stop抜き出す配列の終了位置を指定します。
Step抜き出す配列の間隔を指定します。 例えば、"3, 48, 64" の画像の中心 "24 x 32" の縦横2ピクセル毎を抜き出す場合、 開始位置 "0, 12, 16" 、終了位置 "3, 36, 48" 、間隔"1, 2, 2" を指定します。


ここでは最終結果の一次元の28個の数列の結果、 "1, 1, 28" のデータが取り出せればよいので、開始位置は "0, 27, 0"、終了位置は ”1, 28, 28" を指定します。

テスト用のデータセットは、MNIST の ”4,9” 判別用のデータセットを使ってみました。学習の結果です。


2020-06-23 (1).png


多少ばらついていますが、収束しているようです。結果を見てみます。


2020-06-23 (2).png


だいたい93%といったところですね。
一通り動かすことができたので、なんとなく理解が深まりました。

と、ここまでは教えてもらったことを試してみただけなので、あまり面白くありません。

せっかくなら Elman_net の各時間軸の出力結果を画像にして出力してみたいと思います。試しに次のようなネットワークを組んでみました。


2020-06-23 (3).png


学習をさせてみると綺麗な曲線となりました。これは結果が期待できます。


2020-06-23 (4).png


こちらが出力結果です。


2020-06-23 (5).png


おお、なかなかよい感じで出力が得られました。NNCだとこのようなことも簡単に試せるのでいいですね。 😀
(^^)/~





ソニー開発のNeural Network Console入門【増補改訂・クラウド対応版】--数式なし、コーディングなしのディープラーニング

ソニー開発のNeural Network Console入門【増補改訂・クラウド対応版】--数式なし、コーディングなしのディープラーニング

  • 出版社/メーカー: リックテレコム
  • 発売日: 2018/11/14
  • メディア: 単行本(ソフトカバー)



はじめての「SonyNNC」 (I・O BOOKS)

はじめての「SonyNNC」 (I・O BOOKS)

  • 作者: 良一, 柴田
  • 出版社/メーカー: 工学社
  • 発売日: 2019/08/01
  • メディア: 単行本



Excelでわかるディープラーニング超入門【RNN・DQN編】

Excelでわかるディープラーニング超入門【RNN・DQN編】

  • 出版社/メーカー: 技術評論社
  • 発売日: 2019/05/10
  • メディア: 単行本(ソフトカバー)




nice!(26)  コメント(0) 
共通テーマ:趣味・カルチャー

nice! 26

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。