HOME > natural science Laboratory > コンピュータ・シミュレーション講座 > ゼロから作るDeep Learning

【ニューラルネットワークの基礎研究28】
放物運動の現在の位置と速度から未来の位置と速度を学習

文責:遠藤 理平 (2018年5月22日) カテゴリ:ゼロから作るDeep Learning(44)

「解析解は得られないが数値解が容易に得られる系で、学習の成果を簡単に検証できる問題」として、空気抵抗力が存在する放物運動を対象として物理的な運動を学習させています。
・ここまでの学習でできることをまとめると以下のとおりです。
(1)軌跡から粘性抵抗係数を見積もることができる
(2)その粘性抵抗係数を用いて初速度と投射角度を与えるとその飛距離がわかる
→ その結果、最大飛距離となる初速度に対する投射角度を予測できる。

本稿では視点を変えて、粘性係数と現時点での位置と速度からその後の位置と速度を学習させてみます。

ニューラルネットワークの基本パラメータ

・ニューラルネットワークの構造:順伝播型ニューラルネットワーク(FFNN)
・学習方法:通常の勾配法(学習率固定、逆誤差伝搬法)
・学習率:eta = 0.01;
・ミニバッチ数:100 (サンプルは無限に用意できるためミニバッチという概念は存在しませんが、ランダムに用意したミニバッチ数分のサンプルに対する平均を用いて学習を進める)
・活性化関数(中間層):ReLU(ランプ関数)
・活性化関数(出力層):恒等関数
・損失関数:2乗和
※独立したネットワークを10個用意してそれぞれ個別に学習させて、学習効果の高かった上位5つの「学習回数」vs「損失値」をグラフ化します。

中間層2層のニューラルネットワーク(5-500-500-4)

0.1秒後

0.5秒後

1.0秒後

100,000回学習後のチェック

初速度20、粘性抵抗係数を1.0として、投射角度を15°、30°、45°、60°、75°の軌跡の数値計算結果(実線)と、初期状態からネットワークで計算した0.5秒ごとの位置をグラフ化した結果です。概ね数値解の上に乗っていることが確認できます。

考察と次の課題

・時間間隔が長くなるほど学習が難しくなっていく様子がわかります。
・次回は入力に時間間隔を入れてみます。

プログラムソース(C++)

http://www.natural-science.or.jp/files/NN/FFNNs_epoch_ProjectileMotion_AirResistance3.zip
※VisualStudio2017のソルーションファイルです。GCC(MinGW)でも動作確認しています。



▲このページのトップNPO法人 natural science トップ

関連記事

ゼロから作るDeep Learning







▲このページのトップNPO法人 natural science トップ