default eye-catch image.

95%信頼区間

[mathjax] 95%信頼区間に関する本を読んだのでまとめてみる。 仮説検定振り返り まず、仮説検定について振り返る。 母集団が正規分布(平均(mu)、標準偏差(sigma))に従うとき、母集団の数をNと仮定した場合、 観測された標本値がxであったとすると、 Nとする仮定は棄却できるかどうかを確かめることを仮説検定としていた。 棄却可否の根拠は以下の式で考えた。 (z = frac{x-mu}{sigma})と変換すると、zは標準正規分布をなす。 標準正規分布の95%予言的中区間は(-1.96 leq z leq 1.96)であるから、 begin{eqnarray} -1.96 leq frac{x-mu}{sigma} leq 1.96 end{eqnarray} つまり、標本値が仮定する正規分布の95%予言的中区間に含まれているか否かを根拠とした。 zが範囲からはずれる場合、Nという仮定を棄却する。 95%信頼区間 今、母集団のN数から平均、標準偏差を求められるものとする。 例えば、コインをN回振ったときに表が出る回数の平均(mu )は( frac{N}{2} )、標準偏差(sigma)は(frac{sqrt{N}}{2})。 このとき、未知の変数(x)について、仮定Nを棄却できない範囲は以下の通りである。 begin{eqnarray} -1.96 leq frac{x-mu}{sigma} leq 1.96 \\ -1.96 leq frac{x-frac{N}{2}}{frac{sqrt{N}}{2}} leq 1.96 end{eqnarray} Nを小さい方から大きい方に動かしていくと、上記の不等式が成立する/しないの境界がわかる。 N=12のときは成立しないが、N=13のときは成立する。 N=30のときは成立するが、N=31のときは成立しない。 つまり、(13 leq N leq 30)のときに不等式は成立する。 これがNの95%信頼区間。 95%信頼区間の意味 95%信頼区間とはNが95%の確率でその区間に入るという意味ではない。 統計あるあるの一つ。 Nは実在する真の値であるがわからない値。 (x)はNという仮定の上で確率的に発生する値なことに注意。 Nの区間推定は以下の不等式を満たす範囲。 begin{eqnarray} -1.96 leq frac{x-frac{N}{2}}{frac{sqrt{N}}{2}} leq 1.96 end{eqnarray} (13 leq N leq 30)のときに、( x )は平均(mu=frac{N}{2})、標準偏差(sigma=frac{sqrt{N}}{2})の正規分布の 95%予言的中区間に含まれる、ということを言っている。 それぞれのNに対してそれぞれの(x)の分布が存在していて、 その(x)においてNを棄却できない、というそんな区間。 平均(mu)、標準偏差(sigma)ともに母集団の数Nから自動的に定る正規分布なんで、 フェイクといえばフェイクだけども、 母集団の数Nを決めるだけで、そこから発生する値を95%の確率で予言できるなんてすごいな。

default eye-catch image.

母集団の推測と仮説検定

[mathjax] 母集団の推定 背後に正規分布に従う母集団があるとして、そこからあるデータ(x)が観測されたとする。 観測されたデータ(x)から、母集団を推測しようとする試みについてまとめてみる。 仮説検定 標本が平均(mu)、標準偏差(sigma)の正規分布に従うとき、 標本から観測されたデータ(x)が母集団(母数=N)の95%予言的中区間の範囲外であるならば、 母数=Nであるという仮説を棄却する。 このとき、以下の2つの考え方があるが、 1) 観測されたデータxが、仮定した母集団の95%予言的中区間の外である 2) 仮定した母集団が誤っている 1)の肯定的言及は言うことができず、2)の消極的言及のみ言うことができる。 今は母集団を推測しようとしているのだから、2)をもって母集団を予測していく。 コインの裏表から考える仮説検定 今、コインをN回投げたとする。 表が出る回数の平均は(mu=frac{N}{2})、標準偏差は(sigma=frac{sqrt{N}}{2})である。 N=16と仮定すると(mu=frac{16}{2}=8)、(sigma=frac{sqrt{16}}{2}=2)である。 95%予言的中区間の不等式を変形していく。 begin{eqnarray} -1.96 leq frac{x-mu}{sigma} leq 1.96 \\ -1.96 leq frac{x-8}{2} leq 1.96 \\ 4.08 leq x leq 11.92 end{eqnarray} もし仮定したN=16の半分である8回表が出た場合、上記の不等式は満たされる。 従って、N=16であるという仮説は棄却できない。 またN=16としたとき、表が2回した出なかったのであれば、上記の不等式は満たされない。 従って、N=16であるという仮説は棄却できる。

