2011年4月20日水曜日

番外編 ベクトルとか内積とかユークリッド距離とか正規化とか


単純パーセプトロンがn個の入力を持つとき、入力と重みベクトルにはn個のパラメータがあり、その内積を云々とか平気で書いていますけど、もう少しだけ詳しく説明しましょう。
まず、ベクトル。これは、長さと方向を持つという説明をしました。n個のパラメータを持つということは言い換えればn個の座標軸を持つベクトル空間によって表現されるわけです。
3以上のn個の座標軸を持つ空間のことを普通n次元空間という言い方をしますね。0次元が広がりを持たない点、1次元が線、2次元を面とかあるいは2次元から、2次元空間ともいったりもしますが、元々は3次元を空間ということの拡張(つまり縦横高さでどれか一つが0(通常高さ))と考えられます。我々の基本的な認識能力は3次元の空間であり、それ以下もそれ以上も空間の延長という形でしか我々は表現できないということかも知れません。
ところで、ベクトルはn次元空間においてもやっぱりベクトルと言いますよね。これは、ベクトルは2次元の時は二つの座標で原点からの距離と向きを決定することができる。これを3次元、そしてn次元へと拡張しても全く同様に考えられるということからベクトルは同様の概念でベクトルだと考えられる訳ですよね。
さて、超平面はどうして超平面に垂直な法線ベクトルと入力の内積で考えられるのでしょうか。内積とはなんなのか。
少しずつ考えていきましょう。まず、n次元空間のベクトルはn個の座標で原点からの距離と向きを表現できるのでした。たとえば、2次元で考えればx座標とy座標で表現できるのですね。これは、我々が平面を俯瞰できるからそのように考えるのであって、例えば、ある港から船でどこか魚釣りのポイントを目指しているなら方角と距離を指示してもらわないとたどり着けないでしょう。

つまり、ベクトルには地図を見るように座標を示す示し方と、船に乗って海のどこかへたどり着こうとするとき場合のような基準から角度と長さを示す示し方と二通りあるわけです。(え?今時ならGPSあるだろって?そ、それは………)
しかし、3次元をこえたn次元空間で角度と距離なんて我々には想像もつかないからn個の座標で言うわけですが、言い方を変えれば、長さと角度(方向)のある一本の棒はn個の基本的なベクトル(単位ベクトルという)、例えば2次元ベクトルx(x1,x2)だったら(10)と(01)で表せる二つの単位ベクトルのそれぞれ、x1倍、x2倍と考えることもできます。あるベクトルxは基本ベクトルの合成されたものして考える訳です。

逆に、ベクトルxを単位ベクトルに分解することもできる。それが内積というものです。つまり、ベクトルx(x1,x2)x座標のみの単位ベクトル(10)の内積を取れば(x1,0)というベクトルが得られます。見方を変えれば、ベクトルx(x1,x2)をx軸に写像したものが内積という見方もできるでしょう。

では、どうして、超平面の方程式は入力ベクトルと法線ベクトルとの内積で表せるのでしょう。

まず、超平面上にある点があると言うことは、例えば、

w1x1+w2x2+………+wnxn+b=0  
という方程式が成り立つと言うことですよね。つまりは0になると言うことが大事なわけです。ところで、超平面に垂直な線は超平面に写像したとき大きさはないでしょう?大きさ0。実際はバイアスbがあるので少し話はややこしいですが、例えば、原点を通るような超平面は、

  w1x1+w2x2+………+wnxn=0  
で、これが原点からbだけ平行移動したものが求める超空間の方程式となるというわけです。従って、上記のような方程式がベクトルの内積を使うとすごく簡単にwx+b=0と表せるというわけなのです。
このような内積を定義できる空間のことをユークリッド空間と言います。難しい言い方ですが、単に直交座標系が成り立つ空間、と言って良いでしょう。

ユークリッド空間では、2つのn次元ベクトルa,bの距離(ユークリッド距離)は点aから点bへ向かうベクトルの大きさに等しく次のように定義されます。




最後に、正規化を説明しましょう。正規化とは、簡単に言えば、どんな長さも基準に対して相対的であるので、基準になるものが一番大きければ、全ては0から1の実数で表せるでしょう、と言うことです。例えば、直角三角形の斜辺の長さはほかの2辺より必ず大きいので、直角三角形の斜辺を基準とすれば、ほかの2辺は0から1の間の大きさで表せる、そういうことになりますよね。



0 件のコメント:

コメントを投稿