1. pinaxスタートガイド: 解析事例_機械学習モデルの構築
1.1. 概要
本資料はpinaxシステムを利用し始めるための基本的手順の学習を目的としています。
ログインや作業環境準備についての解説から初め、機械学習モデルを構築する事例を実際に追試することにより、pinax(DaaS)における基本的な解析作業の流れを習得します。
実際の解析作業手順へのリンク
1.4. 作業準備
1.5. データの解析と機械学習モデルの構築
1.6. モデルをpinaxに取り込む
1.2. ログイン
1.2.1. DICEアカウント保有者のログイン
※NIMSアカウントでログインする場合、 NIMSアカウント保有者のログイン をご参照ください。
「DICEアカウントでログイン」をクリックします。
図 1.1 アカウント種別選択
DICEアカウントとして登録したメールアドレスを入力して「Next」をクリックします。
図 1.2 DICEアカウントメールアドレス入力
パスワードを入力して「Next」をクリックします。
図 1.3 DICEアカウントパスワード入力
pinaxトップ画面が表示されます。続けて、 プロジェクトポータルへの移動 に進んでください。
1.2.2. NIMSアカウント保有者のログイン
※DICEアカウントでログインする場合、 DICEアカウント保有者のログイン をご参照ください。
「NIMSアカウントでログイン」をクリックします。
図 1.4 アカウント種別選択
表示される認証画面に応じて必要な情報を入力してください。
pinaxトップ画面が表示されます。
1.3. プロジェクトポータルへの移動
1.3.1. pinax権限「一般ユーザ」の場合
トップ画面から「プロジェクト一覧」をクリックします。
図 1.5 トップ画面 - プロジェクト一覧選択
Tip
複数のプロジェクトに所属している場合、プロジェクト一覧画面が表示され、所属しているプロジェクトが全て表示されます。
1つのプロジェクトにのみ所属している場合は、プロジェクトポータル画面が表示されます。
図 1.6 プロジェクト一覧画面が表示される場合
注釈
プロジェクトに所属していない場合、プロジェクト一覧に「該当するデータが見つかりませんでした。」と表示されます。
pinaxにおいては、1つ以上のプロジェクトに所属しない限り作業を行うことができないため、ご自身のアカウントをプロジェクトに所属させるよう、テナント/プロジェクト管理者に連絡してください。
図 1.7 プロジェクト一覧パネルにプロジェクトが表示されない場合
作業セットを作成するプロジェクトの「ポータルへ」をクリックして、プロジェクトポータル画面に移動します。
図 1.8 プロジェクトポータル画面
1.3.2. pinax権限「テナント/プロジェクト管理者」の場合
※該当しない場合、 作業準備 に進んでください。
トップ画面から「テナント一覧」をクリックします。
図 1.9 トップ画面 - テナント一覧選択
テナント一覧画面が表示されます。
テナント一覧にテナント情報が表示されます。
テナント検索条件のテナント名を入力して「検索」をクリックすることで、テナント一覧にテナント情報を表示することもできます。
テナントを編集する場合、またはテナントの詳細を確認する場合は、「編集」をクリックしてテナント詳細画面を表示します。
テナントを編集しないでプロジェクト一覧を表示する場合は、「プロジェクト一覧」をクリックします。
図 1.10 テナント一覧画面
テナント詳細画面のテナント説明を編集して「保存」をクリックします。
図 1.11 テナント詳細画面
プロジェクト一覧画面が表示されます。
プロジェクト一覧にプロジェクト情報が表示されます。
プロジェクト検索条件のプロジェクト名を入力して「検索」をクリックすることで、プロジェクト一覧にプロジェクト情報を表示することもできます。
新規プロジェクトを登録する場合は「新規登録」をクリックします。
プロジェクト一覧に表示されたポータルに入る場合は、「ポータルへ」をクリックします。
図 1.12 プロジェクト一覧画面
プロジェクト一覧画面で「新規登録」をクリックするとプロジェクト詳細画面が開きます。
必要事項を入力して「登録」をクリックします。
図 1.13 プロジェクト詳細画面
プロジェクト一覧画面で「ポータルへ」をクリックするとプロジェクトポータル画面が開きます。
図 1.14 プロジェクトポータル画面
これ以降の操作は、 pinax権限「一般ユーザ」の場合 と同様です。
1.4. 作業準備
1.4.1. 作業セットの作成
ファイルの保存先となる作業セットを作成します。 プロジェクト一覧を選択し、作業セット作成ボタンをクリックします。
図 1.15 作業セット作成
作業セット詳細画面で、作業セット名、作業セット説明(任意)、タグ(任意)を入力し、登録ボタンをクリックします。ここでは作業セット名を チュートリアル_機械学習 、タグを チュートリアル としました。
図 1.16 作業セット詳細設定
作業セットが作成されると、配下に v1 の作業セットバージョンが作成されます。 DaaSでファイルを更新・生成してチェックインすると v2, v3, ...と作業セットバージョンが追加されます。 尚、作業時に利用するファイルは同じ作業セットに配置することを推奨します。
図 1.17 作業セットバージョン追加
1.4.2. 資材のダウンロード
モデル構築に必要なデータセットやアルゴリズムファイルを以下のリンクからダウンロードしてください。
任意のフォルダにzipを展開し、以下のファイルが格納されていることを確認してください。 内容については データの解析と機械学習モデルの構築 で説明します。
ms_prediction.json
ms_test.csv
ms_test.json
ms_train.csv
ms_train.json
train.py
train_execute.sh
1.4.3. ファイルのアップロード
作業セットの作成 で作成した作業セットにファイルをアップロードします。
プロジェクトポータル > チュートリアル_機械学習 > v1 にチェックをつけ、アップロードボタンをクリックします。
図 1.18 ファイルアップロード開始
アップロード画面に遷移します。
ここから選択 > ファイルを選択を選択してください。資材のダウンロード でダウンロードしたファイルを選択します。
図 1.19 アップロードファイル選択
アップロード画面のファイル一覧でファイル種別を選択、変更します。
ms_prediction.json: デフォルト値の「データファイル」ではなく「アノテーションファイル」に変更ms_test.csv: (デフォルト値「データファイル」まま変更不要)ms_test.json: デフォルト値の「データファイル」ではなく「アノテーションファイル」に変更ms_train.csv: (デフォルト値「データファイル」まま変更不要)ms_train.json: デフォルト値の「データファイル」ではなく「アノテーションファイル」に変更train.py: (デフォルト値「アルゴリズムファイル」まま変更不要)train_execute.sh: 「ワークフローファイル」を選択
図 1.20 ファイル種別選択
アップロード処理を要求します
アップロードボタンをクリックします。
図 1.21 アップロード要求
アップロード処理が完了すると プロジェクトポータル > チュートリアル_機械学習 > v1 配下にアップロードしたファイルが格納されます。
アップロード処理中は作業セットステータスに「データ登録中」と表示されます。
アップロードが完了すると共通ヘッダの[非同期通知]アイコンに数値の吹き出しが表示されます。非同期通知内容の確認方法については『pinaxユーザ操作マニュアル』 共通機能操作 - 非同期処理通知 を参照ください。
非同期通知内容での確認方法以外にも、プロジェクトポータル画面の検索ボタンをクリックして再検索し、作業セットステータスが「チェックアウト可能」に変更されることでもアップロード完了を確認できます。
図 1.22 アップロード確認
1.5. データの解析と機械学習モデルの構築
1.5.1. 機械学習の目的
はじめにチュートリアルの内容と使用する資材について説明します。 今回利用する資材は以下のとおりです。
- train.py
機械学習用アルゴリズムファイルです。
- train_execute.sh
機械学習用アルゴリズムファイルを実行するためのシェルスクリプトファイルです。
- ms_train.csv
csv形式のトレーニングデータです。
- ms_test.csv
csv形式のテストデータです。
- ms_prediction.json
モデルのアノテーションファイルです。
- ms_train.json
トレーニングデータのアノテーションファイルです。
- ms_test.json
テストデータのアノテーションファイルです。
このチュートリアルのゴールは鋼材の組成からマルテンサイト変態温度(Ms点)を予測する機械学習モデルを構築し、pinaxの作業セットに登録することです。 (機械学習の内容について興味がなければ、 1.5.2 章 へ進んでください。) まず 表 1.1 に示すトレーニングデータの内容をご覧ください。 ある鋼材の組成が元素ごとに[wt%]で記載されています。一番右の"Ms"は元素からAndrews nl式 [1] で計算したマルテンサイト変態温度(Ms点)[℃]です。 したがって、Ms点の値は模擬データとなります。実験データではありませんので実際のMs点の予測には利用できない点にご注意ください。
C |
Mn |
Ni |
Cr |
Mo |
Si |
Ms |
0.11 |
1.22 |
0.46 |
0.25 |
0.0 |
0.4 |
399.257 |
0.13 |
1.16 |
0.4 |
0.67 |
0.41 |
0.45 |
439.50214 |
... |
... |
... |
... |
... |
... |
... |
機械学習にはscikit-learnを使います。 ここでは機械学習の詳細はあまり重要な部分ではありませんので、以下に処理の概要のみ示します。
前処理:
sklearn.preprocessing.StandardScaler予測器:
sklearn.ensemble.RandomForestRegressor- ハイパーパラメータチューニング:
sklearn.model_selection.GridSearchCV(cv=10) n_estimators:
[10, 50, 100, ]max_depth:
[10, 30, 50, ]max_features:
["sqrt", "log2"]
- ハイパーパラメータチューニング:
1.5.2. 作業準備(チェックアウトとDaaS起動)
pinaxでの解析作業はDaaSと呼ばれるUbuntu(Linux)の仮想デスクトップ環境で行います。 一般的なWindowsやMacと同じようにお使いいただけますが、いくつかの制約があります。
ローカル環境からDaaSへのコピー&ペーストができません。
DaaSからローカル環境へのコピー&ペーストができません。
pinaxからチェックアウトしたファイル以外は閲覧・編集できません。DaaS上でファイルを新規作成することは可能です。
まず、pinaxのファイルをDaaSに持ち出すための作業"チェックアウト"を行います。
プロジェクトポータル > チュートリアル_機械学習 > v1のハンバーガーメニューを表示しチェックアウトをクリックします。
図 1.23 チェックアウト選択
図 1.24 チェックアウト確認
チェックアウトの完了を確認後、共通ヘッダの[DaaS起動]アイコンをクリックし、仮想デスクトップ起動制御画面を表示します。
チェックアウト処理中は作業セットステータスに「チェックアウト中」と表示されます。
チェックアウトが完了すると共通ヘッダの[非同期通知]アイコンに数値の吹き出しが表示されます。非同期通知内容を確認してください。
非同期通知内容での確認方法以外にも、プロジェクトポータル画面の検索ボタンをクリックして再検索し、作業セットステータスが「チェックアウト済」に変更されることでもチェックアウト完了を確認できます。
仮想デスクトップ起動制御画面で起動ボタンをクリックし、DaaSを起動します。
この解析事例ではイメージセットは「機械学習_基本セット_1.0」、マシンスペックは「Normal」を選択してください。
図 1.25 DaaSの起動
DaaS起動の完了を確認後、DaaSのデスクトップ画面を起動します。
DaaS起動が完了すると共通ヘッダの[非同期通知]アイコンに数値の吹き出しが表示されます。各種処理状況確認 > 仮想デスクトップ起動 > 詳細 を選択します。
仮想デスクトップ起動詳細画面が開きます。仮想デスクトップを開くボタンをクリックしてください。
DaaS環境のデスクトップ画面は別タブに表示されます。
1.5.3. 機械学習の実行
チェックアウトしたオブジェクト一式は
/home/nims/work/workspace/analysis_set/に格納されています。デスクトップ画面の
nimsフォルダーのアイコン > work > workspace > analysis_set と順にクリックしていくと閲覧できます。またはanalysis_set ショートカットをクリックすると閲覧できます。
/home/nims/work/workspace/analysis_set/に 1.5.1 章 で示した資材一式が格納されているか確認してください。モデルを構築するため、ターミナルを開きます。 右クリックメニュー > Open in Terminal をクリックしてください。
図 1.26 ターミナルの起動
ターミナルに次のコマンドを入力してください。
sh train_execute.shEnter keyをクリックするとモデル構築が始まります。約1分ほどで処理は完了します
tain_execute.shには以下のようなコマンドが記述されています。機械学習用スクリプトtrain.pyに学習・検証データと予測手法を渡すだけの簡単なものです。python train.py --path_train ms_train.csv --path_test ms_test.csv --method_name RandomForestRegressor
図 1.27 機械学習の実行
Tip
DaaS画面で文字を入力するには、ローカル環境でpinaxへのアクセスに使用しているブラウザへの入力が半角英語を選択している必要があります。(全角入力状態ではキーボードからの入力に反応しません。)
また、DaaS画面上で日本語を入力するための入力切り替えについては、pinax FAQ 「日本語入力に切り替えられません」項をご参照ください。
- モデル構築が終わると次の3つのファイルが出力されます。
- ms_prediction.pkl
pythonのpickle形式で保存されたモデル本体です。
- ms_prediction.csv
モデルで予測したテストデータ、トレーニングデータMs点の推定値です。
- ms_prediction.svg
予測値、実測値を比較した45度線プロットです。
図 1.28 出力ファイルの確認
1.5.4. アノテーションファイルの作成
pinaxではモデルやデータの内容を示すアノテーションファイルを作成することが推奨されています。 今回は簡易化のために予め用意されたアノテーションファイルを利用します。詳細については以下のアノテーションファイルの内容を参照してください。
ms_prediction.json
ms_train.json
ms_test.json
DaaS上での作業はこれで終わりです。タブを閉じてください。
1.6. モデルをpinaxに取り込む
DaaS上で出力したファイルをpinaxに取り込む処理 "チェックイン" を行います。 チェックインを一度実施すると、再度チェックインすることはできません。 DaaSでの作業が全て完了したあと以降の作業に進んでください。
1.6.1. チェックイン準備
プロジェクトポータル > チュートリアル_機械学習 > v1 のメニューから
チェックイン準備 を選択します。
チェックイン準備中は作業セットステータスに「チェックイン準備中」と表示されます。
チェックイン準備が完了すると共通ヘッダの[非同期通知]アイコンに数値の吹き出しが表示されます。非同期通知内容を確認してください。
非同期通知内容での確認方法以外にも、プロジェクトポータル画面の検索ボタンをクリックして再検索し、作業セットステータスが「チェックイン準備完了」に変更されることでもチェックイン準備完了を確認できます。
図 1.29 チェックイン準備
1.6.2. チェックイン
チェックイン準備が完了するとチェックインが可能となります。
プロジェクトポータル > チュートリアル_機械学習 > v1 のメニューから チェックイン を選択します。
図 1.30 チェックイン
チェックイン画面に進みます。ここではDaaS上でどのような作業が行われたかを示す来歴を管理するために、ネットワークグラフを作成する作業を行います。 ネットワークグラフを作成する目的は以下のとおりです。
特定の作業セットバージョン内でどのようにモデルを作成したかわかる
グラフを切り抜いて広域シェアできる
作成したオブジェクトが提案される
注釈
ネットワークグラフ作成方法の詳細については ネットワークグラフの作成(機械学習モデルの構築時) を参照ください。
今回は ms_train.csv, ms_test.csv を train.py に入力することで、出力 ms_prediction.pkl,svg,csv を作成しました。
ここでは入出力の関係性をネットワークグラフで記述・表現します。
はじめに各ノードのファイル種別を設定します。以下に ms_prediction.pkl のファイル種別の設定例を示します。
グラフ表示 チェックボックスにチェックをつけ、ネットワークグラフが表示されることを確認してください。
図 1.31 チェックイン画面起動時
図 1.32 グラフ表示ボタンチェック
図 1.33 グラフ表示画面
図 1.34 ネットワークグラフ
ノードのファイル種別を設定します。
ms_prediction.pklを選択 > 右クリック > プロパティ表示詳細編集をクリック
ファイル詳細画面 > ファイル種別 より、予測モデルファイル を選択する
保存 をクリックする
各出力ファイルについて、次のようなファイル種別を設定してください。
ms_prediction.pkl: 予測モデルファイルms_prediction.svg: 解析結果ファイルms_prediction.csv: データファイル
図 1.35 プロパティ表示
図 1.36 詳細編集
図 1.37 ファイル種別設定
図 1.38 適用完了
グラフをより見やすくするように、各ノードの位置を移動します。
ノード移動モード を選択して、各ノードをドラッグして移動します。
図 1.39 ノード移動前
図 1.40 ノード移動後
次にエッジを引きます。エッジ追加モード > 通常エッジ を選択し、whole-edge のようにエッジを引いてください。
原点となるノードを選択した状態で、ノードの端から終点となるノードにドラッグすることでエッジを引くことができます。
図 1.41 エッジ追加
ネットワークグラフのエッジを引かなくても次の作業(チェックイン登録)へ進むことが可能です。
エッジのプロパティを設定します。以下の作業をエッジごとにそれぞれ実施してください。
エッジを右クリック >
プロパティ
図 1.42 プロパティ設定
詳細編集をクリック
図 1.43 詳細編集クリック
エッジ種別、解析作業分類, 解析作業詳細を設定
図 1.44 詳細情報設定
保存
図 1.45 保存完了
編集対象とエッジ種別、解析作業分類の対応は以下のとおりです。
エッジ |
エッジ種別 |
解析作業分類 |
解析作業詳細 |
|---|---|---|---|
ms_prediction.json → ms_prediction.pkl |
アノテーション |
(アノテーション) |
(アノテーション) |
ms_train.json → ms_train.csv |
アノテーション |
(アノテーション) |
(アノテーション) |
ms_test.json → ms_test.csv |
アノテーション |
(アノテーション) |
(アノテーション) |
ms_train.csv → train.py |
仮想デスクトップ作業 |
ファイル入力 |
入力データ |
ms_test.csv → train.py |
仮想デスクトップ作業 |
ファイル入力 |
入力データ |
train_execute.sh → train.py |
仮想デスクトップ作業 |
ファイル入力 |
(ファイル入力) |
train.py → ms_prediction.pkl |
仮想デスクトップ作業 |
ファイル出力 |
(予測モデル生成) |
train.py → ms_prediction.csv |
仮想デスクトップ作業 |
ファイル出力 |
(ファイル出力) |
train.py → ms_prediction.svg |
仮想デスクトップ作業 |
ファイル出力 |
(ファイル出力) |
エッジの設定が完了したら チェックイン登録へ ボタンをクリックし、チェックイン登録へ進みます。
チェックイン登録では新しく作成されるバージョンの基本情報を設定します。
作業セットコメント は Ms点予測モデルを構築 としてください。
タグ は RandomForestRegressor, マルテンサイト変態温度, scilit-learn, 鉄系金属 としてください。
利用仮想マシン は 機械学習_基本セット_1.0 としてください。
図 1.46 チェックイン画面
図 1.47 基本情報
図 1.48 チェックイン確認
チェックインが完了すると プロジェクトポータル > チュートリアル_機械学習 > v2 が作成されます。
チェックイン処理中は作業セットステータスに「チェックイン中」と表示されます。
チェックインが完了すると共通ヘッダの[非同期通知]アイコンに数値の吹き出しが表示されます。非同期通知内容を確認してください。
非同期通知内容での確認方法以外にも、プロジェクトポータル画面の検索ボタンをクリックして再検索し、作業セットステータスが「チェックイン済」に変更されることでもチェックイン完了を確認できます。
チェックイン完了後、オブジェクトを展開して次の3ファイルが格納されていることを確認してください。
ms_prediction.csv
ms_prediction.pkl
ms_prediction.svg
図 1.49 出力ファイル一覧
1.6.3. チェックイン後に再度解析作業を行う場合
チェックインが完了すると プロジェクトポータル > チュートリアル_機械学習 > v2 は作業セットステータスが「チェックイン済」となります。
「チェックイン済」の作業セットバージョンは、チェックイン時点のオブジェクト内容を保存する目的のため変更することができません(チェックアウトできますがチェックインできません)。
再度解析作業を行う場合は、
プロジェクトポータル > チュートリアル_機械学習 > v2 のメニューから 新しいバージョン作成 を選択します。
新しいバージョン作成が完了するとv2からコピーされた プロジェクトポータル > チュートリアル_機械学習 > v3 が作成されます。
v3をチェックアウトして、解析作業を行ってください。
注釈
作業セットステータスが「変更不可」の場合も変更することができません。
「チェックイン済」または「変更不可」の場合は、チェックアウトしてDaaS上で内容を確認することはできますが、チェックインができない(「チェックイン準備」メニューが表示されない)ため、DaaS上で編集した作業内容はなくなってしまいます。 チェックイン後、再度解析作業を行う場合は、新しいバージョンを作成してからチェックアウトするようご注意ください。
1.7. 作成したオブジェクトをローカル環境にダウンロードする
作成した機械学習モデルの予測精度を確認します。今回はモデルによる推定値のプロットである ms_prediction.svg のみをダウンロードします。
プロジェクトポータル > チュートリアル_機械学習 > v2 > ms_prediction.svgにチェックをつけてください。ダウンロードボタンをクリックしてください。
図 1.50 ダウンロード要求
ダウンロード準備の完了を待ってください。
ダウンロード準備が完了すると共通ヘッダの[非同期通知]アイコンに数値の吹き出しが表示されます。
各種処理状況確認 > ファイルダウンロード > 詳細を選択します。
図 1.51 ダウンロード処理状況確認
ダウンロードボタンをクリックしてください。
ダウンロードが開始されます。
図 1.52 ダウンロード
ダウンロードファイルを確認してください。
Windowsの場合
C:\Users\<ユーザー名>\Downloadsなどに日付名のzipファイルで格納されます。zipを展開してください。
図 1.53 ダウンロードファイルの解凍
zipにはダウンロード時に選択したファイルが
<連番>_<オブジェクト名>の名前で格納されています。本例では
1_ms_prediction.svgとなっている想定です。index.csvはダウンロードしたファイルについてのメタ情報です。Job Status ID: ファイルダウンロードのジョブステータスIDです。
Download File Name: ダウンロードファイルの名前。Download File Pathと比較することで元のオブジェクト名が分かります。
Hash Value: オブジェクトのハッシュ値です。
Download File Path: pinax内のファイルパスです。
Job Status ID |
Download File Name |
Hash Value |
Download File Path |
1914 |
1_ms_prediction.svg |
d6c86... |
<テナント名>/<プロジェクト名>/チュートリアル_機械学習_1(v2)/ms_prediction.svg(v1) |
図 1.54 ファイルの確認
1_ms_prediction.svg を開き、以下のようなプロットが作成されていることを確認してください。なお、結果はわずかに変わる可能性があります。
図 1.55 プロットの確認