見出し画像

学習から予測までを自動化する~コマンドライン・インターフェイス入門

今回はニューラルワークス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年以上に渡るプロジェクト経験に基づき、ご支援しています。社内セミナーの企画等、お気軽にご相談いただければ幸いです。

製品カタログ


この記事が気に入ったらサポートをしてみませんか?