言語処理のための機械学習入門を読んでみた

自然言語処理のための機械学習入門を読んだので載っていた内容を簡単にまとめたいと思います。

1.必要な数学的知識

最適化問題、確率論、情報理論について述べられている

最適化問題

制約付き条件で最適化を行う方法としてラグランジュの未定乗数法についてがある。ラグランジュの未定乗数法は3章クラスタリングEMアルゴリズムと4章分類のサポートベクトルマシンで使用されている。

確率論

確率分布に従い文章内の単語から分類する。パラメータを最適化するための最尤推定、MAP推定などがある。

情報理論

文章内の単語の出現率が独立に同一の確率分布に従う(independently, identically distributed: i.i.d.)という前提の元に最尤推定などのパラメータ最適を行うが、実際のデータは乱雑さがありその尺度であるエントロピーの求める KLダイバージェンスとJSダイバージェンスは文章ないに出現する単語の確率分布の差を求めることが出来る

2.文章および単語の数学的表現

nグラム(n-gram)

nグラムとは隣り合って出現したn単語のことを言う

文書、文のベクトル表現

bag-of-wordsという文書のベクトル表現方法について説明 例えば"nature or nurture? nurture passes nature."という文章は以下のように表現できる xd = (n("nature", d"), n("nurture", d), n("or", d), n("passes",d)) = (2,2,1,1)

文章に対する前処理とデータスパースネス問題

文章内の単語を全てベクトル化するのはあまり有益ではないので、不要な単語は前処理として取り除くようにしておく、取り除く単語のことをストップワードと呼ぶ。 50000語の辞書があった時に100語からなる新聞をベクトル化するとほとんどの要素は0になる、このように0の要素が大きい場合データは疎であるといえデータを処理するために必要な統計量が十分に得られない問題が発生する、このような問題をデータスパースネス問題という

3.クラスタリング

似ているもの同士をグループにするクラスタリングについて述べられている。クラスタリングではラベル付けされた教師データを学習させるのではなく、似ているもの同士でグループを作るようにする。

k-平均法

最初に適当に分けてしまって、それからよりうまく別れるように調整していくことによってクラスタリングを行う方法。

EMアルゴリズム

入力データに含まれない隠れ変数まで考慮してクラスタリングを行う方法

クラスタリングにおける問題点や注意点

クラスタリングではどんなクラスタが出来上がるか事前に知ることができなく、最終的なクラスタ数は何にすれば良いのかという問題がある。 k-平均法やEMアルゴリズムなど繰り返しに基づくクラスタリング手法では結果が初期値に依存するので、いくつかの初期値で計算することが必要になってくる。

4.分類

ナイーブベイズ分類器

ベイズの定理に基づいて各クラスに分類される確率を計算し、最大となったものを分類先として取得する。

SVM(サポートベクターマシン)

SVMは直線を引いて分類を行う、カーネル法と組み合わせることで非線形な分類も可能になる。

本の中では分類手法としてナイーブベイズ分類器とSVMについて説明したが、他にはロジスティック回帰や決定木、それから再帰ニューラルネットワーク と畳み込みニューラルネットワークも使われているようです

5.系列ラベリング

各単語の品詞をタグ付けする方法のことを系列ラベリングと呼んでいる。

隠れマルコフモデル

隠れマルコフモデルは系列ラベリングに用いることが出来るシンプルなモデル。