こんにちは。管理人のピヨ猫でーす。
今回はSONY neural network consoleでRNN(Recurrent Neural Network)を使う方法を紹介します。
ディープラーニングの手法の一つとしてRNN(Recurrent Neural Network)があります。RNN(Recurrent Neural Network)は回帰と呼ばれる手法で、過去のデータなどの連続したデータから将来(次にくるデータ)を予想する場合に利用します。
2019/3/30 コメント頂きまして以下の記載は削除します。
機械学習で出来ることは分類のみという解釈は誤りです。
機械学習で出来ることは、分類・回帰の2パターンです。このあたり、自分の中でもう少し理解を深めて、別途記事にします。
少し蛇足ですが、良くディープラーニングで出来ることは分類と回帰と言われます。
分類=CNN、回帰=RNNとも言われます。
違います。
ディープラーニングで出来ることは分類だけです。
CNNは畳み込みフィルタを用いることで部分部分の特長を掴んで分類する手法で、RNNは連続したデータに繋がりを持たせて分析をして分類する手法です。
セミナーなどではAIを知らない人に分かり易く説明するために分類と回帰(予想)が出来るという言い回しをしているのでしょう。その方が予想が出来るんだー。すげーってなりますから。
でも、機械学習で出来ることとできないことはしっかり押さえておいた方がよいです。
商品アイディアを考えるにも教師データを用意する上でも、ディープラーニングのネットワークを理解する上でも大切なので繰り返します。
・ ディープラーニングで出来ることは分類だけ
・ CNNは特徴を部分部分でつかんでデータを分類する手法
・ RNNは連続したデータの関連をつかんでデータを分類する手法
Neural Network ConsoleでRNNを実装するには、Neural Network Consoleのテンプレートのeleman_net.sdcprojを使うのが簡単です。
【eleman_net.sdcproj】
ちょっと難しそうですね。
RNNを理解してネットワークをカスタマイズしたい!!という方には上記を使うのがお勧めなのですが、もっとお手軽にやる方法が実はあります。
RNNを詳しく知りたい方はこちらの記事が参考になると思いますのでリンクを載せておきます。
実はNeural Network Consoleには複雑なRNNを一つにまとめたLSTMというユニットが用意されています。
LSTMユニットを用いると以下のシンプルなネットワークでRNNが実現できます。
入力層でデータを受けてLSTMユニットに渡してアファイン変換してシグモイド関数かえてOUTPUTするだけです。
- データセットの登録
詳しい話はこちらの記事を参照ください。
多次元配列の数値データのDataSetの作成方法2(X行X列のデータを定義する方法)
DataSetの自動グラフ化機能 - ネットワークの作成
入力層と出力層のサイズを学習データに合わせて変更するだけです。
- 学習開始
学習曲線はいい感じです。
VALIDATION ERRORが減らないので、的中率はあまり良くなさそうです。 - AI実行
あまり的中率は良くないですが予想はしてくれています。
これから精度があがる様に調整していきます。よーやく機械学習っぽくなってきました
◆ 推薦図書
![]() |
詳解 ディープラーニング TensorFlow・Kerasによる時系列データ処理 [ 巣籠 悠輔 ] 価格:3,672円 |
![]() |
【送料無料】 機械学習 データを読み解くアルゴリズムの技法 / 竹村彰通 【本】 価格:6,696円 |