学習から予測までを自動化する~コマンドライン・インターフェイス入門
今回はニューラルワークスPredictの機能の一つで、定期的に学習を行い、予測を実行するアプリケーションを構築するために使用される
「コマンドラインインターフェイス」
をご紹介します。
■■■ コマンドラインインターフェイスの魅力
コマンドラインインターフェイスは、Windowsコマンドプロンプトや、UNIXのコンソールのようなCUI画面からの対話式でのコマンドを発行して処理するインターフェイスですが、他のシステム(データベース)とのCSVファイル連携により、「学習」~「予測」をバッチ処理形式で定期的に実行する際にも使用されます。
また、Excelインターフェイスでは制約のある変数(列数)およびレコード数(行数)の制約なく使用できるメリットもあります。
バッチ実行ファイルの記述は、モデル構築および予測実行それぞれで以下の例のように、とてもシンプルです:
モデル構築処理のバッチファイル記述例(拡張子はnpc)
────────────────────────
log Training.log
new
data Training.csv,,,none
defaults pred,moderate,moderate,none,comprehensive
fields 5,0,1,0
saveas Model.npr
build all,force
saveas Model.npr
close 1
(解説)
1行目:ログファイルの指定
2行目:新規モデル構築を宣言
3行目:学習するデータファイル(CSV)を指定
4行目:モデルの種類(例では予測モデル)、ノイズレベルの指定、データ変換、
変数選択、ネットワーク探索レベルの指定
5行目:学習データの入力・出力列数を指定
6行目:保存するモデルファイル名を指定
予測処理のバッチファイル記述例(拡張子はnpc)
─────────────────────
log prediction.log
open Model.npr
run PredictionInput.csv,PredictionOutput.csv,realout
close 1
(解説)
1行目:ログファイルの指定
2行目:実行するモデルファイル名称を指定
3行目:予測実行に使用する入力データ(CSV)、出力結果を保存するファイルを指定
を意味しています。
コマンドファイルの実行は、実行用のバッチファイルに
set PREDICT=C:\Program Files\NeuralWare\NeuralWorks\Predict
set path = %path%;%PREDICT%
start PredictW.exe sample.npc
と記載すればOKです。
■■■ コマンドラインインターフェイス活用例
コマンドラインインターフェイスは、アプリケーションとニューラルワークスとの橋渡しとして活躍します。
例えば、サーバサイドアプリケーションにてコマンドラインインターフェイスを使用する事により、
・定時処理(バッチ)にてモデルを再構築
・ユーザサイドからのリアルタイムリクエストに対して、予測結果を返答
等、Predictエンジン導入一つで、「人工知能ベースのサーバアプリケーション」の構築を容易に可能とします。
■■■ 最適モデル抽出のためのコマンドラインインターフェイスの活用
ニューラルネットワークによるモデル探索では、得られた解が局所解かどうかが常に問われます。
その為、学習過程に使用される複数のパラメータをチューニングして、最も性能の良い解を探索します。その際のチューニング作業は、非常に機械的であり、自動化したいところですが、この場合には、上記のコマンドファイルを複数定義して、一括実行をさせればよいわけです。
ニューラルワークス Predictの上位製品であるNeuralSightは、上記要求を実現するGUIベースの製品であり、生成されたモデルの中から、ビジュアルにモデル性能でソートして、最適モデルの特性を瞬時に評価できるインターフェイスを提供します。
実際のお客様からは、モデル性能の他、モデル開発および検証のサイクルが、大きく短縮されたという評価をいただいています。
■■■ Professional II/PLUSの自動化
参考までに、Professional II/PLUSの自動化は、Predictと同様の手続きを行うことになります。
ただし、注意として、まず初めに学習していないニューラルネットワークを生成して保存しておかなければなりません。
自動化によって、初期化、学習、テスト、そしてネットワークを介したデータの実行ができますが、新しいネットワークを生成することはできません。
これは、”スクリプトファイル”のサンプルで、ネットワークファイルのオープン、学習、テスト、ネットワークを介したデータの実行を行います。
[ファイル:automate.dat]
open my_net.nnd
initialize
savebest 100000 500 10
set testfile my_valid.nna
test save
Professional II/PLUSは、以下に続くコマンドを使って、自動化プログラムを実行します:
nw2.exe -xuautomate
そして、そのコマンドは、Dosウインドウ上にタイプすることもできますし、DosバッチファイルあるいはLinux/Unixのスクリプトファイルに記載する、あるいはそのコマンドをVisual Basic、C、Java、あるいは他の実行プログラムから呼び出すことができます。
詳細は
スタート|プログラム|NeuralWare|NeuralWorks|Professional|SupplementGuide
の”Automate”の章をご覧ください。
※弊社では、データ分析プロジェクトにまつわる様々なご相談に、過去20年以上に渡るプロジェクト経験に基づき、ご支援しています。社内セミナーの企画等、お気軽にご相談いただければ幸いです。
製品カタログ