College Analysis 総合マニュアル
-データサイエンス-
目次
1.パーセプトロン ...1 2.k平均法の応用(画像データ圧縮) ...6 3.k近傍法 ...9
1
1.パーセプトロン
2つの群に属するデータを判別する手法は、統計では判別分析や2値ロジスティック回帰 分析としてよく知られている。ここでは同じような分析で、機械学習の分野で用いられるパ ーセプトロンについて説明する。パーセプトロンは以下の判別式の正負で群を判別する。
1 1 2 2 p p 0
z
= b x
+ b x
+ + b x
+ b
ここにxiは変数
i
、個体
についてのデータ、b
iはパラメータである。これは統計のモデ ルと同じ形式である。但し、統計のモデルがデータの分布の性質を利用するのに対して、パ ーセプトロンは、誤判別を少なくするようにパラメータを少しずつ変更して行く、という単 純な方法を取る。1.1 プログラムの利用法
メニュー[分析-科学・工学他-機械学習-パーセプトロン]をクリックすると図 1 に 示される分析実行画面が表示される。
図1 分析実行画面
データは 2値の判別分析に用いられる図2 のような先頭列で群を分ける形式のデータで ある。変数は簡単のため2つに設定している。
図2 分析データ(パーセプトロン1.txt)
「変数選択」ですべての変数を選び、「パーセプトロン」ボタンをクリックすると図3の
パーセプトロン/データサイエンス
2 ような結果を得る。
図3 分析実行結果
ここでは係数と書かれた欄が判別式の係数を与え、標準化係数はデータを標準化した場合の 係数である。その他判別結果を用いた誤判別の割合や実測・予測の判定のデータ数などが表 示される。
図 1 の分析実行画面の「乱数処理」チェックボックスは、データの並びを一度シャッフ ルして分析を実行するかどうかを表している。同じ群が続いて並んでいるようなデータでは 収束が悪くなるという状況の改善を図る処理である。また、「最大ループ」はパラメータの 改善操作セットの繰り返し数を設定している。各データについて、そのデータが正しく評価 されているかどうかを判定し、それが不正解の場合はパラメータを改善する。これをデータ 数分繰り返すのが1セットである。
分析実行画面の「判別結果」では、パーセプトロンの操作により判別された結果が図 4 の ように表示される。
図4 判別結果
ここで、所属はデータが所属する群、判別は分析により予想される群である。
「収束状況(bs)」は1セット分の操作によって各パラメータがどのように変動したかを与 えるグラフである。図5に最大ループ数(セット数)を減らして、10回にした結果を示す。
図5 パラメータの収束状況
3
完全に分離できる解が存在する場合は、あるところからパラメータの値が一定となるが、解 が存在しない場合は、似た変動が繰り返されるようになる。
「2次元グラフ」をクリックすると、この例のように変数が2つの場合だけ、平面上に2 群の散布図が表示され、判別式の値が0となる直線が表示される。結果を図6に示す。
図6 2次元散布図 この場合、x軸には最初に選んだ変数が設定されている。
「追加グラフ」テキストボックスに、例えば判別分析や 2 値ロジスティック回帰分析の 予想直線の式を書くことによって、3つの関係を比較することもできる。図 7 に文字列な ども追加した結果を示す。
図7 追加直線を描いた場合
予測曲線は、判別分析(2群)と2値ロジスティック回帰分析で変数が2つの場合、画面の 右下にテキストボックスで表示される。これを全コピーして「追加グラフ」テキストボック スに貼り付けて利用する。
グラフの収束過程は「2次元動画」ボタンでアニメーションによって表示可能である。結 果が収束に向かうかどうか、「収束過程(bs)」ボタンと合わせて、一度試してもらいたい。
最後に、「新データ予測」ボタンは、「パーセプトロン」ボタンで得られた判別式を他のデ ータに利用した場合の結果を示す。図8に「目的変数付き」の結果を示す。
パーセプトロン/データサイエンス
4
図8 新データ予測結果
1.2 パーセプトロンの理論
2 つの群(1群と2群)のどちらかに属するデータ
1 2
( x
, x
, , x
p)
(
=1, 2, ,N)を 考える。その際、この群を分けるデータをそれぞれy = −{ 1, 1}としておく。今、パラメー タ( , b b b
0 1,
2, , b
p)
による以下の関係を用いて、z =0を境界としてデータを2 つの群に 分類する問題を考える。1 1 2 2 p p 0
z
= b x
+ b x
+ + b x
+ b
(1)ここで、判別はz 0の場合を1群(-1)、z 0の場合を2群(1)とする。この場合、
0, 0
y z またはy 0,z 0ならば正解、y 0,z 0またはy 0,z 0ならば 不正解である。
パーセプトロンでは以下のアルゴリズムで判別を行う。
最初に、すべてのパラメータを 0 としてすべてのデータで正解・不正解の判定を行う。判 別式の値は0となるので、データごとにyの値に応じて正解と不正解に分かれる。
不正解のデータに対して、以下の式を考える。
1 1 2 2 0
( p p ) 0
error error
E y z y b x b x b x b
= =
=
=
+ + + + (2)これは、間違ったデータに対するペナルティである。|z|が0 から離れていればいるほど このペナルティは大きくなる。通常これを最小化するためにはbiについて微分を行い、0と おくことを考えるが、今回の基準では微分したものの中にパラメータが現れないので、この 考え方はそもそも不可能である。そのため計算機を用いた以下の方法が考えられている。
まず
E
について以下の勾配を考える。1
0 1
t t
p
error error error
p
E E E
E y y x y x
b b b
= = =
= =
この勾配の方向にベクトルbを変化させる。
= − E
b b (3)
これを繰り返すことにより、パラメータは正しい値に近づいて行くと思われる。この方法を 勾配降下法と呼ぶ。特に、分離可能な場合には、最終的に正しい判別になり、それ以上パラ メータは変化しなくなることが示されているということである。分離可能でない場合は、正 解の近傍まで近づくが1つの値に近づくとは限らない。
5
以上が基本的なアルゴリズムであるが、実際のプログラムではもう少し工夫する必要があ る。基本ではベクトルbを変化させるとき、すべてのデータを使って方向を計算するように なっているが、我々は確率的勾配降下法と呼ばれる方法を採用する。すなわち不正解のデー タのうちの1つだけを取って(2)式を計算し、その都度(3)式によってパラメータの値を変化 させる。これを多く繰り返すことで確率的に勾配降下法の効果を得ようとする方法である。
我々は、最初のデータから順番に最後のデータに到達するまで、エラーを再計算しながら、
このパラメータの変更を繰り返す。これを1つの区切りとして、再度以上の操作を繰り返す。
当然正解が増えるに従って、1区切りの中でのパラメータの変更は少なくなる。
さらに以下の工夫も取り入れている。1 つのデータごとにパラメータを変更すると、(3) の計算をする際、b0の変化は±1 になる。b0が大きな値になるようなとき、この変化は小 さいため、我々はb0の収束性を早めるため、b0についてだけ以下のように変化させている。
0 0 0
b = − b c E b ,
1 1
1 | |
p N
i i
c x
pN
= = =
また、データについても一度標準化して、標準化係数を求め、それを通常の係数に変換して いる。さらにデータの中で同じ判別が続くと良い結果が得られないため、データを一度乱数 でシャッフルして計算を行っている。
参考文献
[1] ITエンジニアのための機械学習理論入門, 中井悦司, 技術評論社, 2021.
K平均法の応用(画像データ圧縮)/データサイエンス
6
2.k平均法の応用(画像データ圧縮)
Pythonなどを利用したデータサイエンスの教科書ではk平均法に関して画像データ圧縮
の例がよく示される。ここでは1つのプログラムとしてこの例を取り上げ、初心者が簡単 にデータ圧縮を体感できるようにした。
メニュー[分析-科学・工学他-機械学習-k平均法(減色)]を選択すると、図1のよ うな実行画面が表示される。
図1 K平均法(減色)実行画面
まず他のソフトを使って画像を読み出し、その一部をクリップボードに保存する。次に、「画 像取得表示」ボタンをクリックすると図 2 のようにクリップボードの画像が表示される。
その際、処理時間を考慮して、画像の大きさは100万画素までとしている。
図2 クリップボードの画像
この画像の各点を3原色に分解し、その各色の値を「3色分解表示」ボタンで三原色を表す 3次元座標上に表示する。結果は図3のようになる。
7
図3 3色分解表示
左は「透明度(1-0)」を1にして色を表す点が球に見えるようにした図、右は「透明度(1-0)」
を0.99にして色をそのまま円で表した図である。「透明度(1-0)」が1の場合は光沢をもっ た球として、1未満のときはその透明度に応じた円として表される。また、データ数が多い ので各点すべてを表示させると動きが遅くなり、見づらくなる。そのため、「表示割合」と して、表示する点をその割合に従ってランダムに決めている。
次に減色の処理を「k平均法」ボタンで実行する。k平均法は最初に群(分類)の数を与 える必要がある。また、群を作っては群の平均を求めて行くため、その処理の回数が必要 である。処理の回数を基準を定めて自動で決める方法もあるが、ここでは分かり易さと簡 単さのために予め「繰返し」として決めておく。結果を図4に示す。
図4 k平均法による減色
減色された色で図3のように3原色に分けた「分類表示」を実行すると図5のような結果 を得る。ここでは代表にする色の位置を見せるために「透明度(1-0)」を 0.1 に変更してあ る。
K平均法の応用(画像データ圧縮)/データサイエンス
8 図5 分類表示
代表にする色の位置は区別しやすいように赤い球で表している。また、各点の色は代表色 に変えている。
最後に、これらの色を用いて画像を減色する。「減色表示」ボタンをクリックした結果を 図6に示す。
図6 減色表示(10色)
色を5色までに減色すると図7のようになる。
図7 減色表示(5色)
9
3.k近傍法
k近傍法は、群に分かれたデータを元に、新しいデータを距離が近い元データの群に分類 して行く手法である。我々はこの元々の使い方に機械学習の考え方を加え、プログラムを開 発した。
機械学習ではトレーニングデータで得られた結果を元に新しいデータで何らかの予測を 行うが、我々はクラスター分析やk平均法など各種の分類手法で得られた結果をトレーニン グデータとして、新しいデータがどの群に属するか分類することを考える。
重回帰分析や判別分析などの教師あり学習では数学的な回帰式や判別式を与え、それによ って新しいデータを予測するが、クラスター分析や k 平均法などの教師なし学習では、分 類手法から得られる結果は、トレーニングデータの所属群である。この情報から新しいデー タを推測する方法は、各群の平均値からの距離を利用して新しいデータの所属群を決める、
トレーニングデータの各個体の所属群を利用して新しいデータの所属群を決める、などの方 法が考えられる。データサイエンスのテキストの例題としてよく利用されるk平均法による 減色処理の問題は、前者の代表的な例である[1]。
我々はこれまで教師なし学習手法については分析の中で予測の方法を扱って来なかった。
そのため、今回のプログラムの作成に際し、予測という観点から、2つの方法をまとめて示 し、簡単に比較できるようにした。
3.1 プログラムの利用法
メニュー[分析-データサイエンス-k近傍法]を選択すると、図 1 に示すようなk近 傍法実行画面が表示される。
図1 k近傍法実行画面
データは、複数の変数と分類のための変数を持った図2のような形式である。
図2 変数と分類を示すデータ
K近傍法/データサイエンス
10
ここには前 5 つの変数を使ってクラスター分析により分類した結果を変数として後ろに 3 種類付けている。
プログラムを利用するには最初に必ず「トレーニングデータ読込」を行う。その際変数選 択は、最初に分類を示すデータを1つ、その後で必要な変数をすべて選択する。ここでは3 分類のデータと前の5つの変数を利用する。実行結果を図3に示す。
図3 トレーニングデータ読込結果
ここでは、各群のデータ数と各変数の群内平均が表示されている。以後、「群平均から」ラ ジオボタンを選択すると、この平均値を群の中心として利用する。
新しいデータの予測は、群を分ける変数が入らない、図 2と同じ内容の、図 4のような データを利用する。
図4 予測用の新しいデータ
「群平均から」ラジオボタンを選択して、これらすべての変数を選択し、「新データ予測」
ボタンをクリックすると、図5のような結果が表示される。
図5 新しいデータの予測結果
グリッドエディタに分類結果を追加するには、この表で最初の列を選択し、メニュー[編集
-エディタ指定列追加]を選択する。
同様に、「全データから」ラジオボタンを選択し、「利用個数」コンボボックスから「1, 3, 5」個のどれかを選択すると、これまでのトレーニングデータの中で最も近いこれらの個数 のデータが選択され、その所属する群の多数決で新しいデータの所属が決まる。但し、同数 の場合は、最も近いデータが所属する群が選ばれるようになっている。結果は図 5 と同じ 表示で、分類結果は似たものになる。
データが2変数の場合、表だけでなく図でも分類が確認できる。図2の3分類で、例え
11
ば数学と理科を選択し、まず「トレーニングデータ読込」を実行する。その後、図 3 の変 数の数学と理科を選択し、「新データ予測図」をクリックすると「群平均から」の場合、図 6のような結果を得る。
図6 群平均からの予測図
大きな赤い丸が群平均で、縁だけの四角がトレーニングデータ、中が塗られた四角が新デー タである。
同様に、「全データから」(利用個数1)の場合は、群平均は非表示で、図7のようになる。
図7 全データから(利用個数1)の予測図
図2のデータで「トレーニングデータ読込」後、すぐに「2次元領域予測図」ボタンをク リックすると、「群平均から」の場合、図8の結果が、「全データから」(利用個数1)の場 合、図 9 の結果が得られる。この図は実際の新データを利用するのではなく、新しいデー タがどの位置なら、どの群に所属するかを表す図である。
図8 群平均からの2次元領域予測図
K近傍法/データサイエンス
12
図9 全データから(利用個数1)の2次元領域予測図 利用個数を3, 5と増やすと分類される領域が図10のように変わって行く。
図10 全データから(利用個数3, 5)の2次元領域予測図
参考文献
[1] 中井悦司,[改訂新版]ITエンジニアのための機械学習理論入門,技術評論社,2021