default eye-catch image.

予言的中区間

[mathjax] 正規分布の特性から、逆に95%の確率で出現を言い当てられる区間を決められることを読んだ。 標準正規分布、一般正規分布の95%予言的中区間についてまとめてみる。 標準正規分布の95%予言的中区間 平均(mu=0)、標準偏差(sigma=1)の標準正規分布において、 1(sigma)区間の相対度数の和は約0.68、2(sigma)区間の相対度数の和は約0.95。 逆にいうと、 標準正規分布から出現する値を\"-1から+1の範囲の値\"とすると約68%の確率で予言することになる。 また、\"-2から+2の範囲の値\"とすると、約95%の確率で予言することになる。 (確率を可能性の意味で使っていない) 確率の方を95%ぴったりとすると、範囲は\"-1.96から+1.96\"となる。 これを95%予言的中区間と言う。 次回に観測する値が95%の確率で-1.96から+1.96の範囲に入ることを予測している。 もともと定義域が無い((-inftyから+infty))中で、いきなり-1.96から+1.96という範囲を 持ち出して、そこに入る確率が95%であるというのは強烈。 一般正規分布の95%予言的中区間 標準正規分布(x)に対して、以下の変換により一般正規分布を得る。 begin{eqnarray} z = sigma x + mu end{eqnarray} 対象線が(x=0)から(x=mu)にシフトし、(sigma)区間が1から(sigma)に遷移する。 95%予言的中区間は(-(1.96sigma+mu)) から(+(1.96sigma+mu))となる。 平均(mu)、標準偏差(sigma)を満たす正規分布であれば、 次回観測するデータは95%の確率で(-(1.96sigma+mu)) から(+(1.96sigma+mu))の範囲である、 という強烈さ。 95%予言的中区間の不等式表現 標準偏差を軸にすると正規分布がかなりわかりやすくなる。 「標準偏差何個分のずれの範囲」を不等式にすると、さらに直接的になる。 xが平均(mu)、標準偏差(sigma)を満たす正規分布である場合、 以下のように変換することで標準正規分布(z)を得られる。 ((z)の変換の意味は、データが平均値(mu)から標準偏差(sigma)いくつ分ずれているか、を表す) begin{eqnarray} z = frac{(x-mu)}{sigma} end{eqnarray} xが平均(mu)、標準偏差(sigma)を満たす正規分布である場合、 95%予言的中区間は以下の不等式で得られる範囲である。 begin{eqnarray} -1.96 leq frac{(x-mu)}{sigma} leq +1.96 end{eqnarray}

default eye-catch image.

標準正規分布と一般正規分布の\(\sigma\)区間

