関連情報
ホーム > 製品&サービス > コンサルティングサービス > HPCチューニングサービス > 事例一覧 > HECToRプロジェクト - チューニングレポート<要約>:SPRINTを用いたRのサポートベクターマシン関数のHECToR上での最適化

HPCチューニングサービスの事例

チューニングレポート<要約>:SPRINTを用いたRのサポートベクターマシン関数のHECToR上での最適化

*ここに掲載するのは、エジンバラ大学EPCCのLuis Cebamanos博士によるHECToRレポート「Optimisation of R support vector machine on HECToR with SPRINT, Luis Cebamanos, 15/01/2013」を要約したものです。

[2016年11月掲載]



概要

このプロジェクトの目的は、分類および回帰分析で用いられるデータ解析とパターン認識の学習法であるサポートベクターマシン法の並列版の実装です。SPRINTプロジェクトでのユーザ要求サーベイから、並列化の対象としてこのサポートベクターマシン(SVM)法が選ばれました。
The Simple Parallel R Interface (SPRINT) [1]は、エジンバラ大学のDivision of Pathway MedicineおよびEPCCの共同プロジェクトとして開始され、特別な知識を必要とせずにRユーザがHECToRスーパーコンピューティング資源や他のHPCシステムを利用できるようにすることを目的としています。Rはフリーの統計学計算のための言語および計算環境です(http://www.r-project.org/)。

SVM関数

標準的なSVMはある入力データセットを取り込んだ後、与えられた入力が2つのクラスのどちらに属するかを予測する、非確率論的な2値線形識別器です。2つのカテゴリーのどちらかに属する識別を追加されたトレーニングデータセットが与えられた際に、SVMの学習アルゴリズムは、新たなデータを2つのカテゴリーのどちらかに割当てるモデルを構築します。SVMモデルは空間内の点としてデータを表現し、別々のカテゴリーのデータを可能な限り広く明確なギャップで分割されるようにマッピングします。こうして新しいデータは同じ空間にマッピングされ、ギャップのどちら側に在るかを見ることで、その属するカテゴリーが推定されます。

分類処理においては通常トレーニングデータとテストデータの2種類が用いられます。トレーニングデータ内の個々のサンプルは、一つのターゲット値(即ちクラスラベル)と複数の属性(観測変数)を含みます。SVMはターゲット値を予測するためのトレーニングデータに基づきモデルを構築し、属性のみを持つテストデータで検証します。

RのSVM実装は関数symです。SPRITNの並列インターフェイスはpsymと呼ばれ、シリアル版と同じパラメータを持ちます。

プロファイリング

ここでGolubのデータセット[3]を用いました。これはトレーニングデータとテストデータを含むSVM分類に極めて適したデータセットです。このデータセットは38患者の7000を超える遺伝子情報を含みます。プロファイルツールにはRprofを用いました。

関数symの呼出しに掛かる時間は遺伝子数と患者数に依存します。この時間は遺伝子数の増加に伴い増えていきますが、患者数によりさらに大きな影響を受けます。患者数が200を超えるとこの時間は急激に増加しています。200,000遺伝子と1,000患者のデータは稀ですが、それでも130秒程度です。

関数symは多くのパラメータを持ちますが、統計で広く利用される重要なものとして交差検証があります。交差検証の値はデフォルトで0ですが、正値kが指定されると、symの中のトレーニングアルゴリズムは異なるトレーニングデータを用いてk回繰り返されます。繰り返し実行の場合は各実行では全サンプルは用いられず、トレーニング分類器の精度に関する推定が得られます。

交差検証を10にした場合、実行時間以外は先述の実行と同様の傾向がみられます。我々はこの交差検証を並列化しました。

実装

Rパッケージe1071とlibsymライブラリを用いてsym関数を作成しました。関数psvmのRインターフェイスはe1071パッケージのsvmとほぼ同じであり、ユーザにとって大きな違いがないものです。psvmはユーザが指定したプロセッサ数上で独立にsvmインスタンスを実行させます。交差検証に正値が引数として渡された場合は、psvmはこれらを各プロセッサ上で独立に並列実行して、マスタープロセスへ結果を返却します。

今後について

RのプロファイラからはCコードについての詳細情報が得られないため、SVM計算負荷の大きな領域の調査に多くの時間を費やし、関数symtrainに負荷が集中していることを突き止めました。SVM分類計算においては、Solverクラスに在る逐次最小問題最適化法(SMO)がボトルネックであることも判明しました。今後はこの方法の並列化が望まれます。

謝辞

このプロジェクトは、NAG Ltd.が運営するHECToRの分散計算科学および工学(CSE)サービスの基に実行されました。英国の国立スーパーコンピューティング・サービスである、HECToR:英国リサーチ・カウンシル・ハイエンド計算サービスは、リサーチ・カウンシルを代行するEPSRCが管理しています。そのミッションは英国学術界の科学および工学の研究支援です。HECToRスーパーコンピューターは、UoE HPCx Ltd.およびNAG Ltd.のCSEサポートサービスにより管理運営されています。

文献

[1] J. Hill, M. Hambley, T. Forster, M. Mewissen, T. Sloan, F. Scharinger, A. Trew, and P. Ghazal. SPRINT: A new parallel framework for R. BMC Bioinformatics, 9(1):558, 2008.
[2] Chang, C.-C. & Lin, C.-J., LIBSVM: a library for support vector machines.
[3] T.R. Golub, D.K. Slonim, P. Tamayo, C. Huard, M. Gaasenbeek, J.P. Mesirov, H. Coller, M. Loh, J.R. Downing, M.A. Caligiuri, C.D. Bloomfield, and E.S. Lander, Molecular Classification of Cancer: Class Discovery and Class Prediction by Gene Expression.

Results matter. Trust NAG.

Privacy Policy | Trademarks