計算機を用いた推論と学習 II 1 目的 2 原理

計算機を用いた推論と学習 II
– 形式ニューロンとパーセプトロンによるパターン識別 –
目的
1
生物の神経細胞の特徴的な機能をモデル化した形式ニューロンと,その形式ニューロンを結合して構成される
パーセプトロンを C 言語で実装する.そして,XOR 回路とパターン識別器の実現を通して,パーセプトロンの
動作原理と学習機能について理解する.
原理
2
2.1
形式ニーュロン
McCulloch と Pitts は,神経細胞における情報処理メカニズムを単純化して,数理的に扱いやすくモデル化し
た形式ニューロンを提案した.形式ニューロン(ユニットとも呼ぶ)は多入力 1 出力の素子で,0 または 1 の 2
値をとる入力の荷重和を計算して,閾値を θ とするしきい処理を行い, 0 または 1 を出力する.その模式図を
図 1 に示す.
x1
w1
x2
w2
Σ
y
θ
wN
xN
図 1: 形式ニューロン
いま,i 番目の入力を xi ∈ {0, 1},入力の伝達効率を表す結合荷重を wi ∈ R,出力を y ∈ {0, 1} で表す.ただ
し,R は実数を表す.このとき,形式ニューロンの動作は,以下の式で表現される.
!
N
X
wi xi − θ
y=H
i=1
ただし,H(u) はステップ関数(もしくはヘビサイド関数)と呼ばれ次式で定義される.