[mathjax] 確率密度関数を扱わないで正規分布をうまく説明する本を読んだので、 理解のためにまとめてみる。 標準正規分布 平均が0、標準偏差が1である分布をもつデータセットについて度数分布表を書くとする。 データセット内のデータは(-infty)から(+infty)まで出現するが、 その出現頻度の相対度数は0を挟んで正負対象であり、 バラツキの縮約値は標準偏差=1で決まる。 出現頻度の相対度数は平均=0のときが一番大きく、 絶対値が大きくなるに従って小さくなっていく。 -1から+1までの出現頻度の相対度数の和は約0.68となる。 つまり、全体の68%が-1から+1までの値である。 -2から+2までの出現頻度の相対度数の和は約0.95となる。 つまり、全体の95%が-2から+2までの値である。 そんな分布を標準正規分布といっている。 一般正規分布 標準正規分布を満たすデータセットの全てのデータに対して、 (sigma)倍して、(mu)を足したデータセットを考える。 begin{eqnarray} z = sigma x + mu end{eqnarray} ここで、平均(mu)、標準偏差(sigma)を満たすデータセットについて一律(+a)という操作を行う場合、 その結果のデータセットの平均は(mu+a)となるが、分散は(sigma^2)、標準偏差は(sigma)のまま変わらない。 また、平均(mu)、標準偏差(sigma)を満たすデータセットについて一律(b)を掛ける操作を行う場合、 その結果のデータセットの平均は(bmu)、分散は((sigma b)^2)、標準偏差は(sigma b)。 このことから、 zの平均はxの平均(=0)+(mu) = (mu)。 zの標準偏差はzの標準偏差(=1)*(sigma) = (sigma)。 平均(mu)、標準偏差(sigma)を持つデータセットについても、 (mu-sigma)から(mu+sigma)の相対出現頻度の和は全体の約68%を満たす。 また、(mu-2sigma)から(mu+2sigma)の相対出現頻度の和は全体の95%を満たす。 zを一般正規分布と呼んでいる。 (sigma)区間 (-sigma)から(+sigma)までの区間で全体の約68%を占める。この区間を(1sigma)区間と呼んだりする。 また(-2sigma)から(+2sigma)までの区間で全体の約95%を占める。この区間を(2sigma)区間と呼ぶ。 無限の範囲を取りうるデータセットが正規分布であるとわかっているのであれば、 (2sigma)区間を予言することで、95%の確率で正解となる。 偏差値 一般正規分布において平均値(mu)の得点を偏差値50、 (mu-sigma)を偏差値40、(mu+sigma)を偏差値60と割りあてる。 偏差値60というのは(+1sigma)区間だから、上位32%でしかないんだな。 偏差値50から60というのが、いかに普通なのかがよくわかる。 対して、偏差値70というのは(+2sigma)区間だから、上位5%ということ。 標準偏差(sigma)が大きい場合、(1sigma)区間が広いので、 平均から大分良さげな点をとっても偏差値が高くない、ということになる。

default eye-catch image.

S.D.(Standard Deviation)の定義の導出

[mathjax] データセットのバラツキを縮約する統計量である分散と標準偏差について、 単なる概念ではなくて、直感的な理解の助けになる読み物を読んだのでまとめてみる。 偏差( sigma^2 ) とは平均 ( bar{x} ) との距離 ( x_i - bar{x} )のことを言う。 以下のように偏差の平均を式変形するとゼロになる。 $$ begin{eqnarray} frac{1}{N} sum_{i}^{N} sigma^2 &=& frac{1}{N}sum_{i}^{N}( x_i - bar{x} ) \\ &=& frac{1}{N} left( sum_{i}^{N}x_i - N bar{x} right) \\ &=& frac{1}{N} sum_{i}^{N}x_i - frac{N}{N} bar{x} \\ &=& bar{x} - bar{x} \\ &=& 0 end{eqnarray} $$ 距離 ( x_i - bar{x} ) の平均がゼロになるところに平均( bar{x} ) があるイメージ。 データセットのバラツキを調べるために偏差の平均を使うと、 平均を挟んでプラスとマイナスが打ち消しあってしまうから、 プラスとマイナスを打ち消し合わないように2乗の平均を使おう というのが基本的なアイデア。 $$ begin{eqnarray} v &=& sigma^2 \\ &=& frac{1}{N} sum_{i}^{N}(x_i-bar{x})^2 end{eqnarray} $$ 2乗の平均だとデータセットのデータの単位が2乗されていて大きすぎるから、 データセットのデータの単位に合わせるためにルートをとる。それが標準偏差。 $$ begin{eqnarray} sigma &=& sqrt{ frac{1}{N} sum_{i}^{N}(x_i-bar{x})^2} end{eqnarray} $$ 標準偏差によりデータセットのバラツキをデータの同じ次数で表現できる。 文部科学省 用語解説より引用 データの値の離れ具合(散らばりの度合い)を表す数値。分散(「データの平均と個々のデータの差」の2乗の平均)の平方根で求められ,標準偏差が0とは,ばらつきがない(データの値がすべて同じ)ことを意味する。

default eye-catch image.

統計検定

