SVMとは
SVMとは、データを2つのグループに分ける境界線を引くための機械学習アルゴリズムである
読み: エスブイエム
かんたんに言うと
領海を確定する国境線引きのようなものである。互いの島から最も離れた中間地点に線を引くことで、将来新しい小島が見つかっても紛争になりにくい。
未知データにも強いSVMのマージン最大化とカーネル法
データを分類する際、単に直線を引くだけなら無数に正解が存在する。だがSVMは、最も近いデータ点であるサポートベクターからの距離が最大になるように境界線を引く。これがマージン最大化と呼ばれるアプローチ。未知のデータが入力されても誤分類しにくい堅牢なモデルが出来上がる。
直線で分けられない複雑なデータはどう扱うのか。
ここでカーネル法が登場する。データを高次元の空間に変換し、無理やり平面でスライスして分類する手法。二次元の散布図では混ざり合っているデータも、三次元に持ち上げればスパッと切れる面が見つかる。数学的な美しさはあるが、実務ではハイパーパラメータの調整に泣かされることが多い。Cやgammaの値を少し変えるだけで、モデルの挙動が全く別物になるからである。どこで妥協するかは常に悩ましい。
製造や経理の現場でSVMが生きる局面
製造業のラインで不良品を弾くセンサーデータの判定や、経理部門での不自然な経費申請の検知。これらはSVMの強みが生きる局面である。異常値と正常値の境界線を引く作業において、SVMは非常にシャープな結果を出す。
Pythonのライブラリであるscikit-learnを使えば、数行のコードで実装できる。DataRobotやAmazon SageMakerのような機械学習プラットフォームにデータを放り込めば、数十のアルゴリズムを比較した上でSVMがベストだと提案してくることも珍しくない。
ただ、現場のデータは教科書通りにはいかない。
欠損値だらけのExcelデータをそのまま突っ込んでもゴミしか出力されない。前処理の泥臭い作業からは、どんな高価なツールを使っても逃げられないのである。現場の担当者が入力した表記揺れを直すだけで日が暮れることもある。
ディープラーニングとの比較で見える限界
何でもディープラーニングで解決しようとする風潮がある。だが、手元に数百件のデータしかない状況でニューラルネットワークを組むのは愚の骨頂である。過学習を起こして使い物にならなくなる。
少ないデータでカチッとした分類モデルを作るなら、SVMの方がはるかに優秀である。外れ値の影響を受けにくく、限られたサンプルからでも実用的な境界線を見つけ出す。
しかし、データが数百万件を超えるとSVMは途端に息切れする。計算コストがデータ数の2乗から3乗に比例して跳ね上がり、学習がいつまで経っても終わらなくなるのである。AWSのインスタンス料金だけが虚しく溶けていく。
このトレードオフをどう評価するか。データが増え続ける前提のシステムにSVMを組み込むのは、後々の運用を考えると判断が分かれる。
実運用に耐えるアルゴリズムの選択基準
予測精度だけを追い求めるなら、XGBoostやLightGBMを使う手もある。Kaggleなどのコンペティションでは常連のアルゴリズムである。だが、法務部門の契約書リスク判定のように「なぜその結論に至ったか」の説明責任が問われる場面では、複雑すぎるアンサンブル学習は現場から敬遠される。
SVMもカーネル法を使うと中身はブラックボックス化しがちである。線形カーネルに留めて解釈性を残すか、精度を優先して非線形に踏み切るか。
最新の流行りに飛びつく前に、自社のデータ量と説明責任のバランスを天秤にかける。泥臭いデータクレンジングの工数を確保し、運用に耐えるシンプルなモデルを維持する。華やかなAIの裏側は、いつだって地味な決断の連続である。
SVMとニューラルネットワークの比較
| 比較項目 | SVM | ニューラルネットワーク |
|---|---|---|
| 決定境界の表現力(カーネルトリック vs 多層結合) | カーネルトリックを用いた非線形境界学習などの数学的な決定境界表現 | ネットワーク層の多層結合を通じた自己表現による柔軟な境界表現 |
| 非線形モデリングへの強さ | データからの有用な特徴抽出は人間によるある程度の設計作業に依存 | 人間による特徴設定なしにデータから高度なパターン・特徴を自動抽出 |
| ハイパーパラメータ調整と学習時間 | 決定境界の解釈が数学的に可能でハイパーパラメータ調整が比較的平易 | 内部過程がブラックボックス化しやすくパラメータ調整のためのリソースが巨大 |
| 高次元データや大規模データセットの適応性 | 初期導入から実運用までの学習・運用コスト | 複雑なカスタマイズに応じた拡張的な運用コスト確保 |
| 判断根拠の解釈可能性 | シンプルなユースケースに適合し利用シナリオが限定的 | エンタープライズや複雑なビジネス要件等に適合する |
データ量と要求される解釈性の違いです。データ数がそこまで多くなく解釈可能で安定した結果を求めるならSVM、GPUを用いて膨大なデータから高度なパターンを自動抽出させたいならニューラルネットワークが使われます。
同じ失敗を二度としないAIエージェント
今のAIは、聞けば何でも答えてくれます。
でも、セッションが切れた瞬間に前回の失敗を忘れます。
当社が開発しているAIは、過去の経緯を念頭に置いて、
聞かれる前に「それは前回うまくいきませんでした」と声をかけます。
人間にも同じ失敗をさせず、AI自身も繰り返しません。
古参の社員が横にいるように、黙っていても気づいてくれる。
それが、当社が考える本当のAI社員です。
