様々な識別機による順解析、ハイパーパラメータのベイズ的最適化、 ベイズ最適化による実験計画・逆解析、様々な変数削減モジュール
2018 年 7 月 17 日改訂
AI 搭載材料情報統合システム”rMIPHA”
取扱説明書
R version of Materials Genome Integration System for Phase and Property Analysis
rMIPHA 利用マニュアル
概要:説明変数の削減機能(赤池情報量域準 AIC・lasso による変数選択、主成分分析・オートエンコーダ ーによる次元削減)、各種識別器(ANN,SVR,RandomForest,重回帰)による機械学習モデルの構築、 GridSearch/ベイズ的最適化による識別器のハイパーパラメータの最適化、新規データに対する特性推定、 ベイズ最適化を使った逆解析による最高出力(特性)を得るための最適入力因子(組織)の提案、トレード オフの関係にある 2 目的変数のバランス最適化探索の一貫解析が可能です。 1.はじめに ①以下のサイトから R をインストールしてください。 https://cran.ism.ac.jp/ ②以下のサイトから RStudio をインストールしてください。 https://www.rstudio.com/products/rstudio/download3/ ③ rMIPHA(圧縮ファイル)をダウンロード後、解凍してください(解凍にはパスワードが必要です)。 C:\Users\ユーザー名\Documents に”R”というフォルダを作成し、rMIPHA.R を C:\Users\ユーザー名 \Documents\R に保存して下さい。(ここではとします。) 2.データの準備 データは下記のように最右列を目的変数としてください。(目的変数が二つあり、その積と説明変数間 の関係モデルを作る場合は、右二列を目的変数としてください)最上段の行は変数のラベル名(英語) としてください。 3.rMIPHA の起動とデータの読み込み ①RStudio を起動してください。R の更新に伴って、以降使うパッケージを更新する必要がある場合があり ます。PackageUpdate Select All にチェックを入れた後、Install Updates を選択するとアップデートが 始まります。②今後結果の保存に使うフォルダをツールバーの Session Set working directory Choose directory で してしてください。この作業を毎回するのが面倒な場合は、次のサイトを参照してください
http://bokuranotameno.com/post-8921/)
③Rstudio の Open file より、rMIPHA を開いてください。その後、以下のいずれかの操作を行うとプログ ラムが稼働します。 (その1)Source 画面にマウスを持って行ったあと、Crt+A を押してコードを全指定してください。そ の後、Run を実行するとコードが読み込まれます。 (その2)Source をクリックしてください。 いずれの場合も、途中で、以降の解析に用いるデータファイルを指定するウィンドウが開きますので指 定してください(データファイルを指定するウィンドウは操作画面の背後に隠れている場合があります ので、確認してください)。なお、必要なパッケージは自動インストールされます(ネット接続が必要で HvF HvM VMM f h v e s 200 540 36.33502 0.002904 0.038129 4.97E-05 0.002039 473.5385 200 540 36 33502 0 00112 0 038129 4 97E-05 0 009981 664 8145 説明変数 目的変数
す)。 ④Console 画面に下記のメニューが表示されます。 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && rMIPHA &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&
menu: 0:Read data, 100:Modify original data
1:AIC/BIC, 2:lasso, 3:PCA, 4:Autoencoder 5:Accuracy_SUM
6:GS->ANN, 7:BO->ANN->Inverse analysis*$, 8:ANN 9:GS->SVR,10:BO->SVR->Inverse analysis*, 11:SVR 12:GS->RF, 13:BO->RF->Inverse analysis*, 14:RF 15:Multiple regression
16:Output prediction by tuned model** 200:help ************************************************************** option modules 300:PCA$$,301:Autoencoder$$,302:Inverse_PCA ************************************************************** 1000:Exit &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&
If no remarks, the last row in dataset is assumed to be an objective varible. *Input variable(s) in code must be changed for each data in advance.
$ From One upto thress objective variable(s)(The last, last two, last three row(s))
Inverse analysis to obtain MAX output value or MIN difference value from specific value. **One of processes 6~15 must be performed in advance.
$$ Explanatory variables are selected in process.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && 注意:特に注意事項がない限り、目的変数は最終列と認識されます。 4.メニュの内容 0.データの選択 以後、メニューの様々な解析はここで作成した新しいデータセットに対して実施され ます。 100.元データの説明変数を選択するか、もしくは2つの主成分を抽出して、選択した説明変数 or 2 主成分 と当初の目的変数(最終列)で構成される新たなデータセットが作成されます。以後、メニューの様々 な解析はここで作成した新しいデータセットに対して実施されます。元データは置換されますので注意
してください。
1,赤池情報量基準(AIC)及びベイズ情報基準(BIC)による最適な説明変数の組み合わせを示します(結果は Console 画面に表示)。A1 対象データは初めに読み込んだデータです。
その後、AIC/BIC による説明変数の重要度評価結果に基づいて、説明変数を選択して、ANN 解析するか どうかの問い合わせ画面が出るので、ANN 解析を引き続いて行う場合は 1:ANN using selected descriptors を選択後、続く画面で説明変数を 2,3,7 などのように指定(注意:”,”カンマを数時間に挿入 してください)すると指定した説明変数と、当初の目的変数(最終列)間の関係を ANN 解析します。 なお、説明変数を選択したデータは本メニューでのみ適用され、最初に選択した元データは保持されて おり他の解析には元データが適用されます。 2.lasso による説明変数の重要度を評価します(結果は plots 画面に表示)。A1 対象データは初めに読み込 んだデータです。 その後、lasso による説明変数の重要度評価結果に基づいて、説明変数を選択して、ANN 解析するかど うかの問い合わせ画面が出るので、ANN 解析を引き続いて行う場合は 1:ANN using selected descriptors を選択後、続く画面で説明変数を 2,3,7 などのように指定すると指定した説明変数と、当初の目的変数 (最終列)間の関係を ANN 解析する。なお、説明変数を選択したデータは本メニューでのみ適用され、 最初に選択した元データは保持されており他の解析には元データが適用される。 3.説明変数を正規化後主成分分析し、次いで自動で、正規化した目的変数を順解析する ANN モデルを作成 します。対象データは初めに読み込んだデータです。ANN ハイパーパラメータの size,decay はデフォ ルト値(5,0.1)がそれぞれ設定されています(ここではベイズ最適化はしていません)。本モジュールでは、 最右列を目的変数と自動認識します。以下の画面が出ますので、主成分の数を指定する場合は 1.を選択 し(PCA データはここで選択した主成分の数に応じて pcadata2,pcadata3,pcadata4.のように指定したフ ォルダに保存されます。最終列は目的変数です。)、主成分 2~7 の場合の解析を一度に実施する場合は 2. を選択してください(結果は、同様に主成分の数に応じて pcadata2,pcadata3,pcadata4.のように指定した フォルダに保存されます。最終列は目的変数です。)。下記の 0.を選択するとメインメニューに戻ります。 4.説明変数を正規化後オートエンコーダ分析し、次いで自動で、正規化した目的変数を順解析する ANN モデルを作成します。ANN ハイパーパラメータの size,decay はデフォルト値(5,0.1)がそれぞれ設定さ れています(ここではベイズ最適化はしていません)。対象データは初めに読み込んだデータです。以下
の画面が出ますので、オートエンコーダ主成分 2~7 の場合の解析を一度に実施する場合は 1.を選択し て く だ さ い ( 結 果 は 、 主 成 分 の 数 に 応 じ て AutoEncode_hidden2.csv, AutoEncode_hidden3.csv, AutoEncode_hidden4.csv.のように指定したフォルダに保存されます。最終列は目的変数です。)。下記の 0.を選択するとメインメニューに戻ります。目的変数は最終列と認識されます。 5.ニューラルネット、サポートベクター、ランダムフォレスト、重回帰の精度比較(ハイパーパラメータの 最適化はベイズ的最適化で実施されます)実験結果と推定結果の関係を RMSE(小さいほどモデル精度 良い)および相関係数(大きいほど精度良い)で表示します。また精度比較の総括グラフを表示します。 目的変数は最終列と認識されます。 6~8.ニューラルネットワークによる順解析モデルの作成(学習率:0.01 に固定、ハイパーパラメータは隠 れ層のノード数(Size)、重み減数率係数(decay)) 荷重結合係数(k(1)m,k(2)m…)が自動算出され、 Console 画面に表示されます。説明変数が目的変数に及ぼす影響度を表しています。A2 6,8 では、目的変数は最終列と認識されます。7.では目的変数列の数(1~3)を指定します。 6.グリッドサーチによるハイパーパラメータの最適化後、ニューラルネットモデルを作成します。 目的 変数は最終列と認識されます。 7.目的変数の数を尋ねる画面が現れるので 1~3 を入力すると、ベイズ的最適化によるハイパーパラメー タの最適化後、ニューラルネットモデルを作成します(デフォルト設定では、ベイズ最適化の初期デー タ数 20、探索回数 10 回の設定となっている。コード中のデフォルト値を書き換えることにより設定変 更可能。下記参照) その後、逆解析の実施を問う画面が表示されるので実施する場合は選択する。逆 解析時の識別器のハイパーパラメータはベイズ最適価値が使われます。逆解析では、目的変数最大化、 指 定 し た 目 的変 数 値 に最 も 近 く な る説 明 変 数の 探 索 を 行 いま す 。 説明 変 数 は デ フォ ル トで は、”HvM”,”VMM”,”e”の三つの設定になっています(この説明変数及びその数を変更する方法につい ては、下記の“説明変数を変更あるいは数を増やす方法”を参照してください。多目的変数の場合の逆解 析では、その積の最大値あるいはその積に最も近くなる説明変数を探索します。(複数の目的変数対応、 指定値に最も近くなる説明変数の探索機能は、ニューラルネットワークを使った逆解析のみの機能で、 以下のランダムフォレスト、サポートベクター回帰では実装していません)。逆解析結果は Plots 画面に 表示されるとともに、Console 画面中に”Best Parameters Found”として最適解が表示されます。
逆解析のベイズ的最適化の初期観測数と繰り返し数は上記とは別に設定する。デフォルト値は下記の通 り。
“説明変数を変更あるいは数を増やす方法”
変更する時:RStudio で edit-->replace&find 機能(Whole word にチェック)で入力変数をデータに応じ て一括変換してください(例:HvM temp に変更)。逆解析する説明変数の数を増やすときは下記の例 を参照してください。 変数を増やす時:説明変数に f,h を追加する場合 (注意)説明変数が 4 以上になると図にはすべての 説明変数はプロットされません。 8.予めコード中に設定したハイパーパラメータを使ったニューラルネットワークモデルの作成。(デフォル ト:size=5, decay=0.1) 目的変数は最終列と認識されます。 9=11. サポートベクター回帰による順解析モデルの作成(ε0.01 に固定、ハイパーパラメータは gamma、 cost) 9.グリッドサーチによるハイパーパラメータの最適化後、SVR モデルを作成します。 目的変数は最終列 と認識されます。 10.ベイズ的最適化によるハイパーパラメータの最適化、SVR モデルを作成します。(デフォルト設定では、 初期データ数 20、探索回数 10 回の設定となっている。コード中のデフォルト値を書き換えることによ り設定変更可能)その後、逆解析の実施を問う画面が表示されるので選択する。逆解析時の識別器のハ イパーパラメータはベイズ最適価値が使われます。多目的変数の場合はその積の最大値を探索します。
逆解析結果は Plots 画面に表示されるとともに、Console 画面中に”Best Parameters Found”として最適 解が表示されます。 目的変数は最終列と認識されます。 11.コード中に指定したハイパーパラメータを使った SVR モデルの作成(デフォルト:gamma=0.25, cost=2)目的変数は最終列と認識されます。 12~14.ランダムフォレスト回帰による順解析モデルの作成(ハイパーパラメータは mtry, ntree=800) 12.グリッドサーチによるハイパーパラメータの最適化後、RF モデルを作成します 目的変数は最終列と 認識されます。 13.ベイズ的最適化によるハイパーパラメータの最適化後、RF モデルを作成します(デフォルト設定で は、初期データ数 20、探索回数 10 回の設定となっている。コード中のデフォルト値を書き換えること により設定変更可能)その後、逆解析の実施を問う画面が表示されるので選択する。逆解析時の識別器 のハイパーパラメータはベイズ最適価値が使われます。多目的変数の場合はその積の最大値を探索しま す。逆解析結果は Plots 画面に表示されるとともに、Console 画面中に”Best Parameters Found”として 最適解が表示されます。目的変数は最終列と認識されます。 14.コード中に指定したハイパーパラメータを使った RF モデルの作成(デフォルト:ntree=800, mtry=7) 目的変数は最終列と認識されます。 15.重回帰 目的変数は最終列と認識されます。 16. 6~15 で直前に作成した順解析モデルを使って、新規データより目的変数を推定。データを指定するよ う促されますので、指定してください。説明変数を問う画面が途中で出ますので、2,3,7 のように指定し てください。 200:マニュアルの表示 300.主成分分析による説明変数の次数削減(結果は plots 画面に表示されるとともに、pcadata.csv として 指定したフォルダに保存)A1 途中で、①説明変数を問う画面が出ますので、2,3,7 のように指定してください。次いで、新しいデータ セットを上記データセットと併せて PCA 分析するかどうか問う画面が表示されるので、する場合は新 しいデータセットを読み込んで解析を進めてください。なお、説明変数は上記①で指定したものと同じ 変数としてください。Console 画面には主成分座標系(PC1,PC2)で各データ間の距離が表示されます。 この距離が近いほど、データが類似しているということを意味します。なお、重複データがある場合、 最初の行のみ採用され PCA 解析されます。結果の図には、重複データ削除前後の行番号を示した図面 が二枚出力されます 301.オートエンコーダによる説明変数の次数削減(結果は plots 画面に表示されるとともに、 AutoEncoder_hidden.csv として指定したフォルダに保存)A1 途中で、説明変数を問う画面が出ますので、2,3,7 のように指定してください。 オートエンコーダの解析結果は、オートエンコーダのハイパーパラメータの影響を大きく受けます。デ フォルト設定は以下のようになっており、適宜変更してください。
nl=3 ## number of layers (default is 3: input, hidden, output) unit.type = "tanh" ## specify the network unit type, i.e., the unit's ## activation function ("logistic" or "tanh")
Nx.patch=ncol(EV) ## width of data Ny.patch=1 ## height of data
N.input =Nx.patch*Ny.patch ## number of units (neurons) in the input layer (one unit per pixel) N.hidden = 2 ## number of units in the hidden layer
lambda = 0.0001 ## weight decay parameter beta = 6 ## weight of sparsity penalty term
rho = 0.3 ## desired sparsity parameter Remarkable effect!! epsilon <- 0.001 ## a small parameter for initialization of weights ## as small gaussian random numbers sampled from N(0,epsilon^2) max.iterations = 2000 ## number of iterations in optimizer
302:学習データで主成分分析した結果をもとに、新たな PCA データ(軸)をもとのデータ(軸)に戻す。 主成分の数(最大 6)を自動判別し、元のデータに戻す。
Appendix
A2:荷重結合係数
MIPHA シリーズには現在、MIPHA と rMIPHA(本ソフト)が存在します。二つのソフトの特徴は以下 の通りです。(MIPHA のウェブサイト: http://www.numse.nagoya-u.ac.jp/3DAI/MIPHA/index.html) 表 MIPHA と rMIPHA の機能の比較 MIPHA rMIPHA 言語 Visual basic R 画像認識 〇(ディープラーニング) ✖ 機械学習型画像処理 〇 ✖ 2D 特徴値解析 〇 ✖ 3D 特徴値解析 〇 ✖ 順解析 識別器 〇(ANN) 〇(ANN,SVR,RF,重回帰) ハイパーパラメー タの自動最適化 ✖ 〇(ベイズ的最適化) 逆解析 探索方法 〇(遺伝的アルゴリズム) 〇(ベイズ的最適化) 多目的変数対応 〇(二目的変数、和・積選択 可、最大値・最小値・目的値探 索可)) 〇(三目的変数、積、最大値・ 目的値探索可) スパース 学習 変数選択 データ変換・変数選択 ANN 感度係数法 AIC/BIC lasso ANN 荷重結合係数評価 RF IncNodePurity 変数次数削減 ✖ 主成分分析 オートエンコーダー(自己符号 化器)
本材料情報統合システム”rMIPHA”は開発途上のソフトウェアであり、一部バグ などの不具合を含む可能性がある。本ソフトを使用して得た結果については、開発 元は一切の責任を負わない。自己責任で使用していただくことをご理解下さい。 開発者 名古屋大学大学院工学研究科材料デザイン工学専攻 計算材料設計講座構造形態制御工学研究室 足立 吉隆