1 if u ≥ 0
H(u) =
0 otherwise
ここで,xN +1 = 1(バイアス入力),wN +1 = −θ とおくと,形式ニューロンの入出力関係は
y=H
N
+1
X
i=1
と書け,閾値 θ の取扱いを簡略化できる.
1
wi xi
!
(1)
予習問題
生体ニューロンの特徴を説明せよ.また,(1) で表される形式ニューロンは,生体ニューロンのどのような特
徴をモデル化したのか説明せよ.なお,これらの説明に,次にあげるキーワードを用いること.
キーワード:ニューロン,細胞体,樹状突起,軸索,シナプス,膜電位,静止膜電位,神経インパルス
なお,図書館で閲覧可能な参考文献として,
• 坂和,田中:ニューロコンピューティング入門,森北出版,1997
• P.D. Wasserman(石井,塚田訳)
:ニューラル・コンピューティング – 理論と実際 –,森北出版,1993
• 臼井ほか編:基礎と実践 ニューラルネットワーク,コロナ社,1995
などがある.
2.2
パーセプトロン
Rosenblatt は,図 2(a) に示す単純パーセプトロンと呼ばれるモデルを提案した.このモデルは,感覚層(S 層),
連合層(A 層)および反応層(R 層)の 3 層から構成されている.第 1 層の S 層では,入力信号 xi , (i = 1, · · · , N )
を受取り,そのまま次の層へ送る.第 2 層の A 層では,S 層から出力された信号に,(2) で表される荷重和計算
と閾値処理を行って zk , (k = 1, · · · , L) に変換し,次の層へ送る.
zk = H
N
+1
X
vki xi
i=1
!
,
xN +1 = 1
(2)
ただし,vki は S 層から A 層への結合荷重を表し,ランダムな値に固定されている.第 3 層の R 層でも A 層と
同じ処理を行い,パーセプトロンの出力 yj , (j = 1, · · · , M ) を (3) に従って計算する.
yj = H
L+1
X
wjk zk
k=1
!
,
zL+1 = 1
(3)
ただし,wjk は A 層から R 層への結合荷重を表し,パーセプトロンが所望の振舞を示すように調整される.ここ
では,その調整過程を学習と呼ぶ.
学習可能な荷重は A 層から R 層への結合荷重であることから,単純パーセプトロンは,図 2(b) に示す基本
パーセプトロンと同等の処理能力を持つ.
2.3
パーセプトロンとパターン識別
パターン識別とは,与えられたパターンをそれが属するカテゴリに対応付ける操作である.文字や音声などの
(p)
(p)
データから抽出した特徴を,パターンベクトル x(p) = [x1 , · · · , xN ]T , (p = 1, · · · , P ) で表したとき,x(p) が属
する空間をパターン空間と呼ぶ.ただし,上付き (p) はパターン番号を,T は転置を表す.パターン x(p) が属す
るカテゴリを t(p) で表し,カテゴリの数を c とする.すなわち,t(p) = 1, · · · , c である1 .パターン識別とは,同
じと判断すべきパターンの集合(カテゴリ)にパターン空間を分割することである.
パーセプトロンは,パターン空間を超平面2で分割するパターン識別器である.パターンベクトル x(p) を A 層
(p)
(p)
で変換して得られる z (p) = [z1 , · · · , zL ] が線形分離可能(図 3)であれば,対応するカテゴリ t(p) を教師とす
る教師あり学習で,与えられたパターンを正しく分類する結合荷重を獲得することができる.言い換えれば,パー
1 一般的なパターン識別では,パターンやカテゴリは 2 値であるとは限らない.パーセプトロンでパターン識別を行うときは,それらを 2
値に符号化する必要がある.
2 パターン空間の次元が 2 次元のときは直線,3 次元のときは平面である.
2
}
}
}
感覚層(S層) 連合層(A層) 反応層(R層)
z1
x1
入
力
パ
タ
|
ン
zk
x2
y1
出
力
パ
タ
|
yM ン
wjk
vki
xN
1
w11
z2
y1
w1L
yM
1
zL
調整可能でない重み
(ランダムに設定)
調整可能な重み
wML+1
1
(a) 単純パーセプトロン
(b) 基本パーセプトロン
図 2: パーセプトロンの構造
セプトロンは線形分離可能なパターンしか分類することができない.しかし,単純パーセプトロンのように S 層
から A 層へのランダムな信号の変換を行い,A 層の素子数を十分大きく取ることで,z (p) の線形分離可能性を高
める性質を持つ.
2.4
パーセプトロンの学習
パーセプトロンが所望の振舞をするように,結合荷重 wjk を変更させる学習法を説明する.
パーセプトロンの入出力関係は
(p)
yj
=H
L+1
X
(p)
wjk zk
k=1
(p)
と書ける.したがって,p 番目のパターンに対する教師信号 tj
力値
(p)
yj
!
(4)
∈ {0, 1}, (p = 1, · · · , P ) とパーセプトロンの出
との誤差は
(p)
ej
(p)
(p)
= tj − y j
(p)
となる.なお,出力と教師信号は 0 または 1 しかとらないので,ej
z1
z1
カテゴリー1
カテゴリー2
∈ {−1, 0, 1} である.
カテゴリー1
カテゴリー2
パターン
パターン
カテゴリー2
カテゴリー1
分離超平面
z2
z2
(a) 線形分離可能
(b) 線形分離不可能
図 3: 線形分離可能性
3
(p)
(p)
(p)
= 0 である.したがって,出力と教師信号が
P
(p)
を 0 から 1 に変更しなければならない.そのためには,荷重和 k wjk zk を増加させ
(p)
(p)
る必要があり,結合荷重 wjk を αzk , (α > 0) だけ増加させることで実現できる.一方,誤差 ej が −1 のと
さて,誤差 ej
が 1 のとき,教師信号は tj
= 1 で出力は yj
(p)
一致するためには,yj
(p)
(p)
(p)
= 0 で出力は yj = 1 である.したがって,出力と教師信号が一致するには,yj を 1 から
(p)
0 に変更する必要がある.そのためには,荷重和を減少させなければならず,結合荷重 wjk を αzk , (α > 0) だ
き,教師信号は tj
(p)
け減少させることで実現できる.なお,ej
が 0 のときは結合荷重を変更する必要はない.このような学習法を
誤り訂正学習と呼ぶ.
予習問題
(p)
結合荷重を αzk
(p)
だけ増加させれば荷重和が増加し,結合荷重を αzk
だけ減少させれば荷重和も減少する
ことを示せ.
ヒント:修正前の結合荷重を wold ,修正後を wnew として,修正前後の
以上のことを考慮すると,結合荷重の変化量は
P
k
(p)
wjk zk
を比較する.
(p) (p)
∆wjk = αej zk
(5)
となる.ただし,α は学習率で十分小さい正定数である.すべての入力パターンに対して誤り訂正学習法を繰り返
し適用することで,線形分離可能なパターンであれば,有限回の学習で正しい認識を行う結合荷重を獲得するこ
とができる.
以下に,パーセプトロンの誤り訂正学習法のアルゴリズムを示す.
誤り訂正学習法
パターンベクトル x(p) と教師信号 t(p) の組みを与える.
結合荷重の初期値を設定する.
while (終了条件が達成) {
あるパターン番号 p を選ぶ.
(p)
を計算する.
(p)
を計算する.
(2) に従って,A 層の出力 zk
(3) に従って,R 層の出力 yj
(p)
教師信号との誤差 ej
を計算する.
(5) にしたがって,A 層 R 層間の結合荷重の更新量を計算し,結合荷重の更新を行う.
改めて全パターンを入力し,誤差の二乗和を計算する.
}
学習後の荷重を用いてパターンを識別する.
なお,すべてのパターンを正しく識別できる結合荷重の組が見つかるか,学習回数が設定値を越えたときを終
了条件とすればよい.
4
実験
3
3.1
排他的論理和問題を解くパーセプトロンの構成
1. 図 4 に示す単純パーセプトロンを構成せよ.結合荷重の値を
[Case 1]
v11
v21
v12
v22
v13
v23
!
=
!
0.8 1.0 −0.3
,
1.3 0.6 −1.5
w11
w12
w13 = 1.1 −1.2 −0.5
[Case 2]
v11
v21
v12
v22
v13
v23
!
=
!
−6.0 3.0 1.5
,
−0.3 −1.2 0.4
w11
w12
w13 = 1.1 −1.2 −0.5
に設定して,次に示すパターン [x1 , x2 ]T を入力したときの A 層と R 層の出力を求めて,表を完成せよ.こ
こで,t は教師信号とする.
x1
x2
0
0
0
0
1
1
0
1
1
1
1
0
z1
z2
y
t
XOR 回路が実現できる理由とできない理由を,図を用いて説明せよ.また,上の表において,パターン
[x1 , x2 ]T を t = 0, 1 の二つのカテゴリに分離するパターン識別問題と見なしたときの分離超平面を正確に
描け.
x1
v11
z1
w11
x2
v12
z2
w12
w13
v13
1
y
1
図 4: XOR 回路を実現する単純パーセプトロン
2. 誤り訂正学習法を実装し,XOR 回路を実現するパーセプトロンを学習により獲得せよ.ただし,初期荷重
は (−1, 1) の一様乱数とし,その他のパラメータは適宜設定すること.
3. 連合層(A 層)のニューロン数を変化させて,ニューロン数と学習成功率の関係を調べよ.
5
3.2
【発展課題】パターン識別器の獲得
図 5 に示す 8 × 8 のビットパターンで与えられた 6 種類の入力パターンを考える.これらのパターンのうち,
(a) ∼ (c) は飛行機を,(d) ∼ (f) は船を表すものとする.このとき,これら 6 種類のパターンを学習パターンと
して,飛行機であれば (1, 0) を船であれば (0, 1) を出力するパーセプトロン(パターン識別器)を学習により獲
得せよ.
(a)
(b)
(c)
(d)
(e)
(f)
図 5: 学習パターン
また,学習が成功したときの結合荷重を用いて,図 6 に示す 3 種類のテストパターンの識別結果を求めよ.
(i)
(ii)
(iii)
図 6: テストパターン
なお,“data_set.dat” に学習パターンと対応する出力値,テストパターンが用意されているので使用してよ
い.データのフォーマットは,黒を 1 に白を 0 に割り当て,ファイルの先頭から順に学習パターン数(6),テス
トパターン数(3),パターンひとつ当たりのビット数(64),出力のビット数(2)が格納されており,次に学習
パターン,対応する出力値,テストパターンが格納されている.
6
6
3
64
2
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
..........
1 0
...
0 1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
..........
[注意]
• 乱数の生成法は “man rand” を参照すること.
• 実験条件の変更が直ちに行えるようプログラムを作成すること.
• モジュール化を意識したプログラムを作成すること.
7