計算機を用いた推論と学習 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
© Copyright 2024 ExpyDoc