- 2013 年 11 月 25 日
- ヴァシリス・ヴリニオティス
- 。 1つのコメント
前のXNUMXつの機械学習チュートリアルでは、 ナイーブベイズ と 最大エントロピー 分類子。 このチュートリアルでは、ソフトマックス回帰とも呼ばれる多項ロジスティック回帰について説明します。 C ++、PHP、JAVAなどの従来のプログラミング言語で多項ロジスティック回帰を実装することは、モデルのパラメーターを推定するために反復アルゴリズムが必要であるという事実にもかかわらず、かなり簡単です。
更新:Datumbox Machine Learning Frameworkがオープンソースになり、無料で ダウンロード。 パッケージcom.datumbox.framework.machinelearning.classificationをチェックして、JavaでのSoftMax回帰分類子の実装を確認してください。
多項ロジスティック回帰とは何ですか?
多項ロジスティック回帰は、使用する仮説関数によりSoftMax回帰とも呼ばれ、監視あり
テキスト分類を含むいくつかの問題で使用できる学習アルゴリズム。 それは回帰モデルです ロジスティック回帰を一般化します 出力がXNUMXつ以上の可能な値をとることがある分類問題に。 多項ロジスティック回帰は、同じアクティブ化関数を使用するため、MaxEntアルゴリズムと密接に関連していることに注意してください。 それでも、この記事では、Max Entropyチュートリアルで行ったのとは異なるコンテキストでメソッドを紹介します。
多項ロジスティック回帰を使用する場合
多項ロジスティック回帰は、反復アルゴリズムを使用してモデルのパラメーターを推定するため、ナイーブベイズと比較してトレーニングにかなり多くの時間が必要です。 これらのパラメータを計算した後、SoftMax回帰は、CPUとメモリの消費に関して競争力があります。 Softmax Regressionは、異なるタイプ(連続、離散、ダミー変数など)の機能がある場合に推奨されますが、回帰モデルであるため、多重共線性の問題に対して脆弱であり、機能が高度に相関している場合は回避する必要があります。
Softmax回帰の理論的背景
同様に 最大エントロピー、ドキュメント分類のコンテキストでアルゴリズムを紹介します。 したがって、ドキュメントを特定のクラスに分類するために、ドキュメントのコンテキスト情報を使用します。 トレーニングデータセットをm(xi,yi)ペアとし、kをすべての可能なクラスの数とします。 また、 Bag-of-Wordsフレームワーク {w1、…、wn}は、テキスト内に表示できるn個の単語のセットです。
SoftMax回帰のモデルでは、すべての単語とカテゴリの組み合わせについて係数シータの推定が必要です。 この係数の符号と値は、ドキュメント内の特定の単語の存在が、カテゴリへの分類にプラスまたはマイナスの効果があるかどうかを示します。 モデルを構築するために、 パラメーター。 (θi ベクトルはiの係数を格納しますth nワードのそれぞれのカテゴリ、および切片項の係数の1)。
以前に行ったことに従って 最大エントロピー、トレーニングデータセット内のすべてのドキュメントは、語彙の各単語がドキュメント内に存在するかどうかを示す0と1を持つベクトルとして表されます。 さらに、すべてのベクトルには切片項の追加の「1」要素が含まれます。
Softmax Regressionでは、ドキュメントxがyとして分類される確率は次のようになります。
【1]
したがって、前述のθパラメータを推定し、新しい文書xを与えたとすると、仮説関数は、k個の可能なクラスのそれぞれについて上記の確率を推定する必要があります。 したがって、仮説関数は推定された確率を持つk次元ベクトルを返します。
【2]
「最大事後」決定ルールを使用して、新しいドキュメントを分類するときに、最も確率の高いカテゴリを選択します。
多項ロジスティック回帰モデルでは、次のコスト関数を使用し、それを最小化するシータパラメーターを見つけようとします。
【3]
残念ながら、コスト関数を最小化するパラメーターを推定する閉形式の方法は知られていないため、勾配降下法などの反復アルゴリズムを使用する必要があります。 反復アルゴリズムでは、以下に等しいコスト関数の偏微分を推定する必要があります。
【4]
使用することにより バッチ勾配降下アルゴリズム シータパラメータは次のように推定します。
1. Initialize vector θj with 0 in all elements
2. Repeat until convergence {
θj <- θj - α (for every j)
}
θパラメータを推定した後、モデルを使用して新しいドキュメントを分類できます。 最後に、前の記事で説明したように、 勾配降下 「そのまま」は決して良い考えではありません。 アルゴリズムを拡張して学習率を調整し、反復を実行する前に値を正規化することは、収束を改善し、実行を高速化する方法です。
記事は気に入りましたか? Twitterで共有してください。 🙂