前からだったかもしれないけども、気づいたら統計検定がCBTになっていた。 正確には2級までがCBT。 2級の出題範囲表を眺めてみる。出題範囲は以下の通り。 出題範囲 大学1年か2年でやる一般教養の「統計」1年分+αくらいと言われているけども、 さっぱり覚えてないな。情報理論であったりアルゴリズム論だと、割と基礎的な概念を言えたりするのもあるんだが、 「覚えてない」という認識なので、たぶん単位とるために丸暗記したんだろう。。 ただ、ここ数年人工知能バブルに片足突っ込んだことで断片的にわかるものがある。 2級は一般教養ということで、これを知って何かが出来るか、ということはなくて、 その先、自力でデータを活用するための「基礎」でしかない。 過去何百年もの間体系化されてきた学問の上に世間の関心が広がっているという事実は、 ある意味幸運なことなんだろうと思う。 ということで2級取得を目指してみようと思う。

default eye-catch image.

コサイン類似度 Cosine Simirality

[mathjax] BoW化した文章同士の類似度を求める一番メジャーなやり方。 内積の定義を式変形しただけ。 $$ begin{eqnarray} cos(vec{q},vec{d}) &=& frac{vec{q}cdot vec{d}}{|vec{q}| cdot |vec{d}|} \\ &=& frac{vec{q}}{|vec{q}|} cdot frac{vec{d}}{|vec{d}|} \\ &=& frac{sum_{i=1}^{|V|}q_i d_i}{sqrt{sum_{i=1}^{|V|}q_i^2} cdot sqrt{sum_{i=1}^{|V|}d_i^2}} end{eqnarray} $$ BoWが正規化された単位ベクトルの場合は分母が1になるから、 $$ cos(vec{q},vec{d}) = vec{q} cdot vec{d} = sum_{i=1}^{|V|} q_i d_i $$ 次元が3以下の場合はベクトルがどれだけ同じ向きを向いているか、という説明で十分だけど、4以上の場合は結局「類似」のような言葉になってしまう。 範囲 シュワルツの不等式というのがあって、 $$ sum_{i=1}^{n} p_i^2 cdot sum_{i=1}^{n} d_i^2 geq sum_{i=1}^{n} p_i d_i $$ コサイン類似度の分子は分母以下であることが決まる。 シュワルツの不等式の等号が成り立つとき、 コサイン類似度の分子と分母が同じとなり1となる。 pi, di のいずれかが 0のとき、qidiは0となる。 全部0となるとき、コサイン類似度の分子は0となる。 だから、定義の上ではコサイン類似度は0以上1以下だと思うんだ。 類似度? BoW化してタームの頻度を要素とした時点で、ベクトルは意味を持たないことになるから、ベクトル同士のコサイン類似度を取ったところでベクトル同士が似た意味を持つとは言えない。単にタームの出現頻度が似ているというだけ。 BoWではなく、特徴量を要素とするベクトル同士のコサイン類似度をとったのであればベクトル同士の特徴量が似ていることを表す。 文章をなんとか直交する特徴量からなるベクトルで表現することができれば、意味の類似度を求めることができる。 tf-idfに触れずに書くとこんな感じ。 文章が短いと 文章が短いと、文章がだいぶ異なるのに出現頻度は近い、という状況が起きやすくなり、あてにならなくなる。

default eye-catch image.

ロジスティック回帰とROC曲線

