JP2007095069A - 分散カーネル・サポート・ベクトル・マシン - Google Patents
分散カーネル・サポート・ベクトル・マシン Download PDFInfo
- Publication number
- JP2007095069A JP2007095069A JP2006262425A JP2006262425A JP2007095069A JP 2007095069 A JP2007095069 A JP 2007095069A JP 2006262425 A JP2006262425 A JP 2006262425A JP 2006262425 A JP2006262425 A JP 2006262425A JP 2007095069 A JP2007095069 A JP 2007095069A
- Authority
- JP
- Japan
- Prior art keywords
- local
- working set
- training data
- data
- machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Complex Calculations (AREA)
- Multi Processors (AREA)
Abstract
【課題】カーネル計算、カーネル・キャッシュ及び訓練データが多数の分散形マシンあるいはプロセッサに分散している、訓練データの大きな集合を有する問題を解くための、並列サポート・ベクトル・マシン技術を提供する。
【解決手段】複数の処理ノードの1つにおける訓練データの集合に基づいたサポート・ベクトル・マシンのトレーニングの方法は、a)ローカル・データに基づいて訓練データのローカル・ワーキング・セットを選択する段階と、b)ローカル・ワーキング・セットに関する選択されたデータを送信する段階と、c)訓練データのグローバル・ワーキング・セットの識別を受け取る段階と、d)訓練データのグローバル・ワーキング・セットを最適化する段階と、e)訓練データのグローバル・ワーキング・セットの勾配の一部分を更新する段階と、f)収束条件を満足するまで段階a)から段階e)までを繰り返す段階と、を有する。
【選択図】図9A
【解決手段】複数の処理ノードの1つにおける訓練データの集合に基づいたサポート・ベクトル・マシンのトレーニングの方法は、a)ローカル・データに基づいて訓練データのローカル・ワーキング・セットを選択する段階と、b)ローカル・ワーキング・セットに関する選択されたデータを送信する段階と、c)訓練データのグローバル・ワーキング・セットの識別を受け取る段階と、d)訓練データのグローバル・ワーキング・セットを最適化する段階と、e)訓練データのグローバル・ワーキング・セットの勾配の一部分を更新する段階と、f)収束条件を満足するまで段階a)から段階e)までを繰り返す段階と、を有する。
【選択図】図9A
Description
本発明は、概して機械学習(machine learning)に関し、特に、サポート・ベクトル・マシン(SVM;support vector machine)に関する。
機械学習は、コンピュータが「学習する」ことを可能にする技術を含んでいる。詳しくは、機械学習は、コンピュータ・システムがタスクを行うように直接にプログラミングするのではなくて、何らかのタスクを行うようにコンピュータ・システムを訓練することを含んでいる。コンピュータ・システムは、あとで未知のデータを処理するときに使用するために、あるデータを観察し、データの何らかの構造を自動的に決定する。
機械学習技術は、一般に、訓練(training)データから関数を創出する。訓練データは、(通常はベクトルである)入力オブジェクトと所望の出力との対から成る。関数の出力は、(回帰(regression)と呼ばれる)連続した値でもよく、あるいは(分類(classification)と呼ばれる)入力オブジェクトのクラス(分類)ラベルを予測することができるものであってもよい。学習マシンのタスクは、少数の訓練例(すなわち入力と目標出力の対)を観察したのみで、任意の有効な入力オブジェクトに対する関数の値を予測することである。
学習マシンの1つの特定の型は、サポート・ベクトル・マシンである。SVMは、例えば、V. Vapnik, "Statistical Learning Theory", Wiley, New York, 1998(非特許文献1)、及び、C. Burges, "A Tutorial on Support Vector Machines for Pattern Recognition", Data Mining and Knowledge Discovery, 2, 121-167, 1998(非特許文献2)に述べられているように、当該分野において公知である。本発明の以下の説明を助けるために、公知ではあるが、ここでSVMの簡単な説明を行う。
円あるいは正方形の分類を有するデータを示す、図1に示す分類を考える。2つのクラスを分割する最良の方法は何か、との疑問が起きる。図2に示すように、SVMは、サポート・ベクトルにより定められる最大マージン超平面を創出する。サポート・ベクトルは、符号202,204,206として示され、超平面208を定めるための分類境界として使用される訓練データのそれらの入力ベクトルを定める。分類問題において超平面を定める目的は、異なるクラス各々のサポート・ベクトルの間の距離であるマージン(w)210を最大化することである。言い換えれば、最大マージン超平面は、最も近いサポート・ベクトルからの距離が最大化されるように、訓練例を分割する。2次計画(QP)最適化問題を解くにより、サポート・ベクトルは決定される。例えば、R. Fletcher, "Practical Methods of Optimization", Wiley, New York, 2001(非特許文献3)、及び、M. S. Bazaraa, H. D. Shrali and C. M. Shetty, "Nonlinear Programming: Theory and Algorithms", Wiley Interscience, New York, 1993(非特許文献4)に述べられているように、SVMとともに使用するためのいくつかの公知のQPアルゴリズムが存在する。最適な超平面を決定するためには、訓練データ・ベクトル(すなわちサポート・ベクトル)の少数のサブセットのみを考慮する必要がある。したがって、サポート・ベクトルを定める問題は、フィルタリング問題であると考えることもできる。特に、訓練段階の間のSVMの仕事は、サポート・ベクトルではない訓練データ・ベクトルを除外することである。
図2から分かるように、最適な超平面208は、分類されるべきデータが直線的に分離できると想定する線形のもの(linear)である。しかし、いつもそうであるとは限らない。例えば、データが2つの集合(X及びO)に分類される図3を考える。図の左側に示すように、1次元空間では2つのクラスは直線的には分離できない。しかし、図の右側に示すように、1次元のデータを2次元空間にマッピングすることによって、線302によりデータは直線的に分離できる。この同じ考えを図4に示す。図4の左側に、サポート・ベクトル(周囲に輪郭線を有する円として示す)により定められる分類境界を有する2次元データを示す。しかし、クラス・分割線(デバイダ)402は直線ではなく曲線であり、2次元データは直線的には分離できない。しかしながら、図4の右側に示すように、2次元データを高次元空間にマッピングすることによって、超平面404によりデータは直線的に分離可能となる。高次元の空間内のベクトル間の内積(dot product)を計算するマッピング関数は、カーネルと呼ばれ、本明細書においては、一般にkとして参照される。低次元から高次元にデータをマップするカーネル関数の使用は、例えば、上記の非特許文献1に説明されているように、当該分野において公知である。
上述のようにSVMが訓練された後に、次の式を適用することにより入力データを分類することができる。
ここで、xiはサポート・ベクトルを表し、xは分類されるべきベクトルであり、αi,bは訓練アルゴリズムにより得られるパラメタであり、yは分類されるベクトルに割り当てられるクラス・ラベルである。
式k(x,xi)=exp(−‖x−xi‖2/c)は、カーネル関数の例、具体的に言えば動径基底関数の例である。他の形式のカーネル関数も同様に使用することができる。
SVMは分類及び回帰の強力なツールであるが、その1つの欠点は、その計算と記憶のための必要条件が訓練ベクトルの数とともに急速に増加することであり、実用上の関心がある多くの問題に対してSVMをその守備範囲外としている。上述のように、SVMのコアとなる部分は2次計画問題であり、サポート・ベクトルを残りの訓練データから分離する。汎用のQPソルバー(solver)は、訓練ベクトルの数の3乗に比例して(すなわちO(k3)で)スケーリング(拡大縮小)する傾向がある。勾配降下法に通常は基づいている専用のアルゴリズムは、効率の面では利点があるが、それでも、10万のオーダーの訓練ベクトル(2クラス問題)を有する問題に対しては、依然として非実用的なほどに遅くなる。
QPを加速するための1つの既存の方法は、訓練データのサブセットが大域的最適に到達するまで反復して最適化される「チャンキング(chunking)」に基づいている。この技術は、B. Boser, I. Guyon, V. Vapnik, "A training algorithm for optimal margin classifiers", Proc. 5th Annual Workshop on Computational Learning Theory, Pittsburgh, ACM, 1992(非特許文献5)、E. Osuna, R. Freund, F. Girosi, "Training Support Vector Machine, an Application to Face Detection", Computer vision and Pattern Recognition, pp. 130-136, 1997(非特許文献6)、及び、T. Joachims, "Making large-scale support vector machine learning practical," in Advances in Kernel Methods, B. Scholkopf, C. Burges, A. Smola (eds.), Cambridge, MIT Press, 1998(非特許文献7)に記載されている。J. C. Platt, "Fast Training of support vector machines using sequential minimal optimization," in Advances in Kernel Methods, B. Scholkopf, C. Burges, A. Smola (eds.), Cambridge, MIT Press, 1998(非特許文献8)に述べられている「逐次最小最適化(SMO;Sequential Minimal Optimization)」は、チャンク・サイズを2つのベクトルにまで減少させるものであり、これらのチャンキング・アルゴリズムの中では最も普及している。最適化処理の早期に非サポート・ベクトルを除外することは、計算をかなり節減できる別の方策である。効率的なSVMの具体例は、上記の非特許文献7、及び、R. Collobert, S. Bengio, J. Mariethoz, "Torch: A modular machine learning software library," Technical Report IDIAP-RR 02-46, IDIAP, 2002(非特許文献9)に説明されているように、非サポート・ベクトルの早期での識別のために、「シュリンキング(shrinking)」として公知の段階を組み込んでいる。カーネル・データのキャッシングと組み合わせて、これらの技術は必要計算量を甚だしく減少させる。D. DeCoste, B. Scholkopf, "Training Invariant Support Vector Machine," Machine Learning, 46, 161-190, 2002(非特許文献10)に説明されている「ダイジェスティング(digesting)」という名の別の方法は、新しいデータを付け加える前の完了に近いサブセットを最適化し、その結果、メモリのかなりの量を節減する。
並列化によってSVMの計算速度を改善することは、計算段階の間の依存性のために困難である。R. Collobert, Y. Bengio, S. Bengio, "A Parallel Mixture of SVMs for Very Large Scale Problems," Neural Information Processing Systems, Vol. 17, MIT Press, 2004(非特許文献11)に説明されているように、データの初期クラスタリングによって、あるいは個々に最適化されたサブセットからの結果の訓練された組み合わせによって、独立に最適化できる小さなサブセットに問題を分割することにより並列化が試みられてきた。問題をこのように構造化できれば、データの並列化は効率的であり得る。しかし、多くの問題に対しては、小さい問題に分割した後に、大域的最適を発見できるか否かは疑わしい。A. Tveit, H. Engum, "Parallelization of the Incremental Proximal Support Vector Machine Classifier using a Heap-based Tree Topology," Tech. Report, IDI, NTNU, Trondheim, 2003(非特許文献12)に説明されているような、近位(proximal)SVMのような標準のSVMアルゴリズムの変形は、より並列化に適しているが、高次元の問題に対する性能と適用性は依然として疑わしい。J. X. Dong, A. Krzyzak, C. V. Suen, "A Fast Parallel Optimization for Training Support Vector Machine," Proceedings of third International Conference on Machine Learning and Data Mining, P. Perner and A. Rosenfeld (Eds.), Springer Lecture Notes in Artificial Intelligence (LNAI 2734), pp. 96-105, Leipzig, Germany, July 5-7, 2003(非特許文献13)に説明されている別の並列化方式は、ブロック対角によってカーネル行列を近似している。
他の並列化技術も存在する。G. Zanghirati, L. Zanni, "A Parallel Solver for Large Quadratic Programs in Training Support Vector Machines," Parallel Computing, 29, 535-551, 2003(非特許文献14)は、高速の収束のためにスペクトル勾配法を使用する勾配射影に基づく並列最適化アルゴリズムを説明している。「並列サポート・ベクトル法及び装置(Parallel Support Vector Method and Apparatus)」と題する、2004年10月29日出願の米国特許出願番号第10/978,129(米国特許公開2006/0112026A1(特許文献1))は、分散された形態で個々に最適化される小さいサブセットに訓練データ集合を分割する並列化技術を説明している。大きな2次計画(QP)問題を解くために内点(IP;Interior point)法が公知であり、並列化が、例えばM. D'Appuzo, M. Marino, "Parallel Computational Issues of an Interior Point Method for Solving Large Bound-Constrained Quadratic Programming Problems," Parallel Computing, 29, 467-483, 2003(非特許文献15)において提案されている。
米国特許公開2006/0112026A1
V. Vapnik, "Statiscal Learning Theory(統計的学習理論)", Wiley, New York, 1998
C. Burges, "A Tutorial on Support Vector Machines for Pattern Recognition(パターン認識のためのサポート・ベクトル・マシンについてのチュートリアル)", Data Mining and Knowledge Discovery, 2, 121-167, 1998
R. Fletcher, "Practical Methods of Optimization(最適化の実用的方法)", Wiley, New York, 2001
M. S. Bazaraa, H. D. Shrali and C. M. Shetty, "Nonlinear Programming: Theory and Algorithms(非線形プログラミング、理論とアルゴリズム)", Wiley Interscience, New York, 1993
B. Boser, I. Guyon, V. Vapnik, "A training algorithm for optimal margin classifiers(最適マージン分類子のための訓練アルゴリズム)", Proc. 5th Annual Workshop on Computational Learning Theory, Pittsburgh, ACM, 1992
E. Osuna, R. Freund, F. Girosi, "Training Support Vector Machine, an Application to Face Detection(サポート・ベクトル・マシンのトレーニング、面検出への応用)", Computer vision and Pattern Recognition, pp. 130-136, 1997
T. Joachims, "Making large-scale support vector machine learning practical(大規模なサポート・ベクトル・マシン学習を実用的にする)," (Advances in Kernel Methods(カーネル法における進歩), B. Scholkopf, C. Burges, A. Smola (編), Cambridge, MIT Press, 1998に所収)
J. C. Platt, "Fast Training of support vector machines using sequential minimal optimization(逐次最小最適化を使用するサポート・ベクトル・マシンの高速トレーニング)," (Advances in Kernel Methods(カーネル法における進歩), B. Scholkopf, C. Burges, A. Smola (編), Cambridge, MIT Press, 1998に所収)
R. Collobert, S. Bengio, J. Mariethoz, "Torch: A modular machine learning software library(Torch:モジュール式の機械学習ソフトウェア・ライブラリ)," Technical Report IDIAP-RR 02-46, IDIAP, 2002
D. DeCoste, B. Scholkopf, "Training Invariant Support Vector Machine(不変サポート・ベクトル・マシンのトレーニング)," Machine Learning, 46, 161-190, 2002
R. Collobert, Y. Bengio, S. Bengio, "A Parallel Mixture of SVMs for Very Large Scale Problems(非常に大規模な問題のためのSVMの並列組み合わせ)," Neural Information Processing Systems, Vol. 17, MIT Press, 2004
A. Tveit, H. Engum, "Parallelization of the Incremental Proximal Support Vector Machine Classifier using a Heap-based Tree Topology(ヒープ・ベースの木トポロジーを使用する増分近位サポート・ベクトル・マシン分類子の並列化)," Tech. Report, IDI, NTNU, Trondheim, 2003
J. X. Dong, A. Krzyzak, C. V. Suen, "A Fast Parallel Optimization for Training Support Vector Machine(サポート・ベクトル・マシンの訓練のための高速並列最適化)," Proceedings of third International Conference on Machine Learning and Data Mining, P. Perner and A. Rosenfeld(編), Springer Lecture Notes in Artificial Intelligence (LNAI 2734), pp. 96-105, Leipzig, Germany, July 5-7, 2003
G. Zanghirati, L. Zanni, "A Parallel Solver for Large Quadratic Programs in Training Support Vector Machines(サポート・ベクトル・マシンの訓練における大きい2次計画法のための並列ソルバー)," Parallel Computing, 29, 535-551, 2003
M. D'Appuzo, M. Marino, "Parallel Computational Issues of an Interior Point Method for Solving Large Bound-Constrained Quadratic Programming Problems(大きな境界条件付き2次計画問題を解くための内点法の並列計算問題)," Parallel Computing, 29, 467-483, 2003
SVMならびに上述の技術は、強力な回帰と分類のツールではあるが、非常に大きい問題に対しては良く適合できない。
本発明は、訓練データの大きな集合(セット;set)を使用して問題を効率的に解くための並列SVM技術を提供する。本発明による1つの態様においては、カーネル・キャッシュ及び訓練データと同様に、カーネル計算も、多数の分散形マシンあるいはプロセッサに分けられている。
1つの実施態様においては、訓練データの集合に基づいてサポート・ベクトル・マシンを訓練するために、複数の処理ノードが使用される。処理ノードのそれぞれは、処理ノードに対して局所的なデータに基づいて、訓練データのローカル・ワーキング・セットを選択する。1つの実施態様においては、データは勾配のローカル・サブセットであってもよい。ノードは、ワーキング・セットに関する選択されたデータを送信し、訓練データのグローバル(大域)ワーキング・セットの識別(identification)を受け取る。1つの実施態様においては、選択されたデータは、最大値を有するローカル(局所)ワーキング・セットの勾配であってもよい。処理ノードは、訓練データのグローバル・ワーキング・セットを最適化し、訓練データのグローバル・ワーキング・セットの勾配の一部分を更新する。勾配の一部分の更新には、カーネル行列の一部分の生成を含んでもよい。収束条件を満足するまで、これらの段階は繰り返される。
さまざまな実施態様において、ローカル処理ノードのそれぞれは、訓練データのすべて、あるいは一部分のみを蓄積してもよい。ローカル処理ノードが訓練データの一部分のみを蓄積する場合には、最適化段階を行うために、ローカル処理ノードは、訓練データのグローバル・ワーキング・セットの少なくとも一部分も受け取る。
訓練データのグローバル・ワーキング・セットを最適化する段階と、グローバル・ワーキング・セットの勾配の一部分を更新する段階は、ローカル処理ノードのそれぞれで実行されるが、訓練データのグローバル・ワーキング・セットを生成する機能は、個別の処理ノードから受け取った選択されたデータ(例えば、ローカル・ワーキング・セットの勾配)に基づいて、集中形式で実行される。1つの実施態様においては、最大値を有する勾配は、ネットワーク・ノードの木構造を使用して決定され、決定された勾配は、階層的な一斉同報(ブロードキャスト)技術を使用してローカル処理ノードに送信される。
本発明による以上のまたは他の利点は、下記の詳細説明と添付図面の参照により、当業者には明白であろう。
ここで、2クラス分類問題に重点をおいて、二重定式化(dual formulation)で解かれた標準的なサポート・ベクトル・マシン(SVM)アルゴリズムに照らして、本発明の原理を説明する。当業者は、同様の方法で回帰あるいは多クラスの分類のような別の問題に本発明の原理を適用可能であることを認識するであろう。
I個の訓練例(xi,yi)の集合(セット)を考える。ここで、xi∈Rdはd次元のパターンを表わし、yi=±1はクラス・ラベルである。K(xi,xj)はパターンの間のカーネル値の行列であり、αiは最適化により決定されるべきラグランジュ係数である。SVM問題を解くことは、次の2次関数を最小化することを含んでいる。
ここで説明するアルゴリズムは、勾配降下法に基づいており、勾配は、大域的最適化の状態の情報を維持するためと、ワーキング・セットを選択するためにも使用される(以下参照)。αに対してWの勾配は次式で表される。
大きな最適化に対しては完全には比例的に拡大縮小しない傾向があるので(およそn3に比例)、SVMを用いた実装では、大きな1つの最適化においては、式(1)の2次計画(QP)問題を解かない。逆に、訓練データの集合は、nw個の要素を有する小さなワーキング・セットに分割される。nwは、通常、非常に小さい(多くの場合nw=2)。最適化は、ワーキング・セットnwに対して実行され、各最適化の後に新しいワーキング・セットが訓練データから選択される。図5A、図5B、図6を用いてこのアルゴリズムを以下に説明する。図5Aは、訓練データのワーキング・セットへの分割(セグメンテーション)を伴う基本的なSVM最適化アルゴリズムを示すフローチャートである。図5Bは、その同じアルゴリズムの疑似コードを示す図である。図6は、図5A、図5Bに示すアルゴリズムのデータ項目を例示する略図である。図6は、d次元のn個のベクトル、カーネル行列604、勾配606、及びα608を有する訓練データ集合602を示す。なお、このアルゴリズムはワーキング・セットnwがサイズ2である場合を示しており、これは、非特許文献8に述べられている公知の逐次最小化最適化アルゴリズムに対応する。しかし、他のワーキング・セット・サイズも同様に使用することができる。ワーキング・セット・サイズが2であれば、最適化を解析的に解くことができ都合がよいが、より大きいサイズのワーキング・セットは、標準的な数値最適化アルゴリズムを使用して最適化できる。
このアルゴリズムは次のように説明される。なお、このアルゴリズムを、図5Aのフローチャートの各ステップを特に参照して説明する。図5Bの疑似コードの各部分を図5Aのフローチャートの各ステップと関連付けることは、当業者には容易に可能であろう。
最初に、ステップ502において、値が初期化される。アルファ(α)を0(αi=0)に、勾配を−1(Gi=−1)に初期化することにより、実行可能な点から開始する。さらに、初期化段階は、特定のマシン上で処理されるインデックスの範囲(loからhi)も設定する。この場合は、1つのマシンのみが存在するから、図5Bの疑似コードで符号550に示すように、loは1に設定され、hiはnに設定される。ステップ504において、ステップ508で計算された勾配に基づいて、ワーキング・セット(xi,xj)が選択される(最初の反復に対しては、ワーキング・セットに対して2個の訓練データ・サンプルがランダムに選ばれる)。ステップ506において、ワーキング・セットは最適化される。関数W(式(1))の最適化は、ワーキング・セットのαのみを考慮して実行され、他のすべてのαは一定に維持される。これは、ワーキング・セットのα値を(Δα1,Δα2)だけ変化させる。ステップ506における最適化は、カーネル行列の要素K(xi,xi) 610,K(xj,xi) 614,K(xi,xj) 612,K(xj,xj) 616を必要とする。
次に、ステップ508において、すべての勾配(Gk) 606が更新される。訓練データ集合では、各ベクトルごとに1つの勾配がある。したがって、カーネル行列のすべての要素K(xi,xk) (列620),K(xj,xk) (列618)(k=1,…,n)は、この更新に対して計算されなければならない。ステップ510において、収束条件が満たされたかとうかが判定される。大域的最適への収束は、すべてのαがKarush−Kuhn−Tucker(KKT)条件を満たす場合に保証される。KKT条件は、2次最適化問題の最適解が満足しなければならない条件を定める。KKT条件は必要十分条件である(すなわち、KKT条件は、解が真に最適であるかをテストするために使用でき、最適な値をまだ有しないパラメタを識別できる)。さまざまな具体例において、収束基準は、勾配の値の測定に基づいてもよいし、最適化の間のαの変化に基づいてもよいし、あるいはタイム・リミット(制限時間)に基づいてもよい。このような発見的方法は、大部分のアプリケーションに対してKKT条件の正確な近似を提供することができる。収束条件が満たされなければ、ステップ504に移行し、収束基準が満たされて大域的最適が発見されたことを示されるまで、ステップ504,506,508が繰り返される。
図7は、図5A及び図5Bに示すアルゴリズムの主要な計算ブロックと記憶ブロックを示す図であって、それらの間の通信の要件を(矢印によって示すように)表示している。図7において、nは訓練ベクトルの数であり、dは訓練ベクトルの次元であり、nwはワーキング・セット内のベクトルの数であり、iは反復の回数(すなわち、ワーキング・セットが選択された回数)である。例えば、100万個の訓練ベクトル(n=106)がある場合には、カーネル行列の全体は1012の要素で構成され、ベクトル次元数d=104である場合には、カーネル計算はおよそ1016回の演算を必要とする。このような数は、平均的な現状の技術のパーソナル・コンピュータあるいはワークステーションが合理的な時間で処理することができる範囲を明らかに超えている。
本発明は、マシンの間の非常に密な結合を必要とせずに、単一の最適化を複数のマシンに広げることによる並列化を利用する。本発明は、低コストの接続ネットワークを有するメッセージ・パッシング型(message-passing)マルチプロセッサ上で効率的に機能を発揮する。さらに本発明は、図5を用いて上述した有効な分割(セグメンテーション)方法を維持する。したがって、現在使用されている最も効率的なSVMアルゴリズムに、並列化利得が加えられる。本発明は、図7に示す機能の最も計算コストがかかる部分を並列化する。本発明は、図7の機能ブロックを垂直にスライスに分割し、スライスの各々は異なるマシンにマップされていると考えることができる。この垂直のスライシングと並列化とが図8に示されている。図示されるように、ワーキング・セットを最適化し(804)、勾配を更新し、KKT制約条件をテストし(810)、カーネルを計算する計算ステップ(814)は、複数のマシン(あるいはプロセッサ)802−1,802−2,…,802−nに分割され分配されている。結果として、カーネル・キャッシュ812と(一部の実施形態においては)訓練データ816の蓄積も、複数のマシン(あるいはプロセッサ)802−1,802−2,…,802−nに分割され分配される。次のワーキング・セットを発見し、(一部の実施形態において)訓練データを分散する機能(806)は、分散されずに、ネットワーク上に広げられ、1つまたは複数の集中マシン(あるいはプロセッサ)によりネットワークを代表して実行される。図8に示す機能分割は、実験に基づいて、有利であるとして選ばれた。この実験に際して、蓄積ブロックと計算ブロックは小さなユニットに分割され、さまざまな方法で組み合わされた。
図9A、図9B及び図10を用いて本発明の実施の一形態を以下に説明する。図9Aは、この実施形態におけるアルゴリズムのフローチャートである。図9Bは、その同じアルゴリズムの疑似コードを示す図である。図10は、図9A及び図9Bに示すアルゴリズムにおける、2つのマシン1002,1004に蓄積されたデータ項目を例示する略図である。理解しやすいように2つのマシンのみを示したが、当業者は、3つ以上のマシンの場合にも議論を容易に拡張できよう。
この実施形態においては、訓練データの集合の全体が、ローカル・マシンのそれぞれに蓄積されると仮定する。図10は、次元dのn個のベクトルを有する訓練データ集合1006を示し、マシン1002,1004のそれぞれは訓練データ集合の全体を蓄積している。以下にさらに詳細に説明するように、マシンのそれぞれは、カーネル行列の一部分のみを蓄積する。すなわち、マシン1002はカーネル行列の上半分(すなわち、部分1008)を蓄積し、マシン1004はカーネル行列の下半分(すなわち、部分1010)を蓄積する。さらに、マシン1002に蓄積される勾配1012と、マシン1004に蓄積される勾配1014が示されている。マシン1002,1004のそれぞれは、すべてのα1016を蓄積する。
より一般的には、本実施形態によれば、各マシンは以下に記載のものを蓄積する。
ここで、nは訓練ベクトルの数であり、dは訓練ベクトルの次元であり、pはマシンの台数である。
アルゴリズムは、次のように説明される。なお、このアルゴリズムを、図9Aのフローチャートの各ステップを特に参照して説明する。図9Bの疑似コードの各部分を図9Aのフローチャートの各ステップと関連付けることは、当業者には容易に可能であろう。図9Aは、ネットワーク902により実行されるステップと、ローカル・マシン904のそれぞれにより実行されるステップを示している。ネットワークによって実行されるステップは、SVMアルゴリズムを実行するすべてのマシンを代表して、集中形態で実行されるステップである。したがって、このようなステップは分配されず、代わりにすべてのローカル・マシンに対し、集中化される。しかし、これらのネットワークでのステップ902は、単一の中央マシンにより実行することも可能であり、あるいは複数のマシンにより実行することもできる。重要なことは、実行される機能は、すべてのマシンの間で協調される集中化した機能であることである。ローカル・マシン904において実行されるステップへの言及は、このステップがp個のローカル・マシンのすべてにより実行されることを意味することが、理解されるべきである。
ステップ906において、完全な訓練データ集合が、ネットワーク902によって、ローカル・マシン904に分配される。ステップ912において、ローカル・マシン904において値が初期化される。この初期化は、図5Aのステップ502に関連して上述したものである。なお、ローカル・マシン904のそれぞれは、インデックスの特定の範囲(loからhi)のみを処理し、これらの値は図9Bの疑似コードにおいて符号950に示すように設定される。図10に示すように、マシン1002はlo1からhi1までのインデックスを処理し、マシン1004はlo2からhi2までのインデックスを処理する。ステップ914において、ローカル・マシン904は、ステップ920で計算された勾配に基づいてワーキング・セット(xi,xj)を選択する(最初の反復に対しては、ワーキング・セットに対して2個の訓練データ・サンプルがランダムに選ばれる)。なお、各マシンは、(図10に示すように)カーネル行列の局部的なビュー(view)のみを有するので、大域的最適化を行うことができない。したがって符号916に示すように、ローカル・マシン904は、ネットワークを介してネットワーク・マシン902にnw個の最大勾配(Gi,Gj)を送信する。単一のマシン(902)上で発生しているとここで説明することは、実際には、ネットワーク上の複数のマシンの間のデータの交換を介して分散形式で発生することが可能である。分散技術では、グローバル・ワークセットに(各マシン上で)到達するために、マシンはワークセットの伝搬/交換に関与する。このような伝搬/交換のための技術を図13〜図15を用いて以下でさらに詳細に説明する。
次に、ネットワーク・マシン902は、ステップ908において、受信した勾配を使用してグローバル・ワーキング・セットを選択する。これはnwに依存する。小さいnw(例えば、nw=2)の場合には、計算コストはネットワーク通信コストと比較して小さい。大域的に最適なワーキング・セットのインデックスi,jは、符号922で示すように、ローカル・マシン904に通信される。なお、大域的に最適なワーキング・セットの選択は、大域的最適に速く収束するために重要である。実験によれば、各ローカル・マシンのローカル・データにもとづいて各ローカル・マシンが最適化を行い、その後に結果を集約するよりも、ネットワーク・マシン902においてすべての勾配の大域的なビューに基づいて最適化を行うことの方がより有効であることが、示されている。
ステップ918において、図5Aのステップ506に関連してすでに説明したように、グローバル・ワーキング・セットが最適化される。ステップ918における最適化は、カーネル行列要素K(xi,xi),K(xj,xi),K(xi,xj),K(xj,xj)を必要とする。図10に示すように、ローカル・マシン1002,1004のそれぞれは、訓練データ1006の集合全体を含んでおり、各ローカル・マシンは、必要なカーネル行列要素K(xi,xi) 1020,K(xj,xi) 1022,K(xi,xj) 1024,K(xj,xj) 1026を決定することができる。次に、集合全部の勾配が更新される必要がある。ここでもローカル・マシン1002,1004はそれぞれ訓練データ1006の集合の全体を含んでいるから、ステップ920において、各ローカル・マシンは、自身の勾配の集合を更新することができる。なお、K(xi,xj)はK(xj,xi)と等価であり、したがって、マシンがこれらの要素の一方を有するならば、マシンはこれらの要素の両方を実効的に有していることになる。しかし図5A、図5Bの方法とは異なり、本発明による原理によれば、ローカル・マシン1002,1004のそれぞれは、カーネル行列のサブセットをのみを蓄積する。したがって、カーネル要素K(xi,xk),K(xj,xk)に対して、図10に列1028,1030としてそれぞれ示すように、ローカル・マシン1002は(k=lo1,…,hi1)に対してこれらの要素を計算する。ローカル・マシン1004は、図10に列1032,1034としてそれぞれ示すように、(k=lo2,…,hi2)に対してこれらの要素を計算する。ステップ910の収束テストが満たされると、この方法は終了する。
したがって、本発明による利点によれば、ローカル・マシンのそれぞれは、カーネル行列の一部のみを計算し蓄積する必要がある。ローカル・マシン1002は部分1008を計算し蓄積し、ローカル・マシン1004は部分1010を計算し蓄積する。カーネル行列の計算と蓄積は(計算リソースに関して)最もコストを要する機能の1つであるから、分散されたローカル・マシンにこれらの機能を分散することは、著しい処理の最適化をもたらす。
図11A、11B及び図12を用いて本発明の他の実施形態を以下にさらに説明する。。図11Aは、この実施形態におけるアルゴリズムのフローチャートである。図11Bは、その同じアルゴリズムの疑似コードを示す図である。図12は、図11A及び図11Bに示すアルゴリズムにおける、2つのマシン1202,1204に蓄積されたデータ項目を例示する略図である。理解しやすいように2つのマシンのみを示したが、当業者は、3つ以上のマシンの場合にも議論を容易に拡張できよう。
この実施形態においては、マシンは訓練データの集合の全体を蓄積するわけではないと仮定し、代わりに、訓練データは複数のローカル・マシンに分散される。図12は、次元dのn個のベクトルを有する訓練データ集合を示す。しかし、図10を用いて上述した実施形態とは異なり、この実施形態においては、マシン1202,1204のそれぞれは、訓練データ集合の一部のみを蓄積する。マシン1202はハッチングが付された部分1206を蓄積し、マシン1204はハッチングが付された部分1207を蓄積する。以下にさらに詳細に説明するように、マシンのそれぞれはカーネル行列の一部分のみを蓄積する。すなわち、マシン1202はカーネル行列の上半分(すなわち、部分1208)を蓄積し、マシン1204はカーネル行列の下半分(すなわち、部分1210)を蓄積する。さらに、マシン1202に蓄積される勾配1212と、マシン1204に蓄積される勾配1214が示されている。マシン1202,1204のそれぞれは、すべてのα1216を蓄積する。
より一般的には、本実施形態においては、各マシンは以下に記載のものを蓄積する。
ここで、nは訓練ベクトルの数であり、dは訓練ベクトルの次元であり、pはマシンの台数である。
アルゴリズムは、次のように説明される。なお、アルゴリズムを、図11Aのフローチャートの各ステップを特に参照して説明する。図11Bの疑似コードの各部分を図11Aのフローチャートの各ステップと関連付けることは、当業者には容易に可能であろう。図11Aは、ネットワーク1102により実行されるステップと、ローカル・マシン1104のそれぞれにより実行されるステップを示している。ネットワークによって実行されるステップは、SVMアルゴリズムを実行するすべてのマシンを代表して、集中形態で実行されるステップである。したがって、このようなステップは分配されず、代わりにすべてのローカル・マシンに対し、集中化される。しかし、これらのネットワークでのステップ1102は、単一の中央マシンにより実行することも可能であり、あるいは複数のマシンにより実行することもできる。重要なことは、実行される機能は、すべてのマシンの間で協調される集中化した機能であることである。ローカル・マシン1104において実行されるステップへの言及は、このステップがp個のローカル・マシンのすべてにより実行されることを意味することが、理解されるべきである。
ステップ1106において、ネットワーク1102は、各ローカル・マシンの訓練データ部分をそのローカル・マシンに分配する。ステップ1112において、ローカル・マシン1104において値は初期化される。この初期化は、図5Aのステップ502に関連して上述したものである。なお、ローカル・マシン1104のそれぞれは、インデックスの特定の範囲(loからhi)のみを処理し、これらの値は図11Bの疑似コードの符号1150に示すように設定される。図12に示すように、マシン1202はlo1からhi1までのインデックスを処理し、マシン1204はlo2からhi2までのインデックスを処理する。ステップ1114において、ローカル・マシン1104は、ステップ1120で計算された勾配に基づいてワーキング・セット(xi,xj)を選択する(最初の反復に対しては、ワーキング・セットに対して2個の訓練データ・サンプルがランダムに選ばれる)。なお、各マシンは、(図12に示すように)カーネル行列の局部的なビューのみを有するので、大域的最適化を行うことができない。したがって、符号1116に示すように、ローカル・マシン1104は、ネットワークを介してネットワーク・マシン1102にnw個の最大勾配(Gi,Gj)を送信する。ネットワーク上のデータの効率的な伝送を、図13〜図15を用いて以下にさらに詳細に説明する。
次に、ネットワーク・マシン1102は、ステップ1108において、受信した勾配を使用してグローバル・ワーキング・セットを選択する。これはnwに依存する。小さいnw(例えば、nw=2)の場合には、計算コストはネットワーク通信コストと比較して小さい。大域的に最適なワーキング・セットのインデックスi,jは、符号1122に示すように、ローカル・マシン1104に通信される。なお、大域的に最適なワーキング・セットの選択は、大域的最適に速く収束するために重要である。実験によれば、各ローカル・マシンのローカル・データにもとづいて各ローカル・マシンが最適化を行い、その後に結果を集約するよりも、ネットワーク・マシン1102においてすべての勾配の大域的なビューに基づいて最適化を行うことの方がより有効であることが、示されている。
ステップ1118において、図5Aのステップ506に関連してすでに説明したように、グローバル・ワーキング・セットが最適化される。ステップ1118における最適化は、カーネル行列要素K(xi,xi)、K(xj,xi)、K(xi,xj),K(xj,xj)を必要とする。しかしながら、上述した実施形態とは異なり、本実施形態では、ローカル・マシン1002,1004のそれぞれは訓練データの一部分のみを含んでおり、したがって、ローカル・マシンは、必要なカーネル行列要素を決定するために必要とされるデータを有していない。図12に示すように、マシン1202は、トレーニング・データ要素xjを有しているが要素xiを有していない。また、マシン1204は、データ要素xiを有しているが要素xjを有していない。したがって、符号1122に示すように、ローカル・マシンの間でトレーニング・データ要素xi,xjの転送が必要である。これは図12にも示されている。図12において、マシン1202がトレーニング・データ要素xjを送出しトレーニング・データ要素xiを受け取ることが示され、マシン1204がトレーニング・データ要素xiを送出しトレーニング・データ要素xjを受け取ることが示されている。これは、通信オーバヘッドを大きくすることを暗示するように思われるおそれがあるが、このオーバヘッドが大きくないことがシミュレーションによって示されており、このオーバヘッドはlog (p)に比例する。
ここで図11Aに戻り、必要な訓練データ項目がローカル・マシンのそれぞれに転送されると、ステップ1118においてカーネル行列要素K(xi,xi) 1220,K(xj,xi) 1222,K(xi,xj) 1224,K(xj,xj)1 226をローカル・マシンにより計算することができる。次に、集合全部の勾配を更新する必要がある。ここでもローカル・マシン1202,1204は必要なトレーニング・データ要素を含んでいるから、ステップ1120において各ローカル・マシンは自身の勾配の集合を更新することができる。上述のように、本発明による原理によれば、ローカル・マシン1202,1204のそれぞれは、カーネル行列のサブセットのみを蓄積する。したがって、カーネル要素K(xi,xk),K(xj,xk)に関して、図12にそれぞれ列1228,1230として示すように、ローカル・マシン1202は(k=lo1,…,hi1)に対してこれらの要素を計算する。ローカル・マシン1204は、図12にそれぞれ列1232,1234として示すように、(k=lo2,…,hi2)に対してこれらの要素を計算する。勾配を更新すると、最適化ステップ(1118)と勾配更新ステップ(1120)を行うためにローカル・マシンが受け取った訓練データ・ベクトルxi及びxjは、このようなデータ要素が本来は割り当てられなかったローカル・マシンから除去してもよい。これは、疑似コードでは符号1152として表されている。例えば、この除去手順は、データ要素xiをマシン1202から、データ要素xjをマシン1204から除去する。ステップ1110の収束テストが満たされると、この方法は終了する。
ここでも本発明による利点によれば、ローカル・マシンのそれぞれは、カーネル行列の一部分を計算し蓄積する必要があるだけである。ローカル・マシン1202は部分1208を計算し蓄積し、ローカル・マシン1204は部分1210を計算し蓄積する。カーネル行列の計算と蓄積は(計算リソースに関して)最もコストを要する機能の1つであるから、分散されたローカル・マシンにこれらの機能を分散することは、著しい処理の最適化をもたらす。図11A、図11B及び図12を用いて説明した本実施形態の利点は、カーネル行列、訓練データ、計算及び通信が、ローカル・マシンの間で全体として均一に分散されることである。
本明細書において説明される実施形態の計算及び通信の一般的なモデリングを以下の示す。このアルゴリズムの計算上の過酷な部分は、勾配の更新である。最適化においてαjが変化すれば、各マシンはそのそれぞれの勾配を計算しなければならない。
1回の反復に対する更新を計算するために必要とする時間Tcは、次式により近似できる。
これは、カーネル計算がすべての他の計算に対して支配的であってd回の演算を必要とすることと、合理的な近似、例えばRBF(動径基底関数)あるいは多項式カーネルに対して2つのベクトルの内積が計算されることと、dが大きいこと、を仮定している。
1回の反復に対する通信において必要とされるものは、次のワーキング・セットを決定するための各マシンからnw個の要素と、勾配の更新のための各マシンに対する最大nt=nw*d個の要素である。
2つのプロセッサの間でnt個の要素を通信するため要する時間ttは、次式で与えられる。
したがって、勾配を収集しデータを分配することを含む合計通信時間Ttは、(勾配の更新に対するデータの分配に一斉同報(ブロードキャスト)を使用すると仮定して)次式で与えられる。
これは、オーダーがO(log (p))で表されるプロセッサ数に対する有利なスケーリング(scaling)を示している。一斉同報を行う機能を備えていない場合には、式(7)の第2項と第3項にはlog (p)で乗算されるが、これはスケーリングのオーダーを変えない。カーネル値のキャッシングの効果は、式(5)を次式で置換することによりモデル化できる。
ここで、γは平均のキャッシュ・ヒット率、すなわち、カーネル値への要求(リクエスト)のうちキャッシュから満足し得るものの割合である。
実際のカーネル関数が知られている場合にのみ決定できる若干の定数因子を無視しているために、これらの式は、計算と通信のための時間を正確には予測しない。しかし、これらの式は、時間見積もりを通常支配する項目のスケーリングを示している。並列化の視点からは、通信時間TtがO(log (p))であり計算時間TcがO(1/p)であることは重要であって、多数のプロセッサの場合に対して本発明の原理が有用であることを示している。さらに、メモリ必要量もO(1/p)に比例し、その結果、多くの場合、超線形加速(superlinear acceleration)に導く高いキャッシュ・ヒット率γを得る。
制約要因は、プロセッサ間の一定の通信オーバヘッドt1であり、これは、例えば、0.05〜0.lmsとすることができる。計算時間が少なくなると、定数項、すなわち式(7)のlog (p)*t1が支配的になってくる。すなわち非常に多数のマシンの場合に対しては、その各々の計算が時間的に通信のレイテンシー(待ち時間)に匹敵するようになってくる。その点以上では、マシンの数をさらに増加しても、速度はそれ以上には改善されない。式(5)〜(8)は、nwが小さいかどうか、最適化のための計算が無視し得るかどうかについて、合理的な推定を提供する。通常、nw<100であるnwが使用可能であり、その場合には、この簡略化が正当とされる。
上述した所要のネットワーク通信を実現するためには、さまざまな可能性があることを当業者は認識するであろう。さらに詳細には、符号916(図9)及び符号1116(図11)に示すように、ローカル・マシンはそのnw個の最大勾配をネットワークに送信し、ステップ908(図9)及びステップ1108(図11)において、グローバル・ワーキング・セットが選択される。単純な実施形態においては、グローバル・ワーキング・セットを決定するために、最大勾配の決定のための単一のネットワーク・マシンに最大勾配を送ることができる。しかし、さらに処理を最適化するために、より効率的なネットワーク通信を、さまざまな実施形態で実現することができる。
図13は、そのような1つの実施形態を示し、最大勾配を選択するために複数のネットワーク・ノードが使用されている。ローカル・マシンのそれぞれは、符号1302〜1316のハッチングが付された円として表されている。図13のネットワーク・アーキテクチャを利用する実施形態では、ローカル・マシン1302〜1306のそれぞれは、その最大勾配を、次に高いレベルのネットワーク・ノードに送信する。ローカル・マシン1302,1304は、ネットワーク・ノード1318にそれらの最大勾配を送信し、ローカル・マシン1306,1308は、ネットワーク・ノード1320にそれらの最大勾配を送信し、ローカル・マシン1310,1312は、ネットワーク・ノード1322にそれらの最大勾配を送信し、ローカル・マシン1314,1316は、ネットワーク・ノード1324にそれらの最大勾配を送信する。順番に、ネットワーク・ノード1318,1320,1322,1324のそれぞれは、受信した勾配についてのnw個の最大勾配を決定し、次いで、決定した最大勾配を次にレベルが高いネットワーク・マシンに送信する。ネットワーク・マシン1318,1320は決定した最大勾配をネットワーク・マシン1326に送信し、ネットワーク・マシン1322,1324は決定した最大勾配をネットワーク・マシン1328に送信する。最後に、ネットワーク・マシン1326,1328は受信した勾配の最大勾配を決定し、トップ・レベルのネットワーク・マシン1330に決定した最大勾配を送信する。次いで、ネットワーク・マシン1330は、その受信した勾配についてのnw個の最大勾配を決定する。
次に、ワーキング・セット内のnw個のベクトル(図11A及び図11Bのアルゴリズムが使用されていれば、nw個のベクトルのベクトルに加えてワーキング・セットのnw個のデータ・ベクトルも)が、ネットワーク・マシンからローカル・マシンに一斉同報(ブロードキャスト)される。さらに詳しくは、ネットワーク・マシン1330は、ネットワーク・マシン1326,1328にインデックスを送信する。ネットワーク・マシン1326は、ネットワーク・マシン1318,1320にインデックスを送信する。ネットワーク・マシン1328は、ネットワーク・マシン1322,1324にインデックスを送信する。ネットワーク・マシン1318は、ローカル・マシン1302,1304にインデックスを送信する。ネットワーク・マシン1320は、ローカル・マシン1306,1308にインデックスを送信する。ネットワーク・マシン1322は、ローカル・マシン1310,1312にインデックスを送信する。ネットワーク・マシン1324は、ローカル・マシン1314,1316にインデックスを送信する。したがって、本実施形態によれば、最大値を有する勾配は、トップ・レベルのネットワーク・マシンから中間のネットワーク・マシンを介してローカル・マシンまでの、結果の階層的な一斉同報に加えて、ネットワーク・マシンの木構造を使用して決定される。
図14は、最大勾配を選択するために複数のネットワーク・ノードが使用される、他の実施形態を示す図である。ここでも、ローカル・マシンのそれぞれは、ハッチングが付された円1402〜1416として表されている。図14に示す実施形態は、最大勾配の決定に関しては、図13に示すものと同じである。しかしながら、(図13で行われたような)階層的な方法で中間のネットワーク・マシンを介してインデックスをローカル・マシンに一斉同報で戻す代わりに、図14に示す実施形態では、トップ・レベルのネットワーク・マシン1430が、ローカル・マシン1402〜1416のそれぞれにインデックスを直接送信する。
図15は、ネットワーク通信のための他の実施形態を示す。この実施形態においては、各マシン(グラフ内のハッチングが付されたノードにより表す)は、そのワーキング・セットを隣接ノードに送信し、次いで、隣接ノードから受け取った2個のワーキング・セットを使用して、各ノードは、最良のnw個のサンプルを新しいワーキング・セットとして計算する。次に、各マシンは、この新しいワーキング・セットをその2番目に近い隣接ノードに送信し、再び各ノードは、受け取った2つのワーキング・セットを使用して、新しいワーキング・セットを計算する。このプロセスは、各々の連続した反復の間に、データを交換するマシンの間隔を1つずつ増加して、繰り返される。例えば、マシン1502を考える。1回目の反復の間に、マシン1502は、そのワーキング・セットをマシン1504,1506を送り、マシン1504,1506からワーキング・セットを受け取るでろう。次に、マシン1502は、マシン1504から受け取ったワーキング・セットと、マシン1506から受け取ったワーキング・セットとを使用して、最良のnw個のサンプルを新しいワーキング・セットとして計算するであろう。2回目の反復の間に、マシン1502は、その最も最近に計算したワーキング・セットをマシン1508,1510に送り、最も最近に計算されたワーキング・セットをマシン1508,1510から受け取るであろう。次に、マシン1502は、マシン1508から受け取ったワーキング・セットと、マシン1510から受け取ったワーキング・セットとを使用して、新しいワーキング・セットとして最良のnw個のサンプルを計算するであろう。このプロセスは、各々の連続した反復の間に、データを交換するマシンの間隔を1つずつ増加して、継続する。
当業者は、本明細書において説明されているさまざまなフローチャートとブロック図が、本発明によるさまざまな実施形態の機能的なステップと機能的な要素を表していることを認識するであろう。実際のハードウェアの実施形態は変化してもよく、本発明によるさまざまな実施形態をいかに実現するかは、本明細書の説明から当業者には容易に明白であろう。例えば、本明細書において説明した機能は、本明細書において説明した機能を定めるコンピュータ・プログラム・コードを実行するプロセッサを含むコンピュータにより実行することができる。
このようなコンピュータは、この技術分野において公知であり、例えば、公知のコンピュータ・プロセッサ、メモリ・ユニット、記憶装置、コンピュータ・ソフトウェア、及び他の構成部品を使用して、実現することができる。図16は、このようなコンピュータの高レベルでの構成を示すブロック図である。コンピュータ1602は、このような動作を定めるコンピュータ・プログラム命令を実行することによりコンピュータ1602の総合的な動作を制御するプロセッサ1604を含んでいる。コンピュータ・プログラム命令は、記憶装置1612(例えば、磁気ディスク)に蓄積することが可能であり、コンピュータ・プログラム命令の実行が要求された場合に、メモリ1610にロードされる。したがって、コンピュータ1602の動作は、メモリ1610及び/または記憶装置1612に蓄積されたコンピュータ・プログラム命令により定められ、コンピュータ1602は、コンピュータ・プログラム命令を実行するプロセッサ1604により制御される。さらにコンピュータ1602は、ネットワークを介して他の装置と通信するための、1つまたは複数のネットワーク・インタフェース1606を有する。さらにコンピュータ1602は、コンピュータ1602と利用者とのインタラクションを可能にする装置(例えば、ディスプレイ、キーボード、マウス、スピーカ、ボタンなど)を表す入力/出力(I/O)1608を含んでいる。実際のコンピュータの具体例には他の構成部品が含まれていること、図16は単に説明のためのこのようなコンピュータの構成要素の一部の高レベル表現であることを当業者は理解するであろう。さらに、本明細書において説明した機能は、ハードウェア、ソフトウェア、及びハードウェアとソフトウェアのさまざまな組み合わせを使用して実現できることを、当業者は理解するであろう。
前述の詳細な説明は、あらゆる点で例示であって制限例ではないことが理解されるべきであり、本明細書において開示した本発明の範囲は、この詳細な説明から決定されるべきではなく、特許法により許容される最大限に応じて解釈されるように、特許請求の範囲から決定されるべきである。本明細書において示し説明した実施形態は本発明による原理の実例に過ぎず、さまざまな修正が本発明の範囲と技術思想から逸脱することなく当業者により実現可能であることが、理解されるべきである。当業者は、本発明の範囲と技術思想から逸脱することなく、さまざまな他の特徴の組み合わせを実現することが可能であろう。
202,204,206 サポート・ベクトル
208,404 超平面
602,1006 訓練データ集合
604 カーネル行列
1602 コンピュータ
1604 プロセッサ
1606 ネットワーク・インタフェース
1608 入力/出力(I/O)
1610 メモリ
1612 記憶装置
208,404 超平面
602,1006 訓練データ集合
604 カーネル行列
1602 コンピュータ
1604 プロセッサ
1606 ネットワーク・インタフェース
1608 入力/出力(I/O)
1610 メモリ
1612 記憶装置
Claims (26)
- 複数の処理ノードの1つにおける訓練データの集合に基づいたサポート・ベクトル・マシンのトレーニングの方法であって、
a)ローカル・データに基づいて訓練データのローカル・ワーキング・セットを選択する段階と、
b)前記ローカル・ワーキング・セットに関する選択されたデータを送信する段階と、
c)訓練データのグローバル・ワーキング・セットの識別を受け取る段階と、
d)前記訓練データのグローバル・ワーキング・セットを最適化する段階と、
e)前記訓練データのグローバル・ワーキング・セットの勾配の一部分を更新する段階と、
f)収束条件を満足するまで前記段階a)から段階e)までを繰り返す段階と、
を有する方法。 - 前記ローカル・データは、勾配のローカル・サブセットを有する請求項1に記載の方法。
- 前記ローカル・データは、勾配とカーネル値のローカル・サブセットの関数の最大値を有する、請求項1に記載の方法。
- 前記選択されたデータは、前記ローカル・ワーキング・セットの勾配を有する請求項1に記載の方法。
- 前記ローカル・ワーキング・セットの前記勾配は、最大値を有する勾配である請求項4に記載の方法。
- 前記1つの処理ノードは、訓練データの集合の全体を蓄積する請求項1に記載の方法。
- 前記1つの処理ノードは、訓練データの集合の一部分のみを蓄積する請求項1に記載の方法。
- 前記受け取る段階は、訓練データの前記グローバル・ワーキング・セットの少なくとも一部分を受け取る段階をさらに有する、請求項7に記載の方法。
- 前記勾配の一部分を更新する段階は、カーネル行列の一部分を生成する段階を有する請求項1に記載の方法。
- 複数の処理ノードを使用する訓練データの集合に基づいたサポート・ベクトル・マシンのトレーニングの方法であって、
a)前記複数の処理ノードのそれぞれにおいて、ローカル・データに基づいて訓練データのローカル・ワーキング・セットを選択する段階と、
b)前記ローカル・ワーキング・セットに関する選択されたデータを使用して、訓練データのグローバル・ワーキング・セットを生成する段階と、
c)前記複数の処理ノードのそれぞれにおいて、前記訓練データのグローバル・ワーキング・セットを最適化する段階と、
d)前記複数の処理ノードのそれぞれにおいて、前記訓練データのグローバル・ワーキング・セットの勾配の一部分を更新する段階と、
e)収束条件を満足するまで段階a)から段階d)までを繰り返す段階と、
を有する方法。 - 前記ローカル・データは、勾配のローカル・サブセットを有する請求項10に記載の方法。
- 前記ローカル・データは、勾配とカーネル値のローカル・サブセットの関数の最大値を有する請求項10に記載の方法。
- 前記選択されたデータは、前記ローカル・ワーキング・セットの勾配を有する請求項10に記載の方法。
- 前記ローカル・ワーキング・セットの勾配は、最大値を有する勾配である請求項13に記載の方法。
- ネットワーク・ノードの木構造を使用して、前記最大値を有する勾配を決定する段階と、
階層的な一斉同報(broadcast)を使用して、前記最大値を有する勾配を送信する段階と、
をさらに有する、請求項14に記載の方法。 - 前記複数の処理ノードのそれぞれは、訓練データの集合の全体を蓄積する請求項10に記載の方法。
- 前記複数の処理ノードのそれぞれは、訓練データの集合の一部分のみを蓄積する請求項10に記載の方法。
- 前記複数の処理ノードのそれぞれにおいて、前記訓練データのグローバル・ワーキング・セットの少なくとも一部分を受け取る段階をさらに有する、請求項17に記載の方法。
- 前記更新する段階は、前記複数の処理ノードのそれぞれにおいてカーネル行列の一部分を生成する段階を有する、請求項10に記載の方法。
- 複数の処理ノードの1つにおける訓練データの集合に基づいてサポート・ベクトル・マシンをトレーニングする装置であって、
a)ローカル・データに基づいて、訓練データのローカル・ワーキング・セットを選択する手段と、
b)前記ローカル・ワーキング・セットに関する選択されたデータを送信する手段と、
c)訓練データのグローバル・ワーキング・セットの識別を受け取る手段と、
d)前記訓練データのグローバル・ワーキング・セットを最適化する手段と、
e)前記訓練データのグローバル・ワーキング・セットの勾配の一部分を更新する手段と、
f)収束条件を満足するまで前記段階a)から段階e)までを繰り返す手段と、
を有する装置。 - 前記ローカル・データは、勾配のローカル・サブセットを有する請求項20に記載の装置。
- 前記ローカル・データは、勾配とカーネル値のローカル・サブセットの関数の最大値を有する請求項20に記載の装置。
- 前記選択されたデータは、前記ローカル・ワーキング・セットの勾配を有する請求項20に記載の装置。
- 前記ローカル・ワーキング・セットの前記勾配は、最大値を有する勾配である請求項23に記載の装置。
- 前記受け取る手段は、前記訓練データのグローバル・ワーキング・セットの少なくとも一部分を受け取る手段をさらに有する、請求項20に記載の装置。
- 前記勾配の一部分を更新する手段は、カーネル行列の一部分を生成する手段を有する、請求項20に記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72119305P | 2005-09-28 | 2005-09-28 | |
US11/276,235 US7406450B2 (en) | 2005-09-28 | 2006-02-20 | Spread kernel support vector machine |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007095069A true JP2007095069A (ja) | 2007-04-12 |
Family
ID=37059503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006262425A Pending JP2007095069A (ja) | 2005-09-28 | 2006-09-27 | 分散カーネル・サポート・ベクトル・マシン |
Country Status (4)
Country | Link |
---|---|
US (1) | US7406450B2 (ja) |
EP (1) | EP1770612B1 (ja) |
JP (1) | JP2007095069A (ja) |
WO (1) | WO2007037797A2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009041101A1 (ja) | 2007-09-28 | 2009-04-02 | Nec Corporation | データ分類方法およびデータ分類装置 |
JP2011524049A (ja) * | 2008-06-04 | 2011-08-25 | エヌイーシー ラボラトリーズ アメリカ インク | 超並列アクセラレータを使用して学習機械の訓練と分類とを並列化し高速化するシステム及び方法 |
WO2014025018A1 (ja) * | 2012-08-09 | 2014-02-13 | 株式会社ブリヂストン | 路面状態判別方法とその装置 |
WO2020129149A1 (ja) * | 2018-12-18 | 2020-06-25 | 日本電気株式会社 | 作業集合選択装置、作業集合選択方法および作業集合選択プログラム |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7340441B1 (en) * | 2004-12-17 | 2008-03-04 | The Mathworks, Inc. | Search directions in pattern search via rotation |
RU2007123771A (ru) * | 2004-12-17 | 2009-01-27 | Зе Юниверсити Оф Квинсленд (Au) | Способ уменьшения количества характеристик для решающих машин |
US20080208836A1 (en) * | 2007-02-23 | 2008-08-28 | Yahoo! Inc. | Regression framework for learning ranking functions using relative preferences |
US8380647B2 (en) | 2009-08-14 | 2013-02-19 | Xerox Corporation | Training a classifier by dimension-wise embedding of training data |
US8407171B2 (en) * | 2010-02-01 | 2013-03-26 | Seiko Epson Corporation | Method for constraint optimization under box constraints |
US8626677B2 (en) | 2010-05-28 | 2014-01-07 | Microsoft Corporation | Training SVMs with parallelized stochastic gradient descent |
US20120191639A1 (en) * | 2011-01-26 | 2012-07-26 | International Business Machines Corporation | Statistics forecast for range partitioned tables |
CA2899314C (en) | 2013-02-14 | 2018-11-27 | 24/7 Customer, Inc. | Categorization of user interactions into predefined hierarchical categories |
US20140317120A1 (en) * | 2013-04-19 | 2014-10-23 | 24/7 Customer. Inc. | Identification of points in a user web journey where the user is more likely to accept an offer for interactive assistance |
CN103984980B (zh) * | 2014-01-28 | 2017-12-19 | 中国农业大学 | 一种温室内温度极值的预测方法 |
US9489598B2 (en) * | 2014-08-26 | 2016-11-08 | Qualcomm Incorporated | Systems and methods for object classification, object detection and memory management |
US9600231B1 (en) * | 2015-03-13 | 2017-03-21 | Amazon Technologies, Inc. | Model shrinking for embedded keyword spotting |
US10586171B2 (en) | 2016-05-31 | 2020-03-10 | International Business Machines Corporation | Parallel ensemble of support vector machines |
US11347751B2 (en) * | 2016-12-07 | 2022-05-31 | MyFitnessPal, Inc. | System and method for associating user-entered text to database entries |
CN106971237B (zh) * | 2017-02-27 | 2018-04-24 | 中国水利水电科学研究院 | 一种基于细菌觅食优化算法的中长期径流预报方法 |
US10776269B2 (en) * | 2018-07-24 | 2020-09-15 | International Business Machines Corporation | Two level compute memoing for large scale entity resolution |
US11748665B2 (en) | 2019-04-03 | 2023-09-05 | International Business Machines Corporation | Quantum feature kernel alignment |
GB2593757B (en) | 2020-04-02 | 2022-04-06 | Graphcore Ltd | Control of processing node operations |
GB2593756B (en) | 2020-04-02 | 2022-03-30 | Graphcore Ltd | Control of data transfer between processing nodes |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004054567A (ja) * | 2002-07-19 | 2004-02-19 | Communication Research Laboratory | データ分類方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649068A (en) * | 1993-07-27 | 1997-07-15 | Lucent Technologies Inc. | Pattern recognition system using support vectors |
US5640492A (en) * | 1994-06-30 | 1997-06-17 | Lucent Technologies Inc. | Soft margin classifier |
US6269323B1 (en) * | 1996-10-04 | 2001-07-31 | At&T | Support vector method for function estimation |
US5950146A (en) * | 1996-10-04 | 1999-09-07 | At & T Corp. | Support vector method for function estimation |
US6157921A (en) * | 1998-05-01 | 2000-12-05 | Barnhill Technologies, Llc | Enhancing knowledge discovery using support vector machines in a distributed network environment |
US6134344A (en) * | 1997-06-26 | 2000-10-17 | Lucent Technologies Inc. | Method and apparatus for improving the efficiency of support vector machines |
US6327581B1 (en) * | 1998-04-06 | 2001-12-04 | Microsoft Corporation | Methods and apparatus for building a support vector machine classifier |
US6658395B1 (en) * | 1998-05-01 | 2003-12-02 | Biowulf Technologies, L.L.C. | Enhancing knowledge discovery from multiple data sets using multiple support vector machines |
US6882990B1 (en) * | 1999-05-01 | 2005-04-19 | Biowulf Technologies, Llc | Methods of identifying biological patterns using multiple data sets |
US6996549B2 (en) * | 1998-05-01 | 2006-02-07 | Health Discovery Corporation | Computer-aided image analysis |
US7117188B2 (en) * | 1998-05-01 | 2006-10-03 | Health Discovery Corporation | Methods of identifying patterns in biological systems and uses thereof |
US6760715B1 (en) * | 1998-05-01 | 2004-07-06 | Barnhill Technologies Llc | Enhancing biological knowledge discovery using multiples support vector machines |
US6789069B1 (en) * | 1998-05-01 | 2004-09-07 | Biowulf Technologies Llc | Method for enhancing knowledge discovered from biological data using a learning machine |
US6192360B1 (en) * | 1998-06-23 | 2001-02-20 | Microsoft Corporation | Methods and apparatus for classifying text and for building a text classifier |
US6456991B1 (en) * | 1999-09-01 | 2002-09-24 | Hrl Laboratories, Llc | Classification method and apparatus based on boosting and pruning of multiple classifiers |
US6633857B1 (en) * | 1999-09-04 | 2003-10-14 | Microsoft Corporation | Relevance vector machine |
US6728690B1 (en) * | 1999-11-23 | 2004-04-27 | Microsoft Corporation | Classification system trainer employing maximum margin back-propagation with probabilistic outputs |
US6757584B2 (en) * | 2000-07-19 | 2004-06-29 | Prudsys Ag | Device and method for generating a classifier for automatically sorting objects |
US6944602B2 (en) * | 2001-03-01 | 2005-09-13 | Health Discovery Corporation | Spectral kernels for learning machines |
EP1393196A4 (en) * | 2001-05-07 | 2007-02-28 | Health Discovery Corp | CORES AND METHODS FOR SELECTING CORES FOR USE IN TEACHING MACHINES |
AU2002305652A1 (en) * | 2001-05-18 | 2002-12-03 | Biowulf Technologies, Llc | Methods for feature selection in a learning machine |
US7054847B2 (en) * | 2001-09-05 | 2006-05-30 | Pavilion Technologies, Inc. | System and method for on-line training of a support vector machine |
US6944616B2 (en) * | 2001-11-28 | 2005-09-13 | Pavilion Technologies, Inc. | System and method for historical database training of support vector machines |
US7035467B2 (en) * | 2002-01-09 | 2006-04-25 | Eastman Kodak Company | Method and system for processing images for themed imaging services |
US7321809B2 (en) * | 2003-12-30 | 2008-01-22 | The Boeing Company | Methods and systems for analyzing engine unbalance conditions |
-
2006
- 2006-02-20 US US11/276,235 patent/US7406450B2/en active Active
- 2006-08-09 WO PCT/US2006/031227 patent/WO2007037797A2/en active Application Filing
- 2006-08-10 EP EP06118759.7A patent/EP1770612B1/en not_active Not-in-force
- 2006-09-27 JP JP2006262425A patent/JP2007095069A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004054567A (ja) * | 2002-07-19 | 2004-02-19 | Communication Research Laboratory | データ分類方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009041101A1 (ja) | 2007-09-28 | 2009-04-02 | Nec Corporation | データ分類方法およびデータ分類装置 |
US8589397B2 (en) | 2007-09-28 | 2013-11-19 | Nec Corporation | Data classification method and data classification device |
JP2011524049A (ja) * | 2008-06-04 | 2011-08-25 | エヌイーシー ラボラトリーズ アメリカ インク | 超並列アクセラレータを使用して学習機械の訓練と分類とを並列化し高速化するシステム及び方法 |
WO2014025018A1 (ja) * | 2012-08-09 | 2014-02-13 | 株式会社ブリヂストン | 路面状態判別方法とその装置 |
US9434387B2 (en) | 2012-08-09 | 2016-09-06 | Bridgestone Corporation | Method and apparatus for determining road surface condition |
WO2020129149A1 (ja) * | 2018-12-18 | 2020-06-25 | 日本電気株式会社 | 作業集合選択装置、作業集合選択方法および作業集合選択プログラム |
JPWO2020129149A1 (ja) * | 2018-12-18 | 2021-10-21 | 日本電気株式会社 | 作業集合選択装置、作業集合選択方法および作業集合選択プログラム |
JP7207423B2 (ja) | 2018-12-18 | 2023-01-18 | 日本電気株式会社 | 作業集合選択装置、作業集合選択方法および作業集合選択プログラム |
Also Published As
Publication number | Publication date |
---|---|
EP1770612A1 (en) | 2007-04-04 |
WO2007037797A2 (en) | 2007-04-05 |
WO2007037797A3 (en) | 2009-04-16 |
US20070094170A1 (en) | 2007-04-26 |
EP1770612B1 (en) | 2016-12-14 |
US7406450B2 (en) | 2008-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007095069A (ja) | 分散カーネル・サポート・ベクトル・マシン | |
Hernández et al. | Using machine learning to optimize parallelism in big data applications | |
CN109993299B (zh) | 数据训练方法及装置、存储介质、电子装置 | |
US10832120B2 (en) | Systems and methods for a multi-core optimized recurrent neural network | |
US7680765B2 (en) | Iterate-aggregate query parallelization | |
Baldán et al. | Distributed fastshapelet transform: a big data time series classification algorithm | |
Sarazin et al. | SOM clustering using spark-mapreduce | |
Liu et al. | Multi-Level Partitioning and Distribution of the Assignment Problem for Large-Scale Multi-Robot Task Allocation. | |
KR101998020B1 (ko) | 그래프 생성 방법 및 장치 | |
Xiong et al. | Recursive learning for sparse Markov models | |
CN111966495A (zh) | 数据处理方法和装置 | |
Müller et al. | Accelerating noisy VQE optimization with Gaussian processes | |
Weiden et al. | Wide quantum circuit optimization with topology aware synthesis | |
Nair et al. | Data mining using hierarchical virtual k-means approach integrating data fragments in cloud computing environment | |
Raman et al. | DS-MLR: exploiting double separability for scaling up distributed multinomial logistic regression | |
CN110175172B (zh) | 基于稀疏二分图的极大二分团并行枚举方法 | |
JP2021039751A (ja) | 大規模組み合わせ最適化のための大域ビューを用いた局所探索 | |
von Kirchbach et al. | Efficient process-to-node mapping algorithms for stencil computations | |
Zhang et al. | A bayesian discrete optimization algorithm for permutation based combinatorial problems | |
Liu et al. | Parallelizing active memory ants with mapreduce for clustering financial time series data | |
Karunarathna et al. | Scalable graph convolutional network based link prediction on a distributed graph database server | |
Bouaguel et al. | Distributed Evolutionary Feature Selection for Big Data Processing | |
Wang | Cellular matrix for parallel k-means and local search to Euclidean grid matching | |
Faysal et al. | Fast stochastic block partitioning using a single commodity machine | |
EP4134836A1 (en) | Relationship analysis using vector representations of database tables |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090605 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120306 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120605 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120703 |