スラック変数とは、数理最適化や機械学習において、不等式制約条件を等式制約条件に変換するため、あるいは制約の「緩み」を許容するために導入される補助的な変数です。特にサポートベクターマシンでは、データが完全に線形分離できない場合に、一定の誤分類を許容するソフトマージンを実現するために重要な役割を果たします。
スラック変数とは
スラック変数とは、数理計画や機械学習の最適化問題において、不等式で表された制約条件を等式に変換したり、条件の「違反」を数値化して許容したりするために導入される非負の変数です。サポートベクターマシンにおいては、完全に境界を引けないデータに対して許容するエラーの大きさを表す指標として機能します。
詳しく解説
最適化問題において、不等式制約(例:A ≦ B)を等式(例:A + s = B, s ≧ 0)に変換する際、この「s」がスラック変数と呼ばれます。機械学習の分野、特にサポートベクターマシンにおいては、データが完全にきれいに分類できない場合にこの概念が活躍します。すべてのデータを完璧に分類しようとするハードマージンは、ノイズに弱く、線形分離不可能なデータには適用できません。そこで、スラック変数を導入することで、境界線からの「はみ出し」や「誤分類」を一定のペナルティのもとで許容するソフトマージンという手法が考案されました。これにより、モデルの過学習を防ぎ、実データに対して汎化性能の高い決定境界を引くことが可能になります。
具体例・使われ方
例えば、赤のドットと青のドットが混ざり合った散布図を考えます。直線で完全に2色に分けることが不可能なとき、スラック変数は個々のドットが「どれだけ本来の領域から外れて反対側に侵入しているか」を数値で表します。はみ出しがない正しい位置のデータには0が割り振られ、境界線を超えてしまったデータにはその距離に応じた正の値が与えられます。最適化問題のプロセスでは、このスラック変数の総和(ペナルティ)を小さく抑えつつ、最もきれいに分類できる境界線を探索します。
似た用語との違い
スラック変数と混同されやすいのがラグランジュ乗数です。スラック変数は不等式を等式に変換したり、制約の違反度を直接表したりする実質的な変数であるのに対し、ラグランジュ乗数は制約付き最適化問題を制約なしの最適化問題に変換するための係数(重み)です。サポートベクターマシンにおいては、スラック変数を導入して定式化したソフトマージンの問題を解く過程で、ラグランジュ乗数を用いたデュアル問題(双対問題)へと変換して計算を行います。
注意点
スラック変数を導入する際には、誤分類や違反をどの程度許容するかという「ペナルティの重み(ハイパーパラメータC)」を適切に調整する必要があります。この値が大きすぎると、誤分類を極端に嫌うハードマージンに近づき過学習が起こりやすくなります。逆に値が小さすぎると、誤分類を許容しすぎてモデルの識別精度が著しく低下してしまいます。また、スラック変数は常に0以上(非負)の制約を持つため、最適化アルゴリズムの計算量が増加する要因にもなります。