この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載しています。転載の際は出典元にご連絡ください。 SVM?これは古い分類アルゴリズムであり、入手は簡単です。 しかし、上司から SVM の説明を求められた時や、面接で SVM について質問された時はいつも、言葉に詰まってしまい、多くの間違いを犯してしまいます。 「この人たちはどうやっていつも私の盲点をあんなに正確に見つけるんだろう?」 人々は自分が習得したものが偽の SVM ではないかと疑うようになります。 このような問題がある場合、このSVM の数学的原理が非常に役立ちます。見てみましょう。 SVMは線形分類から始まるSVM を理解するには、まず「線形分類器」という概念を明確にする必要があります。
この超平面の方程式は次のように表すことができます (wT の T は転置を表します)。 △ 2次元座標系では、超平面は直線である f(x) が 0 に等しい場合、x は超平面上の点であり、f(x) が 0 より大きい点は y=1 のデータ点に対応し、f(x) が 0 より小さい点は y=-1 のデータ点に対応します。 SVM が目指すのは、各タイプのサンプル ポイントから超平面までの最長距離を見つけること、つまり最大マージン超平面を見つけることです。任意の超平面は次の線形方程式で記述できます。 2次元の点 (x, y) から直線 Ax+By+C=0 までの距離の式は次のとおりです。 n次元空間に拡張すると、点x=(x1, x2…xn)から直線wTx+b=0までの距離は次のようになります。 で: サポート ベクトルの定義によれば、サポート ベクトルから超平面までの距離は d であり、他の点から超平面までの距離は d より大きくなります。 つまり、次のようになります。 ||w||dは正の数なので、1 とします (1 に等しい理由は、導出と最適化を容易にするためであり、目的関数の最適化には影響しません)。したがって、 2 つの方程式を組み合わせると、次のようになります。 この時点で、最大マージン超平面の上部超平面と下部超平面を取得しました。 各サポートベクトルから超平面までの距離は次のように表すことができます。 y(wTx+b)>1>0 より、 y(wTx+b)=|wTx+b|となり、サポートベクトルから超平面までの距離は次のように書き直すことができます。 この距離を最大化します: 2 を掛けるのは、後続の導出の便宜を図るためであり、目的関数には影響しません。 サポートベクターを代入すると次のようになります。 したがって、最適化の問題は次のようになります。 外れ値への対処場合によっては、いくつかの点 (x(i), y(i)) に対して、分類器が誤った決定を下すことがあります。 実際に使用するための SVM モデルを開発する際には、過剰適合を回避するために冗長性が設計されていますが、それでも、より小さな範囲内でエラーを制御する方法を見つける必要があります。 この問題は、モデルにペナルティ メカニズム(c で示される) を追加することで解決できます。 SVM の出力が E であると仮定すると、上図の E=0 はペナルティがないことを意味します。 c が非常に大きい場合、モデル分類はより正確になりますが、サポート ベクトルから超平面までの距離が小さくなり、過剰適合に陥りやすくなります。 c = 1 の場合、サポート ベクトルから超平面までの距離が最大化されます。分類エラーが発生する可能性はありますが、これはより良い解決策です。 制約付き凸最適化問題制約付き凸最適化問題を克服するために、PEGASOS アルゴリズムが使用されます。 制約付き独立方程式を書き直します。 上記の式は、点が線から遠く離れている場合は誤差がゼロになり、そうでない場合は誤差が (1-t(i)) になることを意味します。 最小限に抑える必要があるのは次の点です。 制約が削除されるため、損失を最小限に抑えるために勾配降下法を採用できます。 勾配降下アルゴリズムは損失を計算します。 SVM に勾配降下法を適用します。 非線形分類SVMを用いて非線形データを分類するには、データを高次元に投影すること、つまり、低次元データの特徴ベクトルを増やして低次元データを高次元データに変換する必要がある。 データ特徴ベクトルを追加するには膨大な計算リソースが必要になるため、ここではカーネル関数が使用されます。 このアプローチの最も難しい部分は、独自のモデルに適したカーネル関数を選択することです。 ここでは、自動パラメータ調整方法GridSearch をお勧めします。 さまざまなカーネル関数 (線形、RBF、多項式、シグモイドなど) にラベルを付け、それらを順番に呼び出して、モデルに最適なものを見つけます。 変数パラメータを定義します:
電話: 上記では、SVM の背後にある数学的原理を詳しく説明し、SVM モデルを使用する際の問題に対するいくつかの解決策を示します。 このうち、コードを使ってカーネル関数を自動選択する方法は、海外ブロガーのDaksh Trehan氏によるものです。 SVM の原理についてより深く理解している場合、またはその他の実用的なヒントがある場合は、メッセージを残してみんなと共有してください。 |
>>: プロジェクトを始めたいけれど、どこから始めればいいのか分からないですか?興味深いオープンソースの機械学習プロジェクト7つを試してみる
朗報です、朗報です、本物のソラの新しいビデオがあります!通りかかったらぜひお見逃しなく! (本物のS...
データセンター内外を問わず、自動化に境界はないと考えるのは簡単です。 AI がデータ センターの運用...
2020 年は特別な年であり、World Innovators Meet (WIM) の 6 年目と...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
人工知能の時代におけるセキュリティ専門職は何かという問題は、徐々に人々が直面しなければならない問題に...
[[185868]]スピーチの基本概念スピーチは複雑な現象です。それがどのように生成され、どのように...
[[421134]]ロボット工学と自動化には違いがありますか? 自動化が適用されるかどうかわからない...
5月26日、チューリング賞受賞者で米国工学アカデミー会員のジョン・ヘネシー氏が、2021年中国国際ビ...
翻訳者 | 朱 仙中校正:孫淑娟1. 畳み込みニューラル ネットワーク (CNN) とは何ですか?一...
2023 年の最後の 1 ~ 2 日で、GitHub のプログラミング指向のチャットボット Copi...
この記事では、Alipay アプリのディープラーニング エンジンである xNN を紹介します。 xN...
[[248203]]バイオテクノロジーの進歩により、人間の寿命は今後も延び続け、社会の家族構成、結婚...
『スター・ウォーズ』のスピンオフシリーズ『ボバ・フェットの書』には、ファンの間で刺激的な議論を巻き...
[[423004]]文字列が与えられたら、文字列内の各単語を 1 つずつ逆にします。例1:入力: 「...