[mathjax] ロジスティック回帰 2値の特徴量tを持つトレーニングデータ(x,y,t)を正解/不正解に分類する問題を考えたとき、最尤推定によりモデルf(x,y)を決めるのがロジスティック回帰。モデルf(x,y)がトレーニングデータ(x,y,t)を正解と分類する確率P(x,y)を立てて、P(x,y)の最大化問題を解くことでf(x,y)のパラメタを決定する。その際、P(x,y)はロジスティック関数を使って以下の通り表される。 $$ begin{eqnarray} z_n &=& sigma(w^Tphi_n) \\ P(x,y) &=& z_n (1-z_n) end{eqnarray} $$ P(x,y)において、トレーニングデータを定数とすることでP(x,y)をパラメタwに関する関数とした。P(x,y)を最大化するwを求めたいのだが、P(x,y)を解析的に最大化することはできず、パラメタwを数値計算(反復再重み付最小二乗法、ニュートンラフソン法)することによりf(x,y)のパラメタwを更新していく。wが一定値に収束した場合、f(x,y)=0はトレーニングデータ内の正解データ(t=1)を1/2の確率で正解(t=1)として分類できることを示す。 正解分類確率の制御 トレーニングデータ(x,y,t)に対して、f(x,y)t>0の場合は「正解」、f(x,y)t0の方向あるt=0のデータ、f(x,y)0の方向に距離α分平行移動していくと、f(x,y)>0のときは正解であったもののf(x,y)>αのときは不正解となるデータが発生する。 逆にf(x,y)<0の方向に距離β分平行移動していくと、f(x,y)<0のときは正解であったもののf(x,y)0方向にα移動することで、トレーニングデータを「正解」として分類する確率を50%から75%に変更する等の操作にあたる。 ロジスティック回帰とROC曲線 分類問題を整理すると、分類対象とするトレーニングデータの特徴量tを2値のいずれであるか識別することであり、分類とその結果の組み合わせとして以下の組み合わせが考えられる。それぞれ統計の分野で名前が付いている。 t=1であるデータを1として分類する TP, True Positive t=1であるデータを0として分類する FN, False Negative t=0であるデータを0として分類する TN, True Negative t=0であるデータを1として分類する FP, False Positive かなり混乱するので図を張り付けておく。観測データが1なのか0なのかは\"Positive\"/\"Negative\"、それを1と分類したのか0と分類したのかは\"True\"/\"False\"。t=1/0は符号に過ぎないので\"Positive\"/\"Negative\"はその時次第。True/Falseは分類結果が特徴量と一致するかどうかを表す。 ロジスティック関数P(x,y)=σ(w0+w1x+w2y)は、トレーニングデータ(x,y)を1として分類する確率を返す関数である。 最尤推定によりwを求めたのだから、f(x,y)=w0+w1x+w2yは、確率的に最もトレーニングデータを正しく分類する多項式となっている。 \"確率的に最も\"の度合いを定量的に表すのがROC曲線とAUC。 全トレーニングデータ(x,y)に対してP(x,y)を計算し降順ソートすると、P(x,y)が高ければ(つまり上位であれば)t=1のデータが多いはずで、P(x,y)が低ければ(つまり下位であれば)t=0のデータが多いはずだ。P(x,y)に相当するTP,FPが期待される。実際には上位にt=0のデータ、下位にt=1のデータが観察されることがあり、単純にP(x,y)からTP,FPが決まるものではない。 TPがP(x,y)よりも相対的に高く、(1-P(x,y))よりも相対的に低ければ、多項式の性能が良いということになる。 定数c=P(x,y)を定めたときP(x,y)<c<1の範囲でt=1のものは True Positive, P(x,y)<c<1の範囲でt=0のものは False Positive。0<c<P(x,y)の範囲でt=0のものは False Negative, t=1のものは False Positive。cを1から0に下げていくと True Positive, False Positiveの数がそれぞれ独立に増加していく。各々のcを真陽性率、偽陽性率という。 横軸に偽陽性率FP、縦軸に真陽性率TPをとり、トレーニングデータ(x,y)をプロットした図がROC(Receiver Operating Characteristic)曲線。 P(x,y)を1から0に減らしていったときTP/FPそれぞれ増加するが、ROC曲線によりTPが大きくFPが小さいプロットが性能の良い分類であることを視覚的に表現できる。 ROC曲線の左下と右上を結ぶ直線は、0<P(x,y)<1の全域に渡りFP=TPであったことを示し、ランダムにTrueかFalseかを答えたときの視覚的表現にあたる。 左上に凸となっているROC曲線が性能の良さを表し、ROC曲線の下の面積AUC(Area Under the Curve)が分類器の性能を表す数値。

default eye-catch image.

ロジスティック回帰 教師有り確率的分類モデル

[mathjax] 2種類の値tを持つトレーニングデータ{(xn,yn,tn)}を正解/不正解に分類するパラメトリックモデルを立てて、パラメトリックモデルと不正解に分類されるトレーニングデータの距離E(w)が最小になるwを決定しモデルを作成するのがパーセプトロンであった。 E(w)においてトレーニングデータ(xn,tt)を定数として使用することでE(w)をwから決まる関数とし、wの決定をE(w)の最小化問題に帰着させる考え方は最小二乗法と同様であった。パーセプトロンは最小二乗法と異なり、E(w)の最小化問題を解析的に解けないため、数値計算によりE(w)を小さくする方向にwを更新する手順を取った。 最小二乗法はトレーニングデータから決定した多項式が未知のサンプルデータにおいても二乗誤差が最小になることを期待していたのと同様に、パーセプトロンも誤分類する未知のサンプルとの距離が最小になることを期待した分類モデルであることを意味する。最小二乗法もパーセプトロンも、サンプルデータのバラツキを考慮していない。 サンプルデータがモデルからσのバラつきをもって存在することを加味することで、パラメタwとバラつきσから決まる尤度関数を導入し、wの決定を尤度関数の最大化問題に帰着する最尤推定法に拡張した。最尤推定法により、パラメトリックモデルが変数とσの関数となり、確率的な回帰を検討できるようになった。 サンプルデータがモデルにより正解であると分類される確率を考慮することで、回帰モデルとして未来を予測する要素を増やすことができる。そこで、本エントリにおいてその手法(ロジスティック回帰)をまとめる。 ITエンジニアのための機械学習理論入門posted with amazlet at 17.03.10中井 悦司 技術評論社 売り上げランキング: 8,130Amazon.co.jpで詳細を見る ロジスティック回帰 モデルf(x,y)を仮定したとき、トレーニングデータ(x,y)について|f(x,y)|はモデルとの距離を表す。また、f(x,y)>0の方向にt=1のデータ、f(x,y)<0の方向にt=-1のデータが存在するモデルであることを示す。 f(xn,yn)tn > 0 であれば分類は正解であるから、f(x,y)が大きくなるにつれてt=1であるデータの発生確率が上がり、f(x,y)が小さくなるにつれてt=1であるデータの発生確率が下がることになる。逆に、f(x,y)が大きくなるにつれてt=-1であるデータの発生確率が下がり、小さくなるにつれてt=-1であるデータの発生確率が上がる。 横軸にf(x,y)、縦軸にt=1であるトレーニングデータがf(x,y)から得られる確率を取ると以下のような曲線が得られる。一般にロジスティック曲線と呼ばれる。 ロジスティック関数は以下のように表現される。 $$ sigma(a)=frac{1}{1+e^{-a}} $$ トレーニングデータ(x,y)で得られたデータの特徴量tが1である確率は以下の式で表される。 $$ P(x,y) = sigma(w_0 + w_1 x + w_2y) $$ また、t=1の場合とt=-1の場合で確率が逆になるため $$ begin{eqnarray} t_n=1の場合 &:& P(x_n,y_n) \\ P_n &=& P(x_n,y_n)^1{1-P(x_n,y_n)}^0 \\ &=& P(x_n,y_n) \\ t_n=-1の場合 &:& 1-P(x_n,y_n) \\ P_n &=& P(x_n,y_n)^0{1-P(x_n,y_n)}^1 \\ &=& 1-P(x_n,y_n) \\ end{eqnarray} $$ まとめて書くと以下となるが、これは全てのトレーニングデータがモデルから得られる確率であり尤度関数である。 $$ P_n = P(x_n,y_n)^{t_n}{ 1-P(x_n,y_n)}^{1-t_n} $$ ここで、 $$ P_n = sigma(w_0+w_1x+w_2y) $$ だから、 $$ P_n = sigma(w_0+w_1x_n+w_2y_n)^t{t_n}{1-sigma(w_0+w_1x_n+w_2y_n)}^{1-t_n} $$ 多項式のベクトル表現をロジスティック関数に入れた結果をznとする。 $$ begin{eqnarray} w &=& left ( begin{array}{c} w_0 \\ w_1 \\ w_2 end{array} right ) \\ phi_n &=& left ( begin{array}{c} 1 \\ x_n \\ y_n end{array} right ) \\ z_n &=& sigma (w^Tphi_n) end{eqnarray} $$ 尤度関数Pnをznを使って表すと以下となる。 $$ P_n = z_n^{t_n}(1-z_n)^{1-t_n} $$ 尤度関数を最大とするwを決定する最尤推定法によりwを決定する方法をロジスティック回帰という。 ロジスティック回帰における尤度関数の最大化 パーセプトロンにおいて数値計算(確率的勾配降下法)によりwの修正値を求めwを更新していったのと同様に、ロジスティック回帰の尤度関数最大化問題も解析的に解くことができず、数値計算によりwを修正していく。ニュートンラフソン法を使った反復再重み付最小二乗法により修正値を求めていく。導出方法は別途記述。wの修正式は以下の通りである。 $$ w_{new} = w_{old}-(Phi^TRPhi)^{-1}Phi^T(z-t) $$ なお、各行列は以下の通りである。Rはzn(1-zn)を対角成分とする対角行列。 $$ begin{eqnarray} t &=& left ( begin{array}{c} t_1 \\ t_2 \\ vdots \\ t_n end{array} right ) \\ Phi &=& left ( begin{array}{c c c} 1 & x_1 & y_1 \\ 1 & x_2 & y_2 \\ vdots & vdots & vdots \\ 1 & x_n & y_n \\ end{array} right ) \\ z_n &=& left ( begin{array}{c} z_1 \\ z_2 \\ vdots \\ z_n \\ end{array} right) \\ end{eqnarray} $$ 収束条件は以下の通り。ニュートン法の収束条件ぽい。 $$ frac{||w_{new}-w{old}||^2}{||w_{old}||^2} < 0.001 $$ なお、wの更新が進み、ロジスティック関数znが0または1に近づくか、0または1そのものになる場合がある。 $$ z_n = sigma (w^T phi_n) $$ zn=0または1となったとき、Rの対角成分zn(1-zn)が0となる。すると $$ Phi^TRPhi $$ の逆行列が存在しなくなりwを更新できなくなる。数値計算上の精度の話でもあるし、もともと全てのトレーニングデータが正解/不正解に分類できるのであれば、f(x,y)を大きくしていったときにf(x,y)と誤分類データとの距離が0になる、すなわちモデルから正解データを100%の確率で取得できる時がくるので、収束停止条件として考慮すべき内容である。

default eye-catch image.

パーセプトロン

[mathjax] (x,y)平面上のサンプルデータ(xn,yn)が、(x,y)平面を分割する1次多項式f(x,y)=w0+w1x+w2y を基準に f(xn,yn)>0 であれば正解、f(xn,yn)<0であれば不正解 のいずれかに分類する問題を考える。 正解、不正解を表す変数tについて、正解の場合に+1、不正解の場合に-1としたとき、トレーニングデータ(xn,yn,tn)を与えて多項式の係数wを求める分類アルゴリズムをパーセプトロンという。 ITエンジニアのための機械学習理論入門posted with amazlet at 17.03.10中井 悦司 技術評論社 売り上げランキング: 8,130Amazon.co.jpで詳細を見る パラメトリックモデルの決定 (x,y)平面を分割する1次多項式f(x,y)を以下の通り定義する。 $$ f(x,y)=w_0+w_1x+w_2y $$ トレーニングデータ(xn,yn)に対してパラメタtを以下の通り決定する。 $$ begin{eqnarray} f(x_n,y_n) > 0 Rightarrow t=+1 \\ f(x_n,y_n) < 0 Rightarrow t=-1 end{eqnarray} $$ tの符号とf(x,y)の符号の関係性から以下が言える。正解/不正解それぞれで場合分けして考えなくても良い。 f(xn,yn)>0なのにt=-1であるデータや、 0 Rightarrow 正解 \\ f(x_n,y_n)t < 0 Rightarrow 不正解 $$ モデルの評価式 トレーニングデータ(xn,yn,tn)を与えたとき、最良のパラメータw=(w0,w1,w2)を決めるため、多項式の評価式を決定する。正解、不正解を分類する問題であるから、全ての不正解データをf(x,y)に与えたときにその評価値が最小になるようにする。 これは、不正解データを無くすか、なるべく不正解データと距離が近いところを通るf(x,y)を見つけることに他ならない。ということで不正解データとの距離を定式化する。 $$ begin{eqnarray} E_n = | f(x_n,y_n) | \\ end{eqnarray} $$ 不正解データについてのみEnを加算する。ただし (xn,yn)は不正解データのみ $$ begin{eqnarray} E &=& sum_n E_n = sum_n |f(x_n,y_n)| \\ &=& -sum_n (w_0 + w_1x_n+w_2y_n)t_n end{eqnarray} $$ ここで、無理くりベクトル(行列))計算に持ち込む。 $$ begin{eqnarray} w &=& left ( begin{array}{c} w_0 \\ w_1 \\ w_2 end{array} right) \\ phi &=& left ( begin{array}{c} 1 \\ x_n \\ y_n end{array} right) \\ E &=& -sum_n t_nw^Tphi_n end{eqnarray} $$ モデルの評価式Eが決まった。Eはwにより決まるためE(w)とも書ける。トレーニングデータからE(w)を最小化するパラメタを求めていく。 確率的勾配降下法 E(w)をwについて偏微分するとE(w)の勾配ベクトルを求められる。(あぁ線形代数...。E(w)の勾配ベクトル∇E(w)とは、ベクトルwにおいてE(w)を最大化する向きと大きさを持つベクトルのことです...) $$ begin{eqnarray} nabla E(w) &=& left ( begin{array}{c} frac{partial E}{w_0} \\ frac{partial E}{w_1} \\ frac{partial E}{w_2} end{array} right ) \\ end{eqnarray} $$ 一方、上のベクトルを微分すると以下の式となる。 $$ nabla E(w) = - sum_{n}t_nphi_n $$ E(w)の最小化を考えると以下が成り立つはず。 $$ nabla E(w) = - sum_{n}t_nphi_n = 0 $$ ∇E(w)はtとxを含むがwを含まず、∇E(w)を式変形してwの式に展開することができない。wの式に展開できないと∇E(w)を0にするwを求める式を立てられない。 そこで∇E(w)の幾何学的な特徴を利用した数値計算によりE(w)を更新する。勾配ベクトル∇E(w)はwにおいてE(w)を最も大きくするベクトルだから、wと-∇E(w)を加算することでE(w)を小さくできる。 これを繰り返し実行することでE(w)を最小化できる。 実際のトレーニングデータ数Nは大きく、∇E(w)の行列計算は大変な作業となる。そこで、トレーニングデータから無作為にデータを1個取り出し、その1個分のデータについてのみwを更新する。N=1のとき∇E(w)は以下の通りとなる。 $$ - nabla E(w) = sum_n t_n phi_n = t_n phi_n $$ そのため、wの修正は以下の通りとなる。 $$ begin{eqnarray} w\' &=& w - ( -nabla E(w) ) \\ &=& w + nabla (Ew) \\ &=& w + t_n phi_n end{eqnarray} $$ E(w)が最小になるwが決まったとき、そのwを採用した多項式は、トレーニングデータについて誤りが少ない分類を行う式になっている。 トレーニングデータから無作為にサンプルを選んで勾配ベクトルの逆ベクトルを加算して降下していくから「確率的勾配降下法」という。へぇ。 パーセプトロンの収束速度 数値計算により値を更新していくアルゴリズムは、その収束速度が話題に上がる。パーセプトロンの確率的勾配降下法においてはトレーニングデータφのcにより調整する。 $$ begin{eqnarray} phi &=& left ( begin{array}{c} c \\ x_n \\ y_n end{array} right) end{eqnarray} $$ 確率的勾配降下法によりwを更新するときw0は1回の繰り返しで±cの範囲で増減する。cを大きくするとw0の増減範囲が大きくなり収束速度が速くなる。ではこのパラメータcはどのように決めるのか..はまた別のエントリで..。 $$ begin{eqnarray} w\' = w + t_n phi_n end{eqnarray} $$ 分類アルゴリズムとして、パラメトリックモデルが線形でない場合や、そもそも教師無しの場合など、他にもいろいろあるので、別エントリに書